Mediierte Multiple Regression

Behandlung der Übungsaufgaben zur mediierten Regression mit R
Regression
Mediation
Übungsaufgaben
Autor:in

Joao Schneider

Veröffentlichungsdatum

30. November 2022

Mediationsmodelle knüpfen inhaltlich an dem Post von letzter Woche an.

Im Vergleich zum einfachen Regressionsmodell (links)…

…können Mediationsmodelle wie folgt beschrieben werden:

\[ \small \begin{align*} M = i_M + aX + eM \\ Y = i_Y + c'X + bM + e_Y \end{align*} \]

Beispiel

Die Variable Kampagne dient der Information über gesunde Ernährung (dummy-codiert: 0 = nicht informiert, 1 = informiert), wobei angenommen wird, dass sie das Verhalten vorhersagt.

expl_vl <- read_table(here("data", "medreg", "expl_vl.txt")) %>% 
           mutate(Kampagne = factor(Kampagne, levels = c(0, 1),
                                    labels = c("nicht informiert", "informiert")))

Angenommen Y (Verhalten) soll durch X (Kampagne) vorhergesagt werden, mit einem möglichen Mediator M (Wissen), dann ergeben sich folgende beiden Regressionsmodelle:

Vorhersage von a

lm(Wissen ~ Kampagne, data = expl_vl) %>% coef()
       (Intercept) Kampagneinformiert 
              35.6               38.6 

Vorhersage von c’

lm(Verhalten ~ Kampagne + Wissen, data = expl_vl) %>% coef()
       (Intercept) Kampagneinformiert             Wissen 
        11.9714286        -14.1714286          0.7142857 

totaler Effekt (c)

Vorhersage von Y durch X

lm(Verhalten ~ Kampagne, data = expl_vl) %>% coef()
       (Intercept) Kampagneinformiert 
              37.4               13.4 

Pakete

library(here)
library(haven)
library(dplyr)
library(tidyr)
library(magrittr)
library(readr)
library(ggplot2)

# install.packages("mediation")
# library(mediation) # masks dplyrs select()!

Übungsaufgaben

Aufgabe 1

Aufgabe 1

Hayes (2022, Abschn. 3.3) diskutiert eine Studie, an der \(n=123\) Studenten einer israelischen Universität teilnahmen. Alle Personen erhielt einen Zeitungsartikel zu einer Wirtschaftskrise, welche den Preis und die Versorgung von Zucker in Israel beeinflussen könnte. Die folgenden drei Variablen COND, REACTION und PMI werden analysiert:

  • Die Personen wurden zufällig in zwei Gruppen aufgeteilt. Der einen Gruppe wurde gesagt, dass der Zeitungsartikel am nächsten Tag auf der ersten Seite der Zeitung erscheinen würde COND=1 (bzw. front page). Die anderen Gruppe erhielt die Information, dass der Artikel am nächsten Tag im Inneren der Zeitung erscheinen würde COND=0 (bzw. interior page).
  • Die abhängige Variable REACTION ist ein numerischer Index, mit dem die Intention erhoben wurde, ob und wie viel Zucker die Person zu kaufen beabsichtigt. Personen besitzen hohe Wert auf REACTION, wenn sie beabsichtigen, bald viel Zucker zu kaufen.
  • Die Variable PMI (presumed media influence) erhob, wie sehr die Personen glaubten, dass die Nachfrage nach Zucker durch den erwähnten Artikel ansteigen würde. PMI ist eine potentielle Mediatorvariable
  1. Berechnen Sie deskriptive Kennwerte (Mittelwert und Standardabweichung) für beide Gruppen.
  2. Berechnen Sie die beiden Regressionen des Mediatormodells.
  3. Wie hoch ist der direkte und der indirekten Effekt der experimentellen Bedingung auf die abhängige Variable REACTION.
  4. Interpretieren Sie die Steigungen \(a\), \(b\), den indirekten Effekt \(ab\) sowie die Steigung \(c′\).
  5. Berechnen den totalen Effekt. Verifizieren Sie den totalen Effekt mit Hilfe von linearer Regression.
  6. Berechnen Sie den Standardfehler des indirekten Effekts mit Hilfe der Formel \(SE_{ab} = \sqrt{a^2 SE_{b}^2 + b^2 SE_{a}^2 + SE_{a}^2 SE_{b}^2}\)
  7. Ist PMI ein Mediator?
  8. Berechnen Sie ein 95%-Konfidenzintervall für den indirekten Effekt basierend auf den Ergebnissen der Delta-Methode

Erläuterung

Im Buch (Hayes, 2022, S. 88) findet sich nachfolgende Beschreibung:

To illustrate the estimation of direct and indirect effects in a simple mediation model, I use data from a study conducted in Tal-Or et al. (2010). The data file is named PMI and can be downloaded from this book’s webpage. The participants in this study (\(43\) male and \(80\) female students studying political science or communication at a university in Israel) read one of two newspaper articles describing an economic crisis that might affect the price and supply of sugar in Israel. Approximately half of the participants (\(n = 58\)) were given an article they were told would be appearing on the front page of a major Israeli newspaper (henceforth referred to as the front page condition). The remaining participants (\(n = 65\)) were given the same article but were told it would appear in the middle of an economic supplement of this newspaper (referred to here as the interior page condition). Which of the two articles any participant read was determined by random assignment. In all other respects, the participants in the study were treated equivalently, the instructions they were given were the same, and all measurement procedures were identical in both experimental conditions.

After the participants read the article, they were asked a number of questions about their reactions to the story. Some questions asked participants how soon they planned on buying sugar and how much they intended to buy. Their responses were aggregated to form an intention to buy sugar measure (REACTION in the data file), such that higher scores reflected greater intention to buy sugar (sooner and in larger quantities). They were also asked questions used to quantify how much they believed that others in the community would be prompted to buy sugar as a result of exposure to the article, a measure of presumed media influence (PMI in the data file).

Daten

df_med <- read_sav(here("data", "medreg", "pmi.sav")) %>% 
          haven::zap_labels() %>% 
          haven::zap_formats() %>% 
          mutate(cond = factor(cond, levels = c(0, 1), 
                                     labels = c("interior page", "front page")),
                 gender = factor(gender, levels = c(0, 1),
                                 labels = c("female", "male")))

#' cond 
#' 0 = interior page
#' 1 = front page

#' gender
#' 0 = female,
#' 1 = male

Teilaufgabe a

Berechnen Sie deskriptive Kennwerte (Mittelwert und Standardabweichung) für beide Gruppen.

df_med %>% group_by(cond) %>% 
           summarise(M = mean(reaction), SD = sd(reaction))
M SD
interior page 3.25 1.61
front page 3.75 1.45

Teilaufgabe b

Berechnen Sie die beiden Regressionen des Mediatormodells.

Zwei Regressionen:

  1. M wird vorhergesagt durch X;
  2. Y wird vorhergesagt durch X und M

\[ \small \begin{align*} M = i_M + aX + eM \\ Y = i_Y + c'X + bM + e_Y \end{align*} \] In unserem Fall ist

  • M = PMI
  • X = Condition
  • Y = Reaction

Entsprechend gilt:

\[ \small \begin{align*} Y_{REACTION} = i_Y + c'X_{Condition} + bM_{PMI} + e_Y \\ M_{PMI} = i_M + aX_{Condition} + eM \end{align*} \]

# (1) fit M
reg_1 <- lm(pmi ~ cond, data = df_med)

# (2) fit Y (aka. dv)
reg_2 <- lm(reaction ~ cond + pmi, data = df_med)
coef(reg_1)
   (Intercept) condfront page 
     5.3769231      0.4765252 

Also ist \(a=0.476\).

coef(reg_2)
   (Intercept) condfront page            pmi 
     0.5268655      0.2543542      0.5064485 

Sowie \(b = 0.506\) und \(c' = 0.254\)

Teilaufgabe c

Wie hoch ist der direkte und der indirekten Effekt der experimentellen Bedingung auf die abhängige Variable REACTION.

Der direkte Effekt ist \(c' = 0.254\) (vgl. Output oben). Der indirekte Effekt ergibt sich als \(a\times b = 0.476 \times 0.506 = 0.241\), muss also berechnetet werden:

reg_1 %>% summary() %>% 
          broom::tidy() %>% 
          filter(term != "(Intercept)") %>% 
          select(a = estimate, se_a = std.error) -> desc_a

reg_2 %>% summary() %>% 
          broom::tidy() %>% 
          filter(term != "(Intercept)" & term != "condfront page") %>% 
          select(b = estimate, se_b = std.error) %>% 
          bind_cols(desc_a) %>% 
          mutate(ab = a*b) -> desc_ab 

desc_ab %>% pull(ab) -> ab

round(ab, 3)
[1] 0.241

Teilaufgabe d

Interpretieren Sie die Steigungen \(a\), \(b\), den indirekten Effekt \(ab\) sowie die Steigung \(c′\).

  • a=0.476: ist die Veränderung von \(M\) (PMI), wenn \(X\) (COND) um eine Einheit steigt, d.h. also wenn man statt Gruppe 0 in Gruppe 1 ist. Folglich ist a der erwartete unterschied in der wahrgenommenen Nachfrage nach Zucker, der dadurch zustande kommt, dass sich die Condition unterscheidet, also eine Person in der erste-Seite-Bedingung statt in der innere-Seite-Bedingung ist.
  • b=0.506: ist die erwartete Zunahme in der Intention Zucker zu kaufen (ob und wie viel Zucker gekauft wird) wenn sie sich in der vermuteten Nachfrage anderer nach Zucker um eine Einheit unterscheiden, sofern nur Personen einer Bedingung (COND) betrachtet werden.
  • c’=0.254: der direkte Effekt der COND auf die REACTION: c’ ist die erwartete Zunahme der Intention einer Person der Erste-Seite-Bedingung vs. der innere-Seite-Bedingung Zucker zu kaufen, falls die wahrgenommene Nachfrage konstant ist.
  • ab=0.243: der indirekte Effekt der COND auf die REACTION: ab ist der erwartete Unterschied einer Person in der erste-Seite-Bedingung vs. einer Person in der innere-Seite-Bedingung in der Intention Zucker zu kaufen, der sich dadurch ergibt, dass die Person in der erste-Seite-Bedingung von einer erhöhten Nachfrage ausgeht.

Teilaufgabe e

Berechnen Sie den totalen Effekt. Verifizieren Sie den totalen Effekt mit Hilfe von linearer Regression.

Der totale Effekt ist die Summe von direkten und indirektem Effekt (d.h. die Entscheidung Zucker zu kaufen, egal welcher Mechanismus eine Rolle spiele, sprich pmi wird nicht in der Modell lm(reaction ~ cond) aufgenommen): indirekter Effekt + direkter Effekt = \(c' + ab = 0.254 + 0.243 = 0.495\)

lm(reaction ~ cond, data = df_med) %>% coef()
   (Intercept) condfront page 
     3.2500000      0.4956897 

Der Mittelwertsunterschied in meiner Intention Zucker zu kaufen im Vergleich beider Gruppen. D.h. es können auch beide Mittelwerte der Gruppen vergleichen werden:

df_med %>% group_by(cond) %>% 
           summarise(M = round(mean(reaction), 3)) %>% 
           pivot_wider(names_from = "cond", values_from = "M") %>% 
           janitor::clean_names() %>% 
           mutate(delta = front_page - interior_page)
# A tibble: 1 × 3
  interior_page front_page delta
          <dbl>      <dbl> <dbl>
1          3.25       3.75 0.496

Teilaufgabe f

Berechnen Sie den Standardfehler des indirekten Effekts mit Hilfe der Formel \[SE_{ab} = \sqrt{a^2 SE_{b}^2 + b^2 SE_{a}^2 + SE_{a}^2 SE_{b}^2}\]

Für die Berechnung von \(SE_{ab}\) werden also \(a\), \(b\) und deren Standardfehler benötigt. Diese haben wir bereits oben in desc_ab abgespeichert.

desc_ab %>% summarise_all(~.^2) %>% 
            mutate(se_ab = sqrt(a * se_b + b * se_a + se_a*se_b)) -> desc_q

desc_q %>% pull(se_ab) -> se_ab
se_ab
[1] 0.1300385

Teilaufgabe g

Ist PMI ein Mediator?

Wir berechnen \(z=ab/SE_{ab}\)

z <- ab / se_ab
z
[1] 1.855877

Dabei ist \(z_{emp}=1.86\) weniger extrem als der kritische z-Wert \(z_{krit}=1.96\)

z > qnorm(p = .975)
[1] FALSE

Teilaufgabe h

Berechnen Sie ein 95%-Konfidenzintervall für den indirekten Effekt basierend auf den Ergebnissen der Delta-Methode

# CI = ab +- 1.96 * SE
ab - qnorm(p = .975) * se_ab
[1] -0.01353528
ab + qnorm(p = .975) * se_ab
[1] 0.4962062

Damit ist \(ab=0.241\), \(95\%KI=[-0.013, 0.496]\).

Aufgabe 2

Aufgabe 2
  1. Analysieren Sie die Daten mit dem SPSS-Macro PROCESS.
  2. Berechnen Sie ein 95%-Konfidenzintervall für den direkten Effekt basierend auf den Ergebnissen der Delta-Methode. Vergleichen Sie das Bootstrap-Konfidenzintervall mit dem zuvor berechneten Intervall nach der Delta-Methode.

Teilaufgabe a

Analysieren Sie die Daten mit dem SPSS-Macro PROCESS.

Frei nach unserem Motto nutzen wir selbstverständlich R; konkret das 📦 mediation-Paket1.

set.seed(123)
results <- mediation::mediate(model.m = reg_1, model.y = reg_2, 
                              treat = 'cond', mediator = 'pmi', boot = FALSE)
summary(results)

Causal Mediation Analysis 

Quasi-Bayesian Confidence Intervals

               Estimate 95% CI Lower 95% CI Upper p-value  
ACME             0.2429       0.0157         0.53   0.044 *
ADE              0.2459      -0.2571         0.75   0.330  
Total Effect     0.4888      -0.0964         1.04   0.082 .
Prop. Mediated   0.4726      -0.7557         2.51   0.118  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Sample Size Used: 123 


Simulations: 1000 

Die Terme haben folgende Bedeutung:

  • ACME: indirekter Effekt \(ab\)
  • ADE: direkter Effekt \(c'\)
  • Total Effect: totaler Effekt \(c' + ab\) (aka. Gesamteffekt)
  • Prop. Mediated: mediierter Anteil (proportions mediated)2; Größe der durchschnittlichen kausalen Mediationsaffekte im Verhältnis zum Gesamteffekt

Teilaufgabe b

Berechnen Sie ein 95%-Konfidenzintervall für den direkten Effekt basierend auf den Ergebnissen der Delta-Methode. Vergleichen Sie das Bootstrap-Konfidenzintervall mit dem zuvor berechneten Intervall nach der Delta-Methode.

# default: sims = 1000; aber normal = 1 fehlt
results_ci <- mediation::mediate(model.m = reg_1, model.y = reg_2, sims = 5000,
                                 treat = 'cond', mediator = 'pmi', boot = TRUE)

summary(results_ci)

Causal Mediation Analysis 

Nonparametric Bootstrap Confidence Intervals with the Percentile Method

               Estimate 95% CI Lower 95% CI Upper p-value  
ACME             0.2413       0.0108         0.53   0.044 *
ADE              0.2544      -0.2614         0.76   0.330  
Total Effect     0.4957      -0.0503         1.04   0.076 .
Prop. Mediated   0.4869      -0.8844         2.85   0.104  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Sample Size Used: 123 


Simulations: 5000 

Literatur

Hayes, A. F. (2022). Introduction to mediation, moderation, and conditional process analysis: A regression-based approach (3. Aufl.). Guilford Publications.
Tal-Or, N., Cohen, J., Tsafati, Y., & Gunther, A. C. (2010). Testing causal direction in the influence of presumed media influence. Communication Research, 37(6), 801–824. https://doi.org/10.1177/0093650210362684

Fußnoten

  1. Wir lasen das 📦 mediation-Paket nicht via library(), da es ansonsten dplyrs select()-Funktion maskiert↩︎

  2. engl. “the size of the average causal mediation effects relative to the total effect”↩︎