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


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 или, что то же самое, как b12−b32 . Согласно старой схеме тестирования на посредничество, посредничество было установлено путем проверки 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 (которое моделирует простые двумерные отношения между и ) с использованием этого подхода , Это важно, потому что одно определение косвенного (то есть посреднического) эффекта - это , как я описал выше.medYXYXYb12−b32

Может ли кто-нибудь помочь мне найти процедуру в 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


Редактировать:
Что касается маргинального отношения , не являющегося значимым, то это просто функция статистической мощности . Поскольку причинная сила полностью передается через в вашей первоначальной настройке, вы имеете меньшую мощность, чем могли бы в противном случае. Тем не менее, эффект все еще реален в некотором смысле. Когда я запустил ваш исходный код (после того, как я установил начальное значение в качестве значения, которое я снова выбрал из головы), я получил значительный эффект: x→yxmed90

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.