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"))
我想缩放一些变量,例如 MaxTimeSpentInAWeek
和 TotalTimeSpent
你能帮我弄清楚如何缩放变量吗?非常感谢。
您可以直接使用 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)
我正在尝试从数据集中评估 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"))
我想缩放一些变量,例如 MaxTimeSpentInAWeek
和 TotalTimeSpent
你能帮我弄清楚如何缩放变量吗?非常感谢。
您可以直接使用 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)