2 votes

Paquet FPC : Flexmixedruns avec variables catégorielles binomiales/multinomiales

J'utilise le flexmixedruns de la fonction fpc et je reçois un flexmix error lorsque j'essaie d'exécuter la fonction.

Mon ensemble de données comprend à la fois des données continues et catégorielles, mais la plupart de mes données catégorielles ne comportent que deux niveaux ( "Y" o "N" ). Certaines de mes variables ont plusieurs niveaux. Je me demande si j'obtiens l'erreur parce que la fonction traite toutes mes variables catégorielles comme des distributions multinomiales.

Quelqu'un a-t-il de l'expérience avec cette fonction ?

exemple reproductible

#####  check for fpc package
required.packages <- c("fpc")
new.packages <- 
  required.packages[!(required.packages %in% installed.packages()[,"Package"])] 
if(length(new.packages)) install.packages(new.packages)
rm(required.packages, new.packages)

library(fpc)

#####  create data set
df <- matrix(
  data=c("widget1", "widget2", "widget3", "widget4", "widget5", "widget6",
                    58, 18, 31, 130, 40, 31, 
                    70, 19, 44, 120, 57, 50,
                    "1E6", "1E5", "1E4", "1E6", "1E5", "1E4",
                    "Y", "Y", "N", "N", "N", "Y",
                    "N", "Y", "N", "Y", "N", "Y"), 
             nrow=6, ncol=6)

df <- as.data.frame(x=df)
row.names(df) <- df[, 1]
df <- df[, -1]
colnames(df) <- c("cont1", "cont2", "multi1", "bin1", "bin2")

df$cont1 <- as.numeric(df$cont1)
df$cont2 <- as.numeric(df$cont2)

#####  model
mdl <-
  flexmixedruns(x=df, xvarsorted=TRUE, continuous=2, discrete=3, simruns=5,
                n.cluster=3, recode=TRUE)

message d'erreur

Error in summary(flexout[[optimalk]]) : 
    error in evaluating the argument 'object' in selecting a method for function 'summary': Error in flexout[[optimalk]] : attempt to select less than one element

0voto

ahfoss Points 155

Sans un débogage plus détaillé, il est impossible de se prononcer avec certitude. Assurez-vous que le paquetage des méthodes est chargé, c'est-à-dire que

library(methods)

0voto

JestonBlu Points 114

Le problème était le formatage des données. La fonction semble ne pas être en mesure de traiter les données factorielles au départ, bien que la documentation indique qu'elle peut prendre n'importe quoi pour les données catégorielles qui peuvent être converties en une variable factorielle.

df$multi1 = as.numeric(df$multi1)
df$bin1 = as.numeric(df$bin1)
df$bin2 = as.numeric(df$bin2)

mdl <-flexmixedruns(x=df, xvarsorted=TRUE, continuous=2, discrete=3, simruns=5,
                n.cluster=3, recode=TRUE)

summary(df)
     cont1       cont2         multi1       bin1          bin2    
 Min.   :1   Min.   :1.0   Min.   :1   Min.   :1.0   Min.   :1.0  
 1st Qu.:2   1st Qu.:2.0   1st Qu.:1   1st Qu.:1.0   1st Qu.:1.0  
 Median :3   Median :3.5   Median :2   Median :1.5   Median :1.5  
 Mean   :3   Mean   :3.5   Mean   :2   Mean   :1.5   Mean   :1.5  
 3rd Qu.:4   3rd Qu.:5.0   3rd Qu.:3   3rd Qu.:2.0   3rd Qu.:2.0  
 Max.   :5   Max.   :6.0   Max.   :3   Max.   :2.0   Max.   :2.0 

# k=  3  new best fit found in run  1 
# Nonoptimal or repeated fit found in run  2 
# k=  3  new best fit found in run  3 
# Nonoptimal or repeated fit found in run  4 
# Nonoptimal or repeated fit found in run  5 
# k=  3  BIC=  216462.2

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X