Имитация данных в соответствии с моделью посредничества


9

Я заинтересован в поиске процедуры для моделирования данных, которые соответствуют указанной модели посредничества. В соответствии с общей структурой модели линейных структурных уравнений для тестирования моделей посредничества, впервые описанной Barron и Kenny (1986) и описанной в других местах, таких как Judd, Yzerbyt & Muller (2013) , модели посредничества для результата Y , mediator med и предиктор X и регулируются следующими тремя уравнениями регрессии:

(1)Y=b11+b12X+e1(2)med=b21+b22X+e2(3)Y=b31+b32X+b32med+e3
Косвенный эффект или опосредованный эффект X на Y через med можно определить как b22b32 или, что то же самое, как b12b32 . Согласно старой схеме тестирования на посредничество, посредничество было установлено путем проверки b12 в уравнении 1, b22 в уравнении 2 и b32 в уравнении 3.

До сих пор я пытался смоделировать значения med и Y , которые согласуются со значениями различных коэффициентов регрессии, использующих rnormin R, таких как код ниже:

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

Ответы:


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()


блин, спасибо за твой ответ. Я полагаю, мой вопрос может быть немного двусмысленным. Я хочу не отношения между x и y в модели 3 (что вы и сделали), а в модели 1 (Y = b11 + b12 * X + e1). Я разъяснил свой вопрос на этот счет.
Патрик С. Форшер

Спасибо за редактирование. Можно ли напрямую указать величину эффекта населения для коэффициента b12?
Патрик С. Форшер

Ваш вопрос на данный момент заключается в том, что было бы: какова популяционная корреляция между & в целом. Интересно, лучше ли это задать как новый вопрос, так как я не уверен, что у меня в голове. В простейшем случае, когда все 3 переменные ( , , ) , как правило , распределены, и соотношением б / т & будет полностью опосредованное, то . Тем не менее, это сложнее , если распределения не являются нормальными (например, вашим равна частотой & ), или ж / более сложного mediational ситуации.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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.