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 tokenVoucher
logisticlogisticlogisticlogistic
Constant0.0130.0800.1270.164
t = -5.503***t = -5.606***t = -5.339***t = -4.261***
Age65 years und older0.6410.9820.9840.469
(Ref = 25 to 64 years)t = -1.100t = -0.051t = -0.044t = -2.025**
Up to 24 years1.0180.8250.9751.620
t = 0.046t = -0.508t = -0.080t = 1.344
In partnershipYes1.3961.2371.5731.524
(Ref = No)t = 1.607t = 1.161t = 2.508**t = 2.268**
Household sizeHousehold (1-4 Persons)0.8180.8091.1251.014
(Ref = Household (5+))t = -0.988t = -1.153t = 0.664t = 0.076
EducationHigher degree after Matura5.9562.9742.3452.330
(Ref = University degree)t = 2.408**t = 2.766***t = 2.596***t = 2.399**
Vocational or commercial school10.0092.2624.6032.479
t = 3.036***t = 1.775*t = 4.228***t = 2.204**
Apprenticeship15.2339.1755.0745.827
t = 3.654***t = 5.344***t = 4.688***t = 4.695***
Matura22.2748.4848.6644.100
t = 3.710***t = 3.849***t = 3.737***t = 2.682***
Max. compulsory schooling24.42710.3667.8619.051
t = 4.212***t = 5.533***t = 5.720***t = 5.641***
Professional positionWorker0.3110.7250.4570.415
(Ref = Clerk)t = -2.365**t = -1.108t = -2.700***t = -2.950***
Civil servant1.2711.2981.6300.995
t = 0.683t = 0.791t = 1.299t = -0.013
Pensioner0.7490.6331.4641.103
t = -0.696t = -1.180t = 0.864t = 0.274
Unemployed (inactive)1.0810.5570.3400.607
t = 0.203t = -1.633t = -2.959***t = -1.528
Self-employed0.9880.7920.7870.578
t = -0.040t = -0.880t = -1.014t = -2.084**
Contract agents0.5380.5280.7480.457
t = -1.664*t = -1.995**t = -0.969t = -2.421**
Austrian CitizenshipNo0.9641.1520.9740.798
(Ref = Yes) t = -0.098t = 0.380t = -0.075t = -0.586
OriginEU15 with Austria0.5060.3220.4560.363
(Ref = non-EU15)t = -1.532t = -2.712***t = -1.955*t = -2.525**
IncomeQuintil (5=highest)1.1851.0890.9870.952
t = 2.220**t = 1.383t = -0.224t = -0.774
McFadden Pseudo-R²0.1330.1320.1300.131
Observations996964973937
Log Likelihood-388.884-478.108-497.291-470.522
Akaike Inf. Crit.815.769994.2171,032.582979.045
Note:*p<0.1; **p<0.05; ***p<0.01
Previous
Next