Symulowanie danych w celu dopasowania do modelu mediacji

9

Jestem zainteresowany znalezieniem procedury do symulacji danych zgodnych z określonym modelem mediacji. Zgodnie z ogólną strukturą modelu liniowego równania strukturalnego do testowania modeli mediacji po raz pierwszy nakreśloną przez Barrona i Kenny'ego (1986) i opisaną w innych miejscach, takich jak Judd, Yzerbyt i Muller (2013) , modele mediacji dla wyniku , mediator \ newcommand {\ med} {\ rm med} \ med oraz predyktor X i rządzą nimi następujące trzy równania regresji: \ begin {align} Y & = b_ {11} + b_ {12} X + e_1 \ tag {1} \\ \ med & = b_ {21} + b_ {22} X + e_2 \ tag {2} \\ Y & = b_ {31} + b_ {32} X + b_ {32} \ med + e_3 \ tag {3} \ end {wyrównać}YmedX

(1)Y=b11+b12X+e1(2)med=b21+b22X+e2(3)Y=b31+b32X+b32med+e3
Pośredni efekt lub efekt mediacji X na Y do med można zdefiniować jako b22b32 lub, równoważnie, jako b12b32 . Zgodnie ze starymi ramami testowania mediacji mediację ustanowiono, testując b12 w równaniu 1, b22 w równaniu 2 i b32 w równaniu 3.

Do tej pory próbowałem symulować wartości med i Y które są zgodne z wartościami różnych współczynników regresji wykorzystujących rnormin R, takich jak poniższy kod:

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)

Wydaje się jednak, że sekwencyjne generowanie i za pomocą równań 2 i 3 nie wystarczy, ponieważ nie mam związku między i w równaniu regresji 1 (który modeluje prostą dwuwymiarową zależność między i ) przy użyciu tego podejścia . Jest to ważne, ponieważ jedna definicja efektu pośredniego (tj. Mediacji) to , jak opisałem powyżej.medYXYXYb12b32

Czy ktoś może mi pomóc znaleźć procedurę w R, aby wygenerować zmienne , i które spełniają ograniczenia ustawione przeze mnie za pomocą równań 1, 2 i 3?XmedY

Patrick S. Forscher
źródło

Odpowiedzi:

4

To jest całkiem proste. Powodem, dla którego nie ma relacji między i wykorzystujących swoje podejście jest ze względu na kod: xy

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

Jeśli chcesz jakiś związek między i nawet wtedy, gdy jest włączone (to znaczy, że chcą częściowej mediacji), to po prostu użyć wartość niezerową dla zamiast. Na przykład możesz zastąpić następujący kod powyższym: xymedb32

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

Dlatego zmieniono z na . (Oczywiście, inna, konkretna wartość byłaby prawdopodobnie bardziej odpowiednia, w zależności od twojej sytuacji, właśnie wybrałem z góry głowy.) b32033


Edycja:
W związku z tym, że marginalna zależność prawo-r jest nieistotna, jest to tylko funkcja siły statystycznej . Ponieważ siła przyczynowa jest przekazywana całkowicie przez w pierwotnej konfiguracji, masz mniejszą moc niż mógłbyś w przeciwnym razie. Niemniej jednak efekt jest nadal w pewnym sensie realny . Kiedy uruchomiłem twój oryginalny kod (po ustawieniu zarodka jako wartości, którą ponownie wybrałem z czubka głowy), uzyskałem znaczący efekt: 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 

...

Aby uzyskać więcej mocy, możesz zwiększyć używaną liczbę lub użyć mniejszych wartości błędów (tj. Użyć wartości mniejszych niż domyślne w wywołaniach). Nsd=1rnorm()

gung - Przywróć Monikę
źródło
Gung, dzięki za odpowiedź. Przypuszczam, że moje pytanie może być trochę niejednoznaczne. To, czego chcę, to nie związek między xiy w modelu 3 (co właśnie zrobiłeś), ale w modelu 1 (Y = b11 + b12 * X + e1). W tym celu wyjaśniłem moje pytanie.
Patrick S. Forscher,
Dzięki za edycję. Czy możliwe jest bezpośrednie określenie wielkości efektu populacji dla współczynnika b12?
Patrick S. Forscher,
Twoje pytanie w tym momencie brzmi: jaka jest korelacja populacji pomiędzy i w ogóle. Zastanawiam się, czy najlepiej byłoby zadać to pytanie jako nowe pytanie, ponieważ nie jestem pewien, czy jestem z góry w głowie. W najprostszym przypadku, gdy wszystkie 3 zmienne ( , , ) są normalnie rozłożone, a relacja b / t i jest w pełni mediowana, to . Jest to jednak bardziej złożone, jeśli rozkłady nie są normalne (np. Twoje ma równe częstotliwości i ) lub w / bardziej złożone sytuacje mediacyjne.xyxmedyxyρx,y=ρx,medρmed,yx.5+.5
Gung - Przywróć Monikę
0

Oto artykuł na temat modelowania prostej mediacji w Caron i Valois (2018) : Tam jest kod 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))

Musisz tylko podać (wielkość próbki), , i (efekt bezpośredni). Zaletą jest to, że modelujesz znormalizowane współczynniki, aby poznać ich rozmiary efektów. Zawarli także kod do unormowania, noszenia paska ładującego Baron & Kenny, Sobel i Bca.nabc

Bibliografia

Caron, P.-O. i Valois, P. (2018). Opis obliczeniowy prostej analizy mediacji. Ilościowe metody psychologii, 14, 147-158. doi: 10.20982 / tqmp.14.2.p147

POC
źródło