Simulazione di dati per adattarsi a un modello di mediazione


9

Sono interessato a trovare una procedura per simulare dati coerenti con un modello di mediazione specificato. Secondo il modello generale lineare del modello di equazione strutturale per testare i modelli di mediazione delineati da Barron e Kenny (1986) e descritti altrove come Judd, Yzerbyt e Muller (2013) , modelli di mediazione per il risultato , mediatore \ newcommand {\ med} {\ rm med} \ med e il predittore X e sono regolati dalle seguenti tre equazioni di regressione: \ 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 {allineare}YmedX

(1)Y=b11+b12X+e1(2)med=b21+b22X+e2(3)Y=b31+b32X+b32med+e3
L'effetto indiretto o l'effetto di mediazione di X su Y attraverso med può essere definito come b22b32 o, equivalentemente, come b12b32 . Nel vecchio quadro di test per la mediazione, la mediazione è stata stabilita testando b12 nell'equazione 1, b22 nell'equazione 2 e b32 nell'equazione 3.

Finora, ho tentato di simulare valori di med e Y che sono coerenti con i valori dei vari coefficienti di regressione usando rnormin R, come il codice seguente:

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)

Tuttavia, sembra che generare sequenzialmente e usando le equazioni 2 e 3 non sia sufficiente, poiché non ho alcuna relazione tra e nell'equazione di regressione 1 (che modella una semplice relazione bivariata tra e ) usando questo approccio . Questo è importante perché una definizione dell'effetto indiretto (cioè mediazione) è , come descrivo sopra.medYXYXYb12b32

Qualcuno può aiutarmi a trovare una procedura in R per generare le variabili , e che soddisfano i vincoli che ho impostato usando le equazioni 1, 2 e 3?XmedY

Risposte:


4

Questo è abbastanza semplice. La ragione per cui si dispone di alcuna relazione tra e utilizzando il tuo approccio è a causa del codice: xy

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

Se volete qualche relazione tra ed , anche quando è incluso (che è, si desidera parziali di mediazione), si sarebbe semplicemente utilizzare un valore diverso da zero per invece. Ad esempio, è possibile sostituire il seguente codice per quanto sopra: xymedb32

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

Pertanto, è stato modificato da a . (Naturalmente un altro valore specifico sarebbe probabilmente più pertinente, a seconda della situazione, ne ho appena scelti dalla parte superiore della mia testa.) b32033


Modifica:
rispetto alla relazione marginale non significativa, questa è solo una funzione del potere statistico . Dato che la forza causale di è passata interamente attraverso nella configurazione originale, hai un potere inferiore rispetto a quello che potresti altrimenti. Tuttavia, l'effetto è ancora reale in un certo senso. Quando ho eseguito il tuo codice originale (dopo aver impostato il seed utilizzando come valore che ho appena selezionato dalla parte superiore della mia testa), ho ottenuto un effetto significativo: 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 

...

Per ottenere più potenza, è possibile aumentare la si sta utilizzando o utilizzare valori di errore più piccoli (ovvero, utilizzare valori inferiori a quelli predefiniti nelle chiamate). Nsd=1rnorm()


gung, grazie per la tua risposta. Suppongo che la mia domanda potrebbe essere un po 'ambigua. Quello che voglio non è una relazione tra xey nel modello 3 (che è quello che hai fatto), ma nel modello 1 (Y = b11 + b12 * X + e1). Ho chiarito la mia domanda in tal senso.
Patrick S. Forscher,

Grazie per la modifica. È possibile specificare direttamente la dimensione dell'effetto popolazione per il coefficiente b12?
Patrick S. Forscher,

La tua domanda a questo punto è quale sarebbe: qual è la correlazione della popolazione tra & in generale. Mi chiedo se potrebbe essere meglio fare una nuova domanda, dato che non sono sicuro di averlo in testa. Nel caso più semplice, in cui tutte e 3 le variabili ( , , ) sono normalmente distribuite e la relazione b / t & è completamente mediata, quindi . Tuttavia, è più complesso se le distribuzioni non sono normali (ad esempio, la tua è pari frequenze di e ) o con situazioni di mediazione più complesse.xyxmedyxyρx,y=ρx,medρmed,yx.5+.5
gung - Ripristina Monica

0

Ecco un documento su come modellare la mediazione semplice in Caron & Valois (2018) : C'è il codice 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))

Devi solo specificare (la dimensione del campione), , e (effetto diretto). Il vantaggio qui è che modellerai coefficienti standardizzati in modo da conoscerne le dimensioni dell'effetto. Includevano anche il codice per non standardizzare, portare il bootstrap Baron & Kenny, Sobel e Bca.nabc

Riferimenti

Caron, P.-O., & Valois, P. (2018). Una descrizione computazionale della semplice analisi della mediazione. I metodi quantitativi per la psicologia, 14, 147-158. doi: 10,20,982 mila / tqmp.14.2.p147

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.