使用混合模型的R中的潜在类分析

时间:2018-12-14 06:04:04

标签: r statistics cluster-analysis mixture-model

我正在尝试在R中执行潜在类分析,但是我有一些既连续又分类的变量。另外,我有52个州或行,并且我试图有52个潜在类或子组。我开始用R编写代码,但出现错误。这是错误:Error in contrasts<-(*tmp*, value = contr.funs[1 + isOF[nn]]) : contrasts can be applied only to factors with 2 or more levels

这是我的R代码

#Getting data into R
library(haven)
Component_3_database_11022018 <- read_sav("C:/Users/gaurelien/WRMA/APS-TARC - Documents/Evaluation/Component 3 Research Study/Data Analysis/SPSS/Source/Component 3 database 11022018.sav")
#Create a subset of the full data set reduced to 52 states
LCA<-subset(Component_3_database_11022018, State52==1)
#Loading packages
library(mclust)
library(poLCA) # only categorical indicators
library(scatterplot3d)
library(MASS)
library(orthopolynom)
library(polynom)
library(nlsem)
library(nnet)
library(Rsolnp)
library(depmixS4)

#Latent class Modeling with component 3 data
# Construcution of the dependent Mixture Models
#To avoid time-consuming mistakes in model specification, the analysis involves two steps: 
#construction of a model with mix function and fitting it with fit function. family argument 
#of mix function allows specifying a type of observed variables – whether they are continuous, nominal, 
#or count by adding to a list corresponding distribution name, i.g. guassian or multinomial.
model_definition <- mix(list(AgencyLocation ~1, GeographicStructure ~1 , EligibilityCode ~1, 
  Maltreatment_Definitions_group ~ 1 ,ratio_report_per_investigator ~ 1,
  census_TotalPop ~ 1, percent_belowpovertylevel_12months ~1),
  family=list(multinomial(), #For every corresponding 
  multinomial(),  #  indicator a family of distribution 
  multinomial(),
  multinomial(),
  multinomial(),
  multinomial(),
  multinomial()), # should be indicated in the list.
  data= LCA,
  nstates=52,
  initdata =LCA)
  fit.mod <- fit(model_definition)

2 个答案:

答案 0 :(得分:0)

从技术上讲,潜在类分析应仅用于分类观测变量,而不应用于连续变量。这就是为什么您的模型无法收敛的原因,特别是如果您的连续变量有很多变化的时候。对于连续变量,如果可以的话,应尝试将其二等分。换句话说,您应该减少它们之间的差异。然后再次运行模型。

此外,您应该尝试使用较少的观察变量(小于10)运行模型。然后,在达到收敛时,慢慢添加更多变量,并注意最小的BIC。

如果您希望保持连续变量不变,则可以尝试“潜在特征分析”,它同时支持连续变量和分类变量。同样,尽管有人可能对此表示反对,但我已经看到在同一模型中使用序数变量和连续变量进行结构方程式建模,这将使您可以保留连续变量。

答案 1 :(得分:0)

R不是用于潜在类别分析的最佳软件。我建议使用一种(付费)替代产品:Latent Gold或Mplus。

它们都具有扩展名,您可以在其中合并连续数据和分类数据以进行潜在类分析。我知道这可能会很昂贵,但是它们比目前任何R的软件包都更快,更灵活。