lavaan 警告:一些观察到的方差(至少)比其他方差大 1000 倍;使用 varTable(fit) 进行调查

lavaan WARNING: some observed variances are (at least) a factor 1000 times larger than others; use varTable(fit) to investigate

我正在尝试从数据集中评估 sem 模型,一些数据采用李克特量表,即 1-5。一些数据是 COUNTS 从计算机日志中生成的一些 activity.

而在进行拟合时,laveen 给我的错误是:

lavaan WARNING: some observed variances are (at least) a factor 1000 times larger than others; use varTable(fit) to investigate

为了缓解此警告,我想 scale 一些变量。但是无法理解这样做的方式。

Log_And_SurveyResult <- read_excel("C:/Users/Aakash/Desktop/analysis/Log-And-SurveyResult.xlsx")

model <- '
  Reward =~ REW1 + REW2 + REW3 + REW4
  ECA =~  ECA1 + ECA2 + ECA3
  Feedback =~ FED1 + FED2 + FED3 + FED4
  Motivation =~ Reward + ECA + Feedback
  Satisfaction =~ a*MaxTimeSpentInAWeek + a*TotalTimeSpent + a*TotalLearningActivityView 
  
  Motivation ~ Satisfaction'

fit <- sem(model,data = Log_And_SurveyResult)

summary(fit, standardized=T, std.lv = T)

fitMeasures(fit, c("cfi", "rmsea", "srmr"))

我想缩放一些变量,例如 MaxTimeSpentInAWeekTotalTimeSpent

你能帮我弄清楚如何缩放变量吗?非常感谢。

您可以直接使用 scale(MaxTimeSpentInAWeek)。这会将您的变量缩放为均值 = 0 和方差 = 1。例如:

    Log_And_SurveyResult$MaxTimeSpentInAWeek <- 
    scale(Log_And_SurveyResult$MaxTimeSpentInAWeek)
    Log_And_SurveyResult$TotalTimeSpent <- 
    scale(Log_And_SurveyResult$TotalTimeSpent)

还是我误解了你的问题?

一样,变量之间的量级差异较大,建议对变量进行缩放。 该警告给出提示并检查 varTable(fit) returns 有关已拟合 lavaan 对象中变量的摘要信息。

您可以在子集或整体上使用 apply(),而不是在每一列上单独使用 运行 scale() data.frame:

## Scale the variables in the 4th and 7h column
Log_And_SurveyResult[, c(4, 7)] <- apply(Log_And_SurveyResult[, c(4, 7)],  2, scale)

## Scale the whole data.frame
Log_And_SurveyResult <- apply(Log_And_SurveyResult,  2, scale)