模拟数据以适应中介模型


9

我有兴趣找到一种过程来模拟与指定的中介模型一致的数据。根据测试调解模型的一般线性结构方程模型框架,该模型首先由Barron和Kenny(1986)概述,Judd,Yzerbyt和Muller(2013)等其他地方进行了介绍,其结果模型为调解模型Y,介体和预测变量,并由以下三个回归方程式控制: 通过对 的间接作用或中介作用可以定义为或等效地定义为。在旧的调解测试框架下,通过测试方程式1中的,建立了调解medX

(1)Y=b11+b12X+e1(2)med=b21+b22X+e2(3)Y=b31+b32X+b32med+e3
XYmedb22b32b12b32b12b22等式2中的。b32

到目前为止,我已经尝试使用in 来模拟与各种回归系数的值一致的和值,例如以下代码:medYrnormR

x   <- rep(c(-.5, .5), 50)
med <- 4 + .7 * x + rnorm(100, sd = 1) 

# Check the relationship between x and med
mod <- lm(med ~ x)
summary(mod)

y <- 2.5 + 0 * x + .4 * med + rnorm(100, sd = 1)

# Check the relationships between x, med, and y
mod <- lm(y ~ x + med)
summary(mod)

# Check the relationship between x and y -- not present
mod <- lm(y ~ x)
summary(mod)

然而,似乎依次生成和使用等式2和3是不够的,因为我留下之间没有关系和在回归方程1(其模型之间的简单二元关系和)使用这种方法。这很重要,因为如上所述,间接(即调解)效果的定义是。medYXYXYb12b32

谁能帮我在R中找到一个过程来生成变量,和,这些变量满足我使用公式1、2和3设置的约束?XmedY

Answers:


4

这很简单。使用您的方法在和之间没有关系的原因是由于以下代码: xy

y <- 2.5 + 0 * x + .4 * med + rnorm(100, sd = 1)

如果即使在包含情况下也希望和之间存在某种关系(即,需要部分调解),则只需为使用非零值即可。例如,您可以将以下代码替换为以上代码: xymedb32

y <- 2.5 + 3 * x + .4 * med + rnorm(100, sd = 1)

因此,已从更改为。(当然,其他一些特定的值可能会更相关,根据您的情况,我只是在脑海中挑了。) b32033


编辑:
关于边际关系不重要,那只是统计功效的函数。由于的因果力是在原始设置中完全通过传递的,因此您的功率比其他方法低。但是,从某种意义上说,效果仍然是真实的。当我运行您的原始代码时(在将种子设置为一个值之后,我再次摘自脑袋),我确实得到了显着的效果: xyxmed90

set.seed(90)
x <- rep(c(-.5, .5), 50)
med <- 4 + .7 * x + rnorm(100, sd = 1) 

# Check the relationship between x and med
mod <- lm(med ~ x)
summary(mod)

y <- 2.5 + 0 * x + .4 * med + rnorm(100, sd = 1)

# Check the relationships between x, med, and y
mod <- lm(y ~ x + med)
summary(mod)

# Check the relationship between x and y -- not present
mod <- lm(y ~ x)
summary(mod)

...
Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)   3.8491     0.1151  33.431   <2e-16 ***
x             0.5315     0.2303   2.308   0.0231 *  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1 

...

为了获得更多的权力,你可以增加你正在使用,或者使用更小的误差值(即,使用值小于预设的电话)。 Nsd=1rnorm()


龚,谢谢你的回答。我想我的问题可能有点模棱两可。我想要的不是模型3中的x和y之间的关系(这是您所做的),而是模型1中的(Y = b11 + b12 * X + e1)。我已经就这个问题澄清了我的问题。
Patrick S. Forscher

感谢您的修改。是否可以直接指定系数b12的总体效应的大小?
Patrick S. Forscher

此时的问题是:和之间的总体相关性是什么?我不知道是否最好将其作为一个新问题提出,因为我不确定。在最简单的情况下,所有3个变量(,,)均呈正态分布,并且关系b / t&被完全调节,则。但是,它更复杂,如果分布是不正常的(例如,你的是相等的频率&),或W /更复杂的中介效应的情况。xyxmedyxyρx,y=ρx,medρmed,yx.5+.5
gung-恢复莫妮卡

0

这是一篇关于如何在Caron&Valois(2018)中为简单中介建模的论文:R代码是

  x <- rnorm(n)
  em <- sqrt(1-a^2)
  m <- a*x + em*rnorm(n)
  ey2 <- sqrt(ey)
  y <- cp*x + b*m + ey2*rnorm(n)
  data <- as.data.frame(cbind(x, m, y))

您只需要指定(样本大小),,和(直接效果)即可。这样做的好处是您可以对标准化系数进行建模,以便了解其效果大小。他们还包括使非标准化,随身携带Baron&Kenny,Sobel和Bca引导程序的代码。nabc

参考文献

Caron,P.-O.和Valois,P.(2018)。简单中介分析的计算说明。《心理学定量方法》,第14卷,第147-158页。doi:10.20982 / tqmp.14.2.p147

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.