Daten simulieren, um sie an ein Mediationsmodell anzupassen


9

Ich bin daran interessiert, ein Verfahren zur Simulation von Daten zu finden, die mit einem bestimmten Mediationsmodell übereinstimmen. Gemäß dem allgemeinen Framework für lineare Strukturgleichungsmodelle zum Testen von Mediationsmodellen, das zuerst von Barron und Kenny (1986) skizziert und an anderer Stelle wie Judd, Yzerbyt & Muller (2013) beschrieben wurde , Mediationsmodelle für Ergebnis , Mediator und Prädiktor und unterliegen den folgenden drei Regressionsgleichungen: YmedX

(1)Y=b11+b12X+e1(2)med=b21+b22X+e2(3)Y=b31+b32X+b32med+e3
Der indirekte Effekt oder Mediationseffekt von auf bis kann entweder als oder äquivalent als . Unter dem alten Rahmen der Prüfung auf Mediation wurde die Mediation durch Testen von in Gleichung 1, in Gleichung 2 und in Gleichung 3 hergestellt.XYmedb22b32b12b32b12b22b32

Bisher habe ich versucht, Werte von und zu simulieren , die mit den Werten der verschiedenen Regressionskoeffizienten unter Verwendung von in übereinstimmen , wie z. B. den folgenden Code: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)

Es scheint jedoch, dass die sequentielle Erzeugung von und Verwendung der Gleichungen 2 und 3 nicht ausreicht, da ich in Regressionsgleichung 1 (die eine einfache bivariate Beziehung zwischen und modelliert ) unter Verwendung dieses Ansatzes keine Beziehung zwischen und . Dies ist wichtig, da eine Definition des indirekten (dh Mediations-) Effekts , wie ich oben beschreibe.medYXYXYb12b32

Kann mir jemand helfen, eine Prozedur in R zu finden, um Variablen , und zu generieren , die Einschränkungen erfüllen, die ich mit den Gleichungen 1, 2 und 3 festgelegt habe?XmedY

Antworten:


4

Das ist ganz einfach. Der Grund, warum Sie bei Ihrem Ansatz keine Beziehung zwischen und , liegt im Code: xy

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

Wenn Sie eine Beziehung zwischen und wünschen, auch wenn enthalten ist ( Sie möchten eine teilweise Mediation), würden Sie stattdessen einfach einen Wert ungleich Null für verwenden. Sie können beispielsweise den folgenden Code durch den folgenden ersetzen: xymedb32

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

Somit wurde von auf geändert . (Natürlich wäre ein anderer, spezifischer Wert wahrscheinlich relevanter, abhängig von Ihrer Situation. Ich habe gerade aus meinem Kopf genommen.) b32033


Bearbeiten:
In Bezug auf die nicht signifikante marginale Beziehung ist dies nur eine Funktion der statistischen Leistung . Da die Kausalkraft von in Ihrem ursprünglichen Setup vollständig durch , haben Sie eine geringere Leistung als sonst. Trotzdem ist der Effekt in gewissem Sinne immer noch real . Als ich Ihren ursprünglichen Code ausführte (nachdem ich den Startwert als Wert festgelegt hatte, den ich wieder oben auf meinem Kopf ausgewählt hatte), hatte ich einen signifikanten Effekt: 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 

...

Um mehr Leistung zu erhalten, können Sie das von Ihnen verwendete erhöhen oder kleinere Fehlerwerte verwenden (dh Werte verwenden, die unter den Standardwerten in den Aufrufen liegen). Nsd=1rnorm()


gung, danke für deine antwort. Ich nehme an, meine Frage könnte etwas mehrdeutig sein. Was ich will, ist keine Beziehung zwischen x und y in Modell 3 (was Sie getan haben), sondern in Modell 1 (Y = b11 + b12 * X + e1). Ich habe meine Frage zu diesem Zweck geklärt.
Patrick S. Forscher

Danke für die Bearbeitung. Ist es möglich, die Größe des Populationseffekts für den Koeffizienten b12 direkt anzugeben?
Patrick S. Forscher

Ihre Frage an dieser Stelle lautet: Was wäre die Populationskorrelation zwischen und im Allgemeinen? Ich frage mich, ob das am besten als neue Frage gestellt werden kann, da ich mir nicht sicher bin. Im einfachsten Fall, in dem alle 3 - Variablen ( , , ) werden in der Regel verteilt, und das Verhältnis b / t & ist vollständig vermittelt wird , dann . Es ist jedoch komplexer, wenn die Verteilungen nicht normal sind (z. B. Ihr hat gleiche Frequenzen von & ) oder wenn die Mediationssituationen komplexer sind.xyxmedyxyρx,y=ρx,medρmed,yx.5+.5
Gung - Reinstate Monica

0

Hier ist ein Artikel darüber, wie man einfache Mediation in Caron & Valois (2018) modelliert : Es gibt R-Code

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

Sie müssen nur (die Stichprobengröße), , und (direkter Effekt) angeben . Der Vorteil hierbei ist, dass Sie standardisierte Koeffizienten modellieren, damit Sie deren Effektgrößen kennen. Sie enthielten auch Code zum Aufheben der Standardisierung und zum Tragen des Bootstraps von Baron & Kenny, Sobel und Bca.nabc

Verweise

Caron, P.-O. & Valois, P. (2018). Eine rechnerische Beschreibung der einfachen Mediationsanalyse. The Quantitative Methods for Psychology, 14, 147-158. doi: 10.20982 / tqmp.14.2.p147

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.