<- read_csv("data/winter2012/polite.csv") polite
32 Regression models: multiple predictors
So far, we fitted regressions with a single predictor, like the following Gaussian model of reaction times from Chapter 28:
\[ \begin{align} RT_i & \sim Gaussian(\mu_i, \sigma)\\ \mu_i & = \beta_1 \cdot W_{\text{T}[i]} + \beta_2 \cdot W_{\text{F}[i]}\\ \end{align} \]
The categorical predictor \(W\) (IsWord
in the data) has two levels (TRUE
and FALSE
), so there are two indexing variables: \(W_{\text{T}}\) and \(W_{\text{F}}\). Each indexing variable gets its coefficient: \(\beta_1\) and \(\beta_2\). In most context, however, you will want to investigate the effects of more than one predictor.
Regression models can be fit with multiple predictors. Traditionally, regression models with a single predictor were called “simple regression” and models with more than one “multiple regression”, but it doesn’t make sense to have a specific name: they are all regression models. In this chapter, we will discuss regression models with two categorical predictors.
32.1 Two categorical predictors
<- brm(
f0_bm ~ gender + attitude,
f0mn family = gaussian,
data = polite,
cores = 4,
seed = 7123,
file = "cache/ch-regression-cat-cat_f0_bm"
)
summary(f0_bm)
Family: gaussian
Links: mu = identity; sigma = identity
Formula: f0mn ~ gender + attitude
Data: polite (Number of observations: 212)
Draws: 4 chains, each with iter = 2000; warmup = 1000; thin = 1;
total post-warmup draws = 4000
Regression Coefficients:
Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
Intercept 255.14 4.48 246.47 263.81 1.00 4323 3184
genderM -116.07 5.28 -126.30 -105.67 1.00 4618 2936
attitudepol -14.71 5.34 -25.05 -4.40 1.00 4708 2884
Further Distributional Parameters:
Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
sigma 39.03 1.93 35.48 42.98 1.00 4604 2932
Draws were sampled using sampling(NUTS). For each parameter, Bulk_ESS
and Tail_ESS are effective sample size measures, and Rhat is the potential
scale reduction factor on split chains (at convergence, Rhat = 1).
conditional_effects(f0_bm, "gender")
conditional_effects(f0_bm, "attitude")
conditional_effects(f0_bm, "gender:attitude")
32.2 Is the effect of attitude the same in both genders?
|>
polite ggplot(aes(gender, f0mn, colour = attitude)) +
geom_jitter(alpha = 0.7, position = position_jitterdodge(jitter.width = 0.1, seed = 2836))
