3.2. Odds ratios of logistic regression on unit response by incentive group (Table 4)
The multivariate logistic model is used to assess the factors (IVs used: Age, gender [dropped due to no significant results in any model] partnership status, household size, education, professional position, Austrian citizenship, origin and income quintiles) influencing the unit response rates.
Binary logistic model definition
$$P(Y_i=response)=\frac{1}{1+exp(\beta_0+\beta_1age+\beta_2partner+\beta_3hhsize+\beta_4edu+\beta_5job+\beta_6citizen+\beta_7origin+\beta_8income)}$$.
log_models <- lapply(as.list(levels(WaveOne$Pumavers)), function(x){
glm(id.net ~ age.cat +
SD4.dic + # SD4 marital status
SD5.dic + # SD5 household size
edu + # education
job + # ocupational position
SD20 + # SD20 citizenship
SD21.dic + # origin,
quintil, # income
data = WaveOne[WaveOne$id.bru==1,],
subset = Pumavers==x,
family = binomial())})
McFadden Pseudo R² for logistic regression
The following formula was applied:
$$R^2_{McFadden}=1-\frac{\ln L_1}{\ln L_0}$$.
Rsquared <- formatC(round(c(
ZDF = 1 - log_models[[1]]$deviance/log_models[[1]]$null.deviance,
Two = 1 - log_models[[2]]$deviance/log_models[[2]]$null.deviance,
Five = 1 - log_models[[3]]$deviance/log_models[[3]]$null.deviance,
Ten = 1 - log_models[[4]]$deviance/log_models[[4]]$null.deviance),
3), format="f", digits=3)
Print Table 4
library(stargazer)
tab.html <- stargazer(log_models[[1]],
log_models[[2]],
log_models[[3]],
log_models[[4]],
type = "html",
float = FALSE,
intercept.bottom = FALSE,
#decimal.mark = ",",
#digit.separator = ".",
header = FALSE,
apply.coef = exp,
t.auto = FALSE,
p.auto = FALSE,
report = "vct*",
#rq.se = "ker",
add.lines = list(c("McFadden Pseudo-R²",
Rsquared["ZDF"],
Rsquared["Two"],
Rsquared["Five"],
Rsquared["Ten"])),
covariate.labels = c("Constant",
"65 years und older",
"Up to 24 years",
"Yes",
"Household (1-4 Persons)",
"Higher degree after Matura",
"Vocational or commercial school",
"Apprenticeship",
"Matura",
"Max. compulsory schooling",
"Worker",
"Civil servant",
"Pensioner",
"Unemployed (inactive)",
"Self-employed",
"Contract agents",
"No",
"EU15 with Austria",
"Quintil (5=highest)"),
dep.var.caption = "Response Rate",
dep.var.labels = c("Brochure",
"€2 token",
"€5 token",
"Voucher"),
multicolumn = FALSE,
model.names = TRUE,
model.numbers = FALSE)
# Fix number of columns
tab.html <- str_replace_all(tab.html,'colspan=\"5\"','colspan=\"6\"') %>%
str_replace_all('colspan=\"4\"','colspan=\"5\"') %>%
str_replace_all('<tr><td style=\"text-align:left\">',
'<tr><td style=\"text-align:left\"></td><td style=\"text-align:left\">')
# Add age entry
tab.html[9] <- str_replace(tab.html[9],
'<tr><td style=\"text-align:left\"></td>',
'<tr><td style=\"text-align:left\">Age</td>')
tab.html[10] <- str_replace(tab.html[10],
'<tr><td style=\"text-align:left\"></td>',
'<tr><td style=\"text-align:left\">(Ref = 25 to 64 years)</td>')
# Add parnership entry
tab.html[15] <- str_replace(tab.html[15],
'<tr><td style=\"text-align:left\"></td>',
'<tr><td style=\"text-align:left\">In partnership</td>')
tab.html[16] <- str_replace(tab.html[16],
'<tr><td style=\"text-align:left\"></td>',
'<tr><td style=\"text-align:left\">(Ref = No)</td>')
# Add household size entry
tab.html[18] <- str_replace(tab.html[18],
'<tr><td style=\"text-align:left\"></td>',
'<tr><td style=\"text-align:left\">Household size</td>')
tab.html[19] <- str_replace(tab.html[19],
'<tr><td style=\"text-align:left\"></td>',
'<tr><td style=\"text-align:left\">(Ref = Household (5+))</td>')
# Add education entry
tab.html[21] <- str_replace(tab.html[21],
'<tr><td style=\"text-align:left\"></td>',
'<tr><td style=\"text-align:left\">Education</td>')
tab.html[22] <- str_replace(tab.html[22],
'<tr><td style=\"text-align:left\"></td>',
'<tr><td style=\"text-align:left\">(Ref = University degree)</td>')
# Add job entry
tab.html[36] <- str_replace(tab.html[36],
'<tr><td style=\"text-align:left\"></td>',
'<tr><td style=\"text-align:left\">Professional position</td>')
tab.html[37] <- str_replace(tab.html[37],
'<tr><td style=\"text-align:left\"></td>',
'<tr><td style=\"text-align:left\">(Ref = Clerk)</td>')
# Add citizenship entry
tab.html[54] <- str_replace(tab.html[54],
'<tr><td style=\"text-align:left\"></td>',
'<tr><td style=\"text-align:left\">Austrian Citizenship</td>')
tab.html[55] <- str_replace(tab.html[55],
'<tr><td style=\"text-align:left\"></td>',
'<tr><td style=\"text-align:left\">(Ref = Yes) </td>')
# Add origin entry
tab.html[57] <- str_replace(tab.html[57],
'<tr><td style=\"text-align:left\"></td>',
'<tr><td style=\"text-align:left\">Origin</td>')
tab.html[58] <- str_replace(tab.html[58],
'<tr><td style=\"text-align:left\"></td>',
'<tr><td style=\"text-align:left\">(Ref = non-EU15)</td>')
# Add income entry
tab.html[60] <- str_replace(tab.html[60],
'<tr><td style=\"text-align:left\"></td>',
'<tr><td style=\"text-align:left\">Income</td>')
cat(tab.html)
Response Rate | ||||||
Brochure | €2 token | €5 token | Voucher | |||
logistic | logistic | logistic | logistic | |||
Constant | 0.013 | 0.080 | 0.127 | 0.164 | ||
t = -5.503*** | t = -5.606*** | t = -5.339*** | t = -4.261*** | |||
Age | 65 years und older | 0.641 | 0.982 | 0.984 | 0.469 | |
(Ref = 25 to 64 years) | t = -1.100 | t = -0.051 | t = -0.044 | t = -2.025** | ||
Up to 24 years | 1.018 | 0.825 | 0.975 | 1.620 | ||
t = 0.046 | t = -0.508 | t = -0.080 | t = 1.344 | |||
In partnership | Yes | 1.396 | 1.237 | 1.573 | 1.524 | |
(Ref = No) | t = 1.607 | t = 1.161 | t = 2.508** | t = 2.268** | ||
Household size | Household (1-4 Persons) | 0.818 | 0.809 | 1.125 | 1.014 | |
(Ref = Household (5+)) | t = -0.988 | t = -1.153 | t = 0.664 | t = 0.076 | ||
Education | Higher degree after Matura | 5.956 | 2.974 | 2.345 | 2.330 | |
(Ref = University degree) | t = 2.408** | t = 2.766*** | t = 2.596*** | t = 2.399** | ||
Vocational or commercial school | 10.009 | 2.262 | 4.603 | 2.479 | ||
t = 3.036*** | t = 1.775* | t = 4.228*** | t = 2.204** | |||
Apprenticeship | 15.233 | 9.175 | 5.074 | 5.827 | ||
t = 3.654*** | t = 5.344*** | t = 4.688*** | t = 4.695*** | |||
Matura | 22.274 | 8.484 | 8.664 | 4.100 | ||
t = 3.710*** | t = 3.849*** | t = 3.737*** | t = 2.682*** | |||
Max. compulsory schooling | 24.427 | 10.366 | 7.861 | 9.051 | ||
t = 4.212*** | t = 5.533*** | t = 5.720*** | t = 5.641*** | |||
Professional position | Worker | 0.311 | 0.725 | 0.457 | 0.415 | |
(Ref = Clerk) | t = -2.365** | t = -1.108 | t = -2.700*** | t = -2.950*** | ||
Civil servant | 1.271 | 1.298 | 1.630 | 0.995 | ||
t = 0.683 | t = 0.791 | t = 1.299 | t = -0.013 | |||
Pensioner | 0.749 | 0.633 | 1.464 | 1.103 | ||
t = -0.696 | t = -1.180 | t = 0.864 | t = 0.274 | |||
Unemployed (inactive) | 1.081 | 0.557 | 0.340 | 0.607 | ||
t = 0.203 | t = -1.633 | t = -2.959*** | t = -1.528 | |||
Self-employed | 0.988 | 0.792 | 0.787 | 0.578 | ||
t = -0.040 | t = -0.880 | t = -1.014 | t = -2.084** | |||
Contract agents | 0.538 | 0.528 | 0.748 | 0.457 | ||
t = -1.664* | t = -1.995** | t = -0.969 | t = -2.421** | |||
Austrian Citizenship | No | 0.964 | 1.152 | 0.974 | 0.798 | |
(Ref = Yes) | t = -0.098 | t = 0.380 | t = -0.075 | t = -0.586 | ||
Origin | EU15 with Austria | 0.506 | 0.322 | 0.456 | 0.363 | |
(Ref = non-EU15) | t = -1.532 | t = -2.712*** | t = -1.955* | t = -2.525** | ||
Income | Quintil (5=highest) | 1.185 | 1.089 | 0.987 | 0.952 | |
t = 2.220** | t = 1.383 | t = -0.224 | t = -0.774 | |||
McFadden Pseudo-R² | 0.133 | 0.132 | 0.130 | 0.131 | ||
Observations | 996 | 964 | 973 | 937 | ||
Log Likelihood | -388.884 | -478.108 | -497.291 | -470.522 | ||
Akaike Inf. Crit. | 815.769 | 994.217 | 1,032.582 | 979.045 | ||
Note: | *p<0.1; **p<0.05; ***p<0.01 |