Analiza mediacji i moderacji. X - predyktor M - mediator Y - zmienna zależna. Dr Paweł Kleka /50. Trochę historii.

Save this PDF as:
 WORD  PNG  TXT  JPG

Wielkość: px
Rozpocząć pokaz od strony:

Download "Analiza mediacji i moderacji. X - predyktor M - mediator Y - zmienna zależna. Dr Paweł Kleka /50. Trochę historii."

Transkrypt

1 Analiza mediacji i moderacji Dr Paweł Kleka X - predyktor M - mediator Y - zmienna zależna 3/50 Trochę historii Mediacja 4/50

2 Mediacja całkowita Analiza wielkości efektu pośredniego wg Barona i Kennego Jeśli c jest istotne Oraz a b jest istotne To jeśli c nie jest istotne To M jest mediatorem 5/50 Wariancja w modelu mediacji c - efekt pośredni (direct) d - efekt bezpośredni (indirect) c+d - efekt całkowity (total) 7/50 Jeśli c jest nadal istotne? to mediacja może być częściowa Jak to sprawdzić? Najczęściej stwierdza się mediacje częściowe Do oszacowania częściowości służy obliczenie stosunku efektu pośredniego do efektu całkowitego Stosunek ten to wariancja uwzględniona (VAF) Konieczny test istotności statystycznej, np: Sobela (duże próby, n > 250) Aroiana (duże próby, z poprawką na cor( X~ M)) Goodmana (małe próby, n < 50) Jak policzyć wynik takiego testu bez R? Google::Test Sobel 6/50 8/50

3 Krytyka klasycznej analizy mediacji CMA - causal mediation analysis Iloczyn rozkładów normalnych nie jest normalny. Krytyka poprzednich rozwiązań: - kontrola wpływu M nie oznacza, że M działa w stały sposób Rozwiązanie: - zamiast usuwać wariancję Y ~ M wyznacza się jej rozkład dla wszystkich wartości M Zalety: - - dowolne modele zależności (nie tylko liniowe) istotność w oparciu o 95% przedział ufności w oparciu o bootstrap 9/50 11/50 Błędy w stosowaniu analizy mediacji Drzewo decyzyjne (Zhang i in., 2010) zakłada się związek przyczynowo - skutkowy wszystkie zależności MUSZĄ być liniowe 10/50 12/50

4 Kiedy możemy spodziewać się obecności moderatora? Analiza reszt wykazuje heteroskedastyczność, np. po sprawdzenia testem White'a Jej obecność wskazuje na istnienie potencjalnnego moderatora lub co najmniej zmiennej kategorianej, którą należy dołączyć do modelu. Moderacja 15/50 Model moderacji Heteroskedastyczność występuje, gdy składniki losowe modelu mają różne wariancje często spotykana w przypadku modeli opartych na danych przekrojowych i przekrojowo-czasowych przyczyną są głównie różnice w zmienności DV w zależności od stanu IV uwzględnionych (lub nie) w modelu 14/50 16/50

5 Etapy analizy moderacji 1. centracja predyktorów 2. wyznaczenie składnika interakcyjnego 3. hierarchiczna analiza regresji 4. analizy (liczba mnoga!) regresji w podgrupach Literatura 17/50 Różnice między mediacją a moderacją Mediator Moderator Zależności na tyle silne, że można założyć jej istnienie z dużą dozą pewności i poświecić się dociekaniom dlaczego ona występuje. Poszukiwanie mediatorów jest istotnym elementem budowania teorii psychologicznej. Zależność słaba, która czasami występuje, a czasami zanika Identyfikacja moderatorów pozwala określić warunki, w których jakaś zależność występuje i odróżnić je od warunków, w których zależność zanika (nawet jeżeli nie rozumiemy dlaczego tak się dzieje ;-) Baron, R. M., Kenny, D. A. (1986). The moderator-mediator variable distinction in social psychological research: conceptual, strategic, and statistical considerations. Journal of Personality and Social Psychology, 51(6), Sobel, M. E. (1982). Asymptotic confidence intervals for indirect effects in structural equation models. Sociological Methodology 13: Pearl, J. (1994). A probabilistic calculus of actions. W: Lopez de Mantaras, R.; Poole, D., (red.), s Uncertainty in Artificial Intelligence 10. San Mateo, CA: Morgan Kaufmann. Zhao, X., Lynch Jr, J. G., Chen, Q. (2010). Reconsidering Baron and Kenny: Myths and truths about mediation analysis. Journal of consumer research, 37(2), /50 20/50

6 Dane o uczniach o nazwie student d[1:5,1:9] fight attachment work score late coed smorale gender income Analiza mediacji w R Zmienne, które będą nas interesować to: 1. score - wynik z matematyki 2. income - dochody w rodzinie 3. pared - poziom wykształcenia rodziców (wyższy) 23/50 Analiza klasyczna Model do sprawdzenia Wczytujemy dane d <- mediation::student Użycie :: pozwala wywałać instrukcję lub dane z dowolnego pakietu nie wczytując go całego do pamięci. 1. Y = wynik z matematyki (score) 2. M = wykształcenie rodziców (pared) 3. X = dochód (income) dim(d) [1] /50 24/50

7 Test Sobela - regresje Poprawki do testu Sobela wynik <- with(d, sobel(pred=income, med=pared, out=score)) wynik[1:3] $`Mod1: Y~X` (Intercept) e-83 pred e-13 $`Mod2: Y~X+M` (Intercept) e-85 pred e-08 med e-03 $`Mod3: M~X` (Intercept) e-03 pred e-18 25/50 a b test Sobela z = b2 s 2 a+ a 2 s 2 b poprawka na korelacje X ~ M Aroian a z = poprawka na małe próby Goodman a z = a b b2 s 2 a+ a 2 s 2 b+ s 2 a s 2 b a b + b2 s 2 a a 2 s 2 b s 2 a s 2 b a <- wynik$`mod3: M~X`[2,1]; b <- wynik$`mod2: Y~X+M`[3,1] sa <- wynik$`mod3: M~X`[2,2]; sb <- wynik$`mod2: Y~X+M`[3,2] (z.aroian <- (a*b)/sqrt(b^2*sa^2 + a^2*sb^2 + sa^2 * sb^2)) [1] round(2*(1-pnorm(z.aroian)),5) [1] (VAF <- wynik$indirect.effect/wynik$`mod1: Y~X`[2,1]) [1] p-value testu Aroiana procent mediacji 27/50 Test Sobela - wynik $Indirect.Effect [1] $SE [1] $z.value [1] $N [1] 500 Jeszcze p value Analiza Causal Mediation Analysis round(2*(1-pnorm(wynik$z.value)),5) # wartość p odczytana z dystrybuanty rozkładu normalnego [1] /50

8 Pakiet mediation 1. Określamy modele dla Y i dla M 2. Obliczamy przyczynowy test mediacji wynik.cma <- mediate(a, bc, treat ="income", mediator = "pared", data=d, sims=50, boot = T) a <- lm(formula = pared ~ income, data=d) bc <- lm(formula = score ~ income + pared, data=d) 29/50 31/50 Wyszukiwanie wartości odstających Wyniki CMA car::outliertest(model = bc) summary(wynik.cma) No Studentized residuals with Bonferonni p < 0.05 Largest rstudent : rstudent unadjusted p-value Bonferonni p /50 Causal Mediation Analysis Nonparametric Bootstrap Confidence Intervals with the Percentile Method Estimate 95% CI Lower 95% CI Upper p-value ACME <2e-16 *** ADE <2e-16 *** Total Effect <2e-16 *** Prop. Mediated <2e-16 *** --- Signif. codes: 0 '***' '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Sample Size Used: 500 Simulations: 50 32/50

9 Interakcja między węglowodanami i tłuszczami w diecie oraz jej wpływ na wagę summary(int) nr_ob waga weglowodany tluszcze Min. : 1.00 Min. : Min. :115.0 Min. : st Qu.: st Qu.: st Qu.: st Qu.: Median :14.50 Median : Median :162.5 Median : Mean :14.50 Mean : Mean :165.9 Mean : rd Qu.: rd Qu.: rd Qu.: rd Qu.: Max. :28.00 Max. : Max. :235.0 Max. : ACME - Averge Causual Mediation Effect - efekt pośredni ADE - Average Direct Effect - efekt bezpośredni Total effect - efekt całkowity 33/50 35/50 model1 <- lm(waga~weglowodany+tluszcze, data = int) model2 <- lm(waga~weglowodany+tluszcze+weglowodany:tluszcze, data = int) summary(model1)$coef; summary(model2)$coef (Intercept) e-06 weglowodany e-03 tluszcze e-12 Przykład analizy moderacji (Intercept) weglowodany tluszcze weglowodany:tluszcze /50

10 Tworzenie czynnika interakcyjnego int$zweglowodany <- scale(int$weglowodany, center = T, scale = F) int$ztluszcze <- scale(int$tluszcze, center = T, scale=f) int$interakcja <- int$ztluszcze*int$zweglowodany head(int) nr_ob waga weglowodany tluszcze Zweglowodany Ztluszcze interakcja Skoro wszystko ważne to analiza hierarchiczna model1 <- lm(waga ~ weglowodany, data = int) model2 <- lm(waga ~ weglowodany + tluszcze, data = int) model3 <- lm(waga ~ weglowodany + tluszcze + interakcja, data = int) 37/50 39/50 Budowa modelu summary(model)$coef Analiza istotności wprowadzania kolejnego czynnika do modelu (Intercept) e-06 weglowodany e-03 tluszcze e-12 interakcja e-02 anova(model1,model2,model3) Analysis of Variance Table Model 1: waga ~ weglowodany Model 2: waga ~ weglowodany + tluszcze Model 3: waga ~ weglowodany + tluszcze + interakcja Res.Df RSS Df Sum of Sq F Pr(>F) e-12 *** * --- Signif. codes: 0 '***' '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 38/50 40/50

11 Bety wystandaryzowane Czyli odpowiedź na pytanie o proporcje QuantPsyc::lm.beta(model3) table(int$ktluszcze); table(int$kweglowodany) niskie wysokie weglowodany tluszcze interakcja niskie wysokie /50 43/50 Podział wg mediany Szereg analiz regresji int$kweglowodany <- factor( ifelse(int$weglowodany > median(int$weglowodany), 1, 0), levels = 0:1, labels = c("niskie", "wysokie")) int$ktluszcze <- factor( ifelse(int$tluszcze > median(int$tluszcze), 1, 0), levels = 0:1, labels = c("niskie", "wysokie")) head(int[,5:9]) model4a <- lm(waga~weglowodany, data=int[int$ktluszcze=="niskie",]) model4b <- lm(waga~weglowodany, data=int[int$ktluszcze=="wysokie",]) model4c <- lm(waga~tluszcze, data=int[int$kweglowodany=="niskie",]) model4d <- lm(waga~tluszcze, data=int[int$kweglowodany=="wysokie",]) Zweglowodany Ztluszcze interakcja Kweglowodany Ktluszcze niskie niskie niskie niskie niskie niskie niskie niskie niskie niskie niskie niskie 42/50 44/50

12 summary(model4a)$coef; summary(model4b)$coef; summary(model4c)$coef; summary(model4d)$coef (Intercept) weglowodany ggplot(int, aes(x=tluszcze, y=waga, colour=kweglowodany, group=kweglowodany)) + geom_point() + geom_smooth(method="lm", se=f, size=2) + theme_bw() (Intercept) e-01 weglowodany e-06 (Intercept) e-06 tluszcze e-07 (Intercept) e-04 tluszcze e-07 45/50 47/50 Rysunki Plot twist :-) ggplot(int, aes(x=weglowodany, y=waga, colour=ktluszcze, group=ktluszcze)) + geom_point() + geom_smooth(method="lm", se=f, size=2) + theme_bw() qplot(int$weglowodany,int$tluszcze, size=int$waga) 46/50 48/50