- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对将 lm-syntax 翻译成 lavaan 很感兴趣,特别是我在 factor x numeric 变量之间的effects-coded 交互之后 > 2 个级别。 (提醒:effects-coding 是虚拟编码分类变量的替代方法,代码为 -1、1 和 0。)
下面是一个最小的例子(无意义)。您会看到 lm(线性回归)语法,然后是相应的 lavaan 语法(回归部分)。它适用于没有交互但不适用于交互的回归。
首先考虑带有效应编码因子的无交互回归。
这行得通
library(lavaan)
# Use iris data as minimal example
#
# 1. Linear regression model
# Change contrasts to effects-coding
contrasts(iris$Species) <- contr.sum(3)
# Linear regression
lmmodel <- Sepal.Length ~ Species # the regression model
lmfit <- lm(lmmodel, iris) # fit it
# 2. SEM
# first, re-code the factors
iris$s1 <- contrasts(iris$Species)[iris$Species, 1] # Numeric and effects-coed
iris$s2 <- contrasts(iris$Species)[iris$Species, 2] # - " -
semmodel <- 'Sepal.Length ~ s1 + s2' # the SEM model
semfit <- sem(semmodel, iris) # fit it
# 3. Compare the coefficients lm vs. sem, should be equal (and are equal)
cbind(coef(lmfit)[-1], coef(semfit)[-length(coef(semfit))])
# [,1] [,2]
# Species1 -0.83733333 -0.83733330
# Species2 0.09266667 0.09266664
以下是我如何处理互动我哪里错了?
# 1. Linear regression w/ interaction
lmmodel <- Sepal.Length ~ Species + Species:Sepal.Width
lmfit <- lm(lmmodel, iris)
# 2. SEM
iris$s3 <- as.numeric(iris$Species=='virginica') # Code third species
iris$s1_w <- iris$s1 * iris$Sepal.Width # Numeric interaction
iris$s2_w <- iris$s2 * iris$Sepal.Width # - " -
iris$s3_w <- iris$s3 * iris$Sepal.Width # - " -"
semmodel <- 'Sepal.Length ~ s1 + s2 + s1_w + s2_w + s3_w'
semfit <- sem(semmodel, iris)
# 3. Compare the coefficients lm vs. sem
cbind(coef(lmfit)[-1], coef(semfit)[-length(coef(semfit))])
# [,1] [,2]
# Species1 -0.7228562 -0.7228566
# Species2 0.1778772 0.1778772
# Speciessetosa:Sepal.Width 0.6904897 0.6904899
# Speciesversicolor:Sepal.Width 0.8650777 0.8650779 <----- equal
# Speciesvirginica:Sepal.Width 0.9015345 2.4571023 <----- not equal
最佳答案
问题不在于 lavaan
,您只是没有正确编码 Virginica Species
的对比:
从第 101 行到第 150 行,您应该有 0,0,1
,即:
iris[101:150,"s2_w"] <- 0
iris[101:150,"s1_w"] <- 0
重新运行原始代码:
semmodel <- 'Sepal.Length ~ s1 + s2 + s1_w + s2_w + s3_w'
semfit <- sem(model = semmodel, data = iris, estimator="ml")
# 3. Compare the coefficients lm vs. sem
cbind(coef(lmfit)[-1], coef(semfit)[-length(coef(semfit))])
并检查:
(¬_¬)# 3. Compare the coefficients lm vs. sem
(¬_¬)cbind(coef(lmfit)[-1], coef(semfit)[-length(coef(semfit))])
[,1] [,2]
Species1 -0.7228562 -0.7228563
Species2 0.1778772 0.1778772
Speciessetosa:Sepal.Width 0.6904897 0.6904898
Speciesversicolor:Sepal.Width 0.8650777 0.8650778
Speciesvirginica:Sepal.Width 0.9015345 0.9015345
关于r - 具有 lavaan 交互作用的分类变量的效果编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56971166/
今天有小伙伴给我留言问到,try{...}catch(){...}是什么意思?它用来干什么? 简单的说 他们是用来捕获异常的 下面我们通过一个例子来详细讲解下
我正在努力提高网站的可访问性,但我不知道如何在页脚中标记社交媒体链接列表。这些链接指向我在 facecook、twitter 等上的帐户。我不想用 role="navigation" 标记这些链接,因
说现在是 6 点,我有一个 Timer 并在 10 点安排了一个 TimerTask。之后,System DateTime 被其他服务(例如 ntp)调整为 9 点钟。我仍然希望我的 TimerTas
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我就废话不多说了,大家还是直接看代码吧~ ? 1
Maven系列1 1.什么是Maven? Maven是一个项目管理工具,它包含了一个对象模型。一组标准集合,一个依赖管理系统。和用来运行定义在生命周期阶段中插件目标和逻辑。 核心功能 Mav
我是一名优秀的程序员,十分优秀!