3.3. Poisson regression on the item nonresponse by incentive group (Table 5)


Table 5 shows the relationship between item nonresponse and social inequality categories via a Poisson regression model. It includes all the previously used independent variables (see Table 4).

Poisson model definition

$$\lambda_i=exp(\beta_0+\beta_1age+\beta_2partner+\beta_3hhsize+\beta_4edu+\beta_5job+\beta_6citizen+\beta_7origin+\beta_8income)$$.

# Specifying Poisson Model
poisson_models <- lapply(as.list(levels(WaveOne$Pumavers)), function(x){
  glm(mistot ~ 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.net==1,],
      subset = mistot<16,
      family = poisson())})

McFadden Pseudo R² for Poisson regression

The following formula was applied:

$$R^2_{McFadden}=1-\frac{\ln L_1}{\ln L_0}$$.

Rsquared <- formatC(round(c(
  ZDF = 1 - poisson_models[[1]]$deviance/poisson_models[[1]]$null.deviance,
  Two = 1 - poisson_models[[2]]$deviance/poisson_models[[2]]$null.deviance,
  Five = 1 - poisson_models[[3]]$deviance/poisson_models[[3]]$null.deviance,
  Ten = 1 - poisson_models[[4]]$deviance/poisson_models[[4]]$null.deviance),
  3), format="f", digits=3)

Print Table 5

library(stargazer)
tab.html <- stargazer(poisson_models[[1]],
          poisson_models[[2]],
          poisson_models[[3]],
          poisson_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
PoissonPoissonPoissonPoisson
Constant2.2892.2892.2892.289
t = 6.319***t = 6.319***t = 6.319***t = 6.319***
Age65 years und older1.0721.0721.0721.072
(Ref = 25 to 64 years)t = 0.634t = 0.634t = 0.634t = 0.634
Up to 24 years1.2001.2001.2001.200
t = 2.010**t = 2.010**t = 2.010**t = 2.010**
In partnershipYes0.9420.9420.9420.942
(Ref = No)t = -1.221t = -1.221t = -1.221t = -1.221
Household sizeHousehold (1-4 Persons)1.1591.1591.1591.159
(Ref = Household (5+))t = 3.110***t = 3.110***t = 3.110***t = 3.110***
EducationHigher degree after Matura1.2351.2351.2351.235
(Ref = University degree)t = 1.777*t = 1.777*t = 1.777*t = 1.777*
Vocational or commercial school0.9590.9590.9590.959
t = -0.319t = -0.319t = -0.319t = -0.319
Apprenticeship1.0251.0251.0251.025
t = 0.207t = 0.207t = 0.207t = 0.207
Matura1.2991.2991.2991.299
t = 1.804*t = 1.804*t = 1.804*t = 1.804*
Max. compulsory schooling1.0931.0931.0931.093
t = 0.732t = 0.732t = 0.732t = 0.732
Professional positionWorker0.8680.8680.8680.868
(Ref = Clerk)t = -1.559t = -1.559t = -1.559t = -1.559
Civil servant0.8280.8280.8280.828
t = -2.145**t = -2.145**t = -2.145**t = -2.145**
Pensioner0.9190.9190.9190.919
t = -0.889t = -0.889t = -0.889t = -0.889
Unemployed (inactive)1.0181.0181.0181.018
t = 0.175t = 0.175t = 0.175t = 0.175
Self-employed1.0821.0821.0821.082
t = 1.205t = 1.205t = 1.205t = 1.205
Contract agents1.1261.1261.1261.126
t = 1.484t = 1.484t = 1.484t = 1.484
Austrian CitizenshipNo1.0301.0301.0301.030
(Ref = Yes) t = 0.325t = 0.325t = 0.325t = 0.325
OriginEU15 with Austria1.0961.0961.0961.096
(Ref = non-EU15)t = 0.856t = 0.856t = 0.856t = 0.856
IncomeQuintil (5=highest)0.9790.9790.9790.979
t = -1.320t = -1.320t = -1.320t = -1.320
McFadden Pseudo-R²0.0210.0210.0210.021
Observations943943943943
Log Likelihood-2,391.217-2,391.217-2,391.217-2,391.217
Akaike Inf. Crit.4,820.4344,820.4344,820.4344,820.434
Note:*p<0.1; **p<0.05; ***p<0.01
Previous