首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SEM模型(lavaan)的方差通货膨胀因子(VIF)估计

SEM模型(lavaan)的方差通货膨胀因子(VIF)估计
EN

Stack Overflow用户
提问于 2020-09-24 16:44:49
回答 1查看 1.7K关注 0票数 1

我试图从结构方程模型(SEM)中求出方差通货膨胀因子(VIF)。我的模型是:

代码语言:javascript
复制
# load the data
library(readxl)
Log_And_SurveyResult <- read_excel("C:/Users/Aakash/Desktop/analysis/Today/Mot-Log.xlsx")

# load lavaan
library(lavaan)

#scale the variables
Log_And_SurveyResult$Time <-
scale(Log_And_SurveyResult$TotalActivity)

model <-
Ct =~ CT1 + CT2 + CT3
R =~ R1 + R2 + R3
B =~ B1 + B2 + B3
UserActivity =~ Time + TotalActivity

fit <- sem(model,data = Log_And_SurveyResult, std.lv = TRUE)
summary(fit, standardized=T)

以下是我的数据示例:

代码语言:javascript
复制
Time,TotalActivity,CT1,CT2,CT3,R1,R2,R3,B1,B2,B3
-0.4923798,-0.09991485,4,4,4,3,3,3,3,3,2
-1.0519708,-1.12771752,3,2,2,2,2,3,4,2,3
-0.5330384,-0.06320762,4,4,5,5,4,4,4,4,4
-1.0134522,-0.67805386,5,4,4,5,5,4,4,5,5
-1.1568273,-1.18277838,4,3,4,3,2,3,3,4,4
-0.8561675,-0.12744528,3,4,4,4,4,3,3,3,3

当我运行vif(fit)时,会得到错误:

代码语言:javascript
复制
Error: $ operator not defined for this S4 class

下面是来自:http://minato.sip21c.org/msb/man/VIF.html的示例

关于VIF的大多数示例和教程都是通过使用多元回归模型生成的。但是我怎样才能得到我的扫描电镜模型的VIF呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-24 17:03:48

若要估计由软件包sem()函数生成的模型的VIF,可以创建一个二进制虚拟变量,将其与其模型中的自变量进行回归,然后使用vif()估计方差通货膨胀因子。示例:

代码语言:javascript
复制
## Create random binary variable
Log_And_SurveyResult$randomvar <- rbinom(nrow(Log_And_SurveyResult), 1, 0.5)

## Model and VIF
Model <- lm(randomvar ~ CT1 + CT2 + CT3, data=Log_And_SurveyResult)
vif(Model)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64050842

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档