Replikationsmaterial und Ergänzungen¶
Vorbereitung¶
Benötigte Pakete¶
Im ersten Schritt aktivieren wir die später benötigten Pakete mclogit
, splines
,
und magrittr
für die R-Sitzung.
library(memisc)
library(mclogit)
library(splines)
library(magrittr)
Daten der GLES¶
Nach der Aktivitierung der benötigten Pakete leeren wir den Speicher (falls von einer früheren Sitzung noch Daten übrig sind) und laden die bereits in einem früheren Schritt aufbereiteten GLES-Daten. Sie liegen in einem Lang-Format vor, in dem jeder Zeile des Datensatzes einer Kombination von Alternative (Partei) und befragter Person entspricht.
rm(list=ls())
load("gles2013workLong.RData")
Im GLES-Datensatz erzeugen wir eine Reihe von neuen Variablen:
-
JedePartei
ist eine Dummy-Variable die für jede Alternative anders als “Keine Parteiidentifikation” den Wert \(1\) annimmt. -
Katholisch
ist eine Dummy-Variable für Befragte mit katholischer Konfession.
gles2013workLong %<>% within({
JedePartei <- CDU.CSU+SPD+FDP+Grüne+Linke+Andere
Katholisch <- as.integer(religzugh=="Katholisch")
})
Analysen für Westdeutschland¶
Teildatensatz für Westdeutschland¶
Anzahl der Fälle mit valider Parteiidentifikation aus den einzelnen Bundesländern:
xtabs(parneidum~bula12,
data=within(subset(gles2013workLong,
bula12 %in% c(
"Baden-Wuerttemberg",
"Bayern",
"Bremen",
"Hamburg",
"Hessen",
"Niedersachsen",
"Nordrhein-Westfalen",
"Rheinland-Pfalz",
"Saarland",
"Schleswig-Holstein"
)),
bula12 <- factor(bula12)))
bula12
Baden-Wuerttemberg Bayern Bremen Hamburg
217 343 19 34
Hessen Niedersachsen Nordrhein-Westfalen Rheinland-Pfalz
139 217 420 96
Saarland Schleswig-Holstein
23 60
Da wir unsere Analysen auf Westdeutschland einschränken, erzeugen wir einen entsprechenden Teildatensatz.
gles2013workLongWest <- subset(gles2013workLong,
ostwest=="West"
& Class7a!="Landwirtsch. Beruf"
& alter <= 65
& bula12 %nin% c("Bremen","Hamburg","Saarland")
& bula_geb %in% c(
"Baden-Wuerttemberg",
"Bayern",
#"Bremen",
#"Hamburg",
"Hessen",
"Niedersachsen",
"Nordrhein-Westfalen",
"Rheinland-Pfalz",
#"Saarland",
"Schleswig-Holstein"
)
)
Wir stellen sicher, dass die (kategorialen) Faktoren keine “leeren” Faktorstufen
haben, in dem wir auf die bereits definierten Faktorvariablen bula_geb
,
bula12
, und Class7a
nochmals die Funktion factor()
anwenden.
gles2013workLongWest %<>% within({
bula_geb <- factor(bula_geb)
bula12 <- factor(bula12)
Class7a <- factor(Class7a)
})
Konstruktion des Basismodells¶
Im Folgenden analysieren wir die Parteineigung als Abhängige Variable. Sie ist eine Dummy-Variable, die den Wert 1 annimmt, wenn der/die Befragte der jeweiligen Partei zugeneigt ist bzw. sich mit ihr identifiziert, und 0, wenn der Befragte dies nicht tut. Für jede(n) Befragten ist die Dummy-Variable jeweils nur einmal gleich 1. Das geeignete Modell ist daher das conditional logit Modell. Formal ausgedrückt modellieren wir hierbei die Wahrscheinlichkeit \(\pi_{ij}=\Pr(y_{ij}=1)\), die gegeben ist durch
Der Index \(i\) steht hier für das befragte Indiviidum – im Datensatz
identifiziert durch die Variable id
, während der Index \(j\) für die Alternative
(eine Partei oder “keine Partei” für das Fehlen einer Parteineigung) steht –
die Alternative ist im Datensatz durch die Variable partei
repräsentiert. Die
formal mit \(y_{ij}\) bezeichnete abhängige Variable heißt im Datensatz
parneidum
. Die Werte der \(h\)-ten unabhängigen Variablen für Befragte \(i\) und
Alternative \(j\) sind in Gleichung (1) als \(x_{hij}\) ausgedrückt.
Als erstes schätzen wir ein Nullmodell, dass keine substantiellen unabhängigen Variablen enthält, sondern nur Dummy-Variablen für alle Alternativen außer “keine Partei”. Dieses Nullmodell ist mithin äquivalent mit einem multinomialen Logit-Modell ohne unabhängige Variablen. Es ist nichts mehr als der Ausgangspunkt von Likelihood-Ratio-Tests für weitere Effekte, daher werden hier auch nicht die Schätzergebnisse angezeigt.
modWest0 <- mclogit(
cbind(parneidum,id)~partei,
data=gles2013workLongWest,
trace=FALSE,
subset=Class7a!="Landwirtsch. Beruf"&
is.finite(parneivadum)&
is.finite(parneimudum)&
is.finite(Class7a)&
is.finite(kirchg)&
is.finite(Katholisch)&
is.finite(gewerkschaft)&
is.finite(bula_geb)
)
Als nächstes erweitern wir das Modell um Dummies für die Parteineigung
der Eltern. Die Dummies sind 1 wenn der Vater bzw. die Mutter eine Parteineigung
zugunsten der jeweiligen Partei hat(te) und 0 andernfalls. Die Parteineigung des
Vaters ist in der Variable parneivadum
und die Parteineigung der Mutter in der
Variable parneimudum
enthalten.
modWest1eltern <- update(modWest0,.~.+parneivadum+parneimudum)
modWest2eltern <- update(modWest1eltern,.~.+parneivadum:parneimudum)
modWest3eltern <- update(modWest2eltern,.~.+partei:parneivadum+partei:parneimudum)
Mit einem Likelihood-Ratio-Test (LR-Test) überprüfen wir die Nullhypothese bezüglich des Einflusses der Parteineigung der Eltern.
(testEltern <- anova(modWest0,
modWest1eltern,
modWest2eltern,
modWest3eltern,
test="Chisq"))
Analysis of Deviance Table
Model 1: cbind(parneidum, id) ~ partei
Model 2: cbind(parneidum, id) ~ partei + parneivadum + parneimudum
Model 3: cbind(parneidum, id) ~ partei + parneivadum + parneimudum + parneivadum:parneimudum
Model 4: cbind(parneidum, id) ~ partei + parneivadum + parneimudum + parneivadum:parneimudum +
partei:parneivadum + partei:parneimudum
Resid. Df Resid. Dev Df Deviance Pr(>Chi)
1 5174 2385.6
2 5172 2145.2 2 240.440 < 2e-16 ***
3 5171 2145.1 1 0.104 0.74689
4 5160 2126.4 11 18.683 0.06703 .
---
codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
format_html(testEltern,digits=c(0,1,0,2,3)) %>%
gsub(pattern="NA",replacement="",fixed=TRUE) %>%
cat(file="testEltern-redux.html")
Der LR-Test liefert ein sehr kleinen p-Wert. Der Einfluss der Parteineigung der Eltern ist statistisch signifikant.
Wir erweitern das Modell nun um den Einfluss der Konfession und der Schichtung (bzw. Klasse) auf die Identifikation mit den Unionsparteien, der SPD und den Grünen und führen einen LR-Test der Nullhypothese bezüglich des Einflusses der Sozialstruktur durch
modWest2structure <- update(modWest1eltern,
.~.+ partei:(Class7a
+kirchg
+Katholisch
+gewerkschaft))
(testSozialStruktur <- anova(modWest1eltern,
modWest2structure,
test="Chisq"))
Analysis of Deviance Table
Model 1: cbind(parneidum, id) ~ partei + parneivadum + parneimudum
Model 2: cbind(parneidum, id) ~ partei + parneivadum + parneimudum + partei:Class7a +
partei:kirchg + partei:Katholisch + partei:gewerkschaft
Resid. Df Resid. Dev Df Deviance Pr(>Chi)
1 5172 2145.2
2 5106 1992.2 66 152.97 7.35e-09 ***
---
codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Das Ergebnis des LR-Tests deutet wieder darauf hin, dass der Einfluss der Sozialstruktur auf die Parteineigung in der Stichprobe statistisch signifikant ist.
Eine ganze Reihe von Hypothesen lässt sich formulieren in Bezug auf den Zusammenhang zwischen Alter und Parteineigung:
- Individuelle Stabilisierung: Mit zunehmendem Alter verfestigen sich politische Meinungen und Orientierungen, einschließlich von Parteineigung und Parteiidentifikation, entsprechend nimmt die Parteineigung mit dem Alter zu. (Kent Jennings; Sears & Valentino)
- Sekulares Dealignment und Realignment durch Wertewandel: Die Verbreitung neuer, postmaterialistischer (Inglehart) oder nonkonformistischer Wertorientierungen (Klages) erodiert die Zustimmung insbesondere zu den traditionellen “Volksparteien”.
- Sekulares Dealignment durch kognitive Mobilisierung: Zugang zu Bildung und durch Massenmedien führen dazu, dass Parteiidentifikation weniger wichtig wird, um sich in der Politik orientieren zu können (Dalton). Daher entwickeln später geborene Generationen (die mit mehr Bildung und Medieninformation aufgewachsen sind) seltener eine feste Parteineigung oder Parteiidentifikation. Der Einfluss des Alters sollte dann aber stark durch die Bildung vermittelt worden sein.
In einem Querschnitt lassen sich Alters- und Generationseffekte natürlich nicht trennen: Befragte mit unterschiedlichem Alter sind zu unterschiedlichen Jahren geboren und haben (potentiell) unterschiedliche generationsspezifische Erfahrungen gemacht. Wir können hier also nicht viel mehr, als den Effekt des Alters zu untersuchen.
Im folgenden konstruieren wir zwei Modelle des Einflusses des Alters auf die Parteineigung: Ein Modell, das nur einen linearen (d.h. vor allem: monotononen) Effekt des Alters zulässt, und ein Modell das auch kurvilineare Effekte zulässt, in dem es ein orthogonales Polynom fünften Grades des Alters enthält. Anschließend führen wir zwei LR-Tests durch, zunächst eines linearen Effekts des Alters gegen kein Alter als Nullhypothese, dann einen kurvilinearen Effekt des Alters gegen einen nur linearen Effekt als Nullhypothese.
modWest3alter1 <- update(modWest2structure,
.~.+partei:alter)
modWest3alter2 <- update(modWest2structure,
.~.+partei:poly(alter,degree=5))
(testAlter <- anova(modWest2structure,
modWest3alter1,
modWest3alter2,
test="Chisq"))
Analysis of Deviance Table
Model 1: cbind(parneidum, id) ~ partei + parneivadum + parneimudum + partei:Class7a +
partei:kirchg + partei:Katholisch + partei:gewerkschaft
Model 2: cbind(parneidum, id) ~ partei + parneivadum + parneimudum + partei:Class7a +
partei:kirchg + partei:Katholisch + partei:gewerkschaft +
partei:alter
Model 3: cbind(parneidum, id) ~ partei + parneivadum + parneimudum + partei:Class7a +
partei:kirchg + partei:Katholisch + partei:gewerkschaft +
partei:poly(alter, degree = 5)
Resid. Df Resid. Dev Df Deviance Pr(>Chi)
1 5106 1992.2
2 5100 1960.2 6 31.999 1.632e-05 ***
3 5076 1928.1 24 32.051 0.1257
---
codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
format_html(testAlter,digits=c(0,1,0,2,3)) %>%
gsub(pattern="NA",replacement="",fixed=TRUE) %>%
cat(file="testAlter-redux.html")
Das Ergebnis des LR-Tests ist eindeutig: Es gibt statistisch signifikante Anhaltspunkte für die Existenz eines linearen Effektes des Alters auf die Parteineigung (wie genau der sich auch auf die einzelnen Parteien auswirken mag). Dagegen gibt es keine Anhaltspunkte für einen kurvilinearen (und damit möglicherweise nicht-monotonen) Effekt des Alters.
Wenn der Alterseffekt vor allem ein Effekt kognitiver Mobilisierung ist, dann sollte er schwächer ausfallen, wenn man zuvor für die Schulbildung kontrolliert. Das wird durch die folgenden Modelle untersucht. Das erste Modell enthält (zusätzlich zu sozialstrukturellen Faktoren) die Schulbildung. Das zweite Modell enthält zusätzlich zur Schulbildung noch einen linearen Alterseffekt. Wenn das Ergebniss des LR-Tests nicht statistisch signifikant ausfällt (oder bedeutend schwächer), dann ist ein deutlicher Teil des Effekts des Alters durch die Schulbildung vermittelt, was zugunsten des Effekts der kognitiven Mobilisierung sprechen würde.
modWest3structure <- update(modWest2structure,
subset=is.finite(schulabschluss))
modWest3bildung <- update(modWest3structure,
.~.+partei:schulabschluss,
subset=is.finite(alter))
modWest4alter <- update(modWest3bildung,
.~.+partei:alter)
(testBildungAlter <- anova(modWest3structure,
modWest3bildung,
modWest4alter,
test="Chisq"))
Analysis of Deviance Table
Model 1: cbind(parneidum, id) ~ partei + parneivadum + parneimudum + partei:Class7a +
partei:kirchg + partei:Katholisch + partei:gewerkschaft
Model 2: cbind(parneidum, id) ~ partei + parneivadum + parneimudum + partei:Class7a +
partei:kirchg + partei:Katholisch + partei:gewerkschaft +
partei:schulabschluss
Model 3: cbind(parneidum, id) ~ partei + parneivadum + parneimudum + partei:Class7a +
partei:kirchg + partei:Katholisch + partei:gewerkschaft +
partei:schulabschluss + partei:alter
Resid. Df Resid. Dev Df Deviance Pr(>Chi)
1 5022 1957.8
2 5010 1912.5 12 45.292 9.183e-06 ***
3 5004 1890.2 6 22.222 0.001104 **
---
codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
format_html(testBildungAlter,digits=c(0,1,0,2,3)) %>%
gsub(pattern="NA",replacement="",fixed=TRUE) %>%
cat(file="testBildungAlter-redux.html")
Das Ergebnis des LR-Tests zeigt, dass die Schulbildung einen Einfluss auf die Parteineigung hat und dass ein Einfluss des Alters auch dann nachweisbar ist, wenn zuvor für den Einfluss der Schulbildung kontrolliert worden ist. Das Alter hat also einen Einfluss auf die Parteineigung, der nicht vollständig von der Schulbildung vermittelt ist. Der Effekt des Alters ist also nicht (oder nicht vollständig) auf eine kognitive Mobilisierung der später geborenen Generationen zurückzuführen.
Wir erkunden nun ob es Effekte des Bundeslands und des Bundeslands der Geburt der Befragten gibt. Hierzu bauen wir auf dem Modell, dass neben der elterlichen Parteineigung und sozialstrukturellen Variablen auch Alter und Schulbildung als unabhängige Variablen enthält. Zuerst bauen wir Dummyvariablen ein für die (westdeutschen) Bundesländer, in denen die Befragten aktuell wohnhaft sind, und danach für die Bundesländer in denen sie geboren sind. Erneut führen wir LR-Tests der Nullhypothesen des Einflusses des Bundeslands (aktuell und bei Geburt) durch.
modWest4alter_ <- update(modWest4alter,subset=is.finite(bula_geb))
modWest5bula <- update(modWest4alter_,
.~.+partei:bula12)
modWest6bula_geb <- update(modWest5bula,
.~.+partei:bula_geb)
(testBuLa <- anova(modWest4alter_,
modWest5bula,
modWest6bula_geb,
test="Chisq"))
Analysis of Deviance Table
Model 1: cbind(parneidum, id) ~ partei + parneivadum + parneimudum + partei:Class7a +
partei:kirchg + partei:Katholisch + partei:gewerkschaft +
partei:schulabschluss + partei:alter
Model 2: cbind(parneidum, id) ~ partei + parneivadum + parneimudum + partei:Class7a +
partei:kirchg + partei:Katholisch + partei:gewerkschaft +
partei:schulabschluss + partei:alter + partei:bula12
Model 3: cbind(parneidum, id) ~ partei + parneivadum + parneimudum + partei:Class7a +
partei:kirchg + partei:Katholisch + partei:gewerkschaft +
partei:schulabschluss + partei:alter + partei:bula12 + partei:bula_geb
Resid. Df Resid. Dev Df Deviance Pr(>Chi)
1 5004 1890.2
2 4968 1826.3 36 63.979 0.002783 **
3 4932 1790.3 36 35.928 0.472014
---
codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
format_html(testBuLa,digits=c(0,1,0,2,3)) %>%
gsub(pattern="NA",replacement="",fixed=TRUE) %>%
cat(file="testBuLa-redux.html")
Der LR-Test ergibt, dass ein Effekt des aktuell bewohnten Bundeslandes auf die Parteineigung nachweisbar ist, dass für das Bundesland bei Geburt aber nicht, wenn der Einfluss des ersteren Faktors berücksichtigt wird. Allerdings kann es sein, dass dies lediglich bedeutet, dass die beiden Faktoren sich empirisch nicht auseinander halten lassen. In diesem Fall müssten wir ein ähnliches Resultat erhalten, wenn wir die Reihenfolge, in der die beiden Faktoren in die mit dem LR-Test verglichenen Modelel eingeführt werden, umgekehrt wird.
modWest6bula_geb_bula0 <- update(modWest6bula_geb,.~.-partei:bula12)
(testBuLaG <- anova(modWest4alter_,
modWest6bula_geb_bula0,
modWest6bula_geb,
test="Chisq"))
Analysis of Deviance Table
Model 1: cbind(parneidum, id) ~ partei + parneivadum + parneimudum + partei:Class7a +
partei:kirchg + partei:Katholisch + partei:gewerkschaft +
partei:schulabschluss + partei:alter
Model 2: cbind(parneidum, id) ~ partei + parneivadum + parneimudum + partei:Class7a +
partei:kirchg + partei:Katholisch + partei:gewerkschaft +
partei:schulabschluss + partei:alter + partei:bula_geb
Model 3: cbind(parneidum, id) ~ partei + parneivadum + parneimudum + partei:Class7a +
partei:kirchg + partei:Katholisch + partei:gewerkschaft +
partei:schulabschluss + partei:alter + partei:bula12 + partei:bula_geb
Resid. Df Resid. Dev Df Deviance Pr(>Chi)
1 5004 1890.2
2 4968 1825.5 36 64.696 0.002327 **
3 4932 1790.3 36 35.212 0.505892
---
codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
format_html(testBuLaG,digits=c(0,1,0,2,3)) %>%
gsub(pattern="NA",replacement="",fixed=TRUE) %>%
cat(file="testBuLaG-redux.html")
Der LR-Test zeigt, dass der Einfluss des aktuell bewohnten Bundeslands nicht mehr nachweisbar ist, wenn zuvor der Einfluss des Bundeslands der Geburt berücksichtigt wurde. Die Reihenfolge, in der Effekte des von den Befragten aktuell bewohnten Bundeslands und des Bundeslands in den sie geboren sind, in das Modell eingeführt werden darüber entscheidet, welcher von Ihnen zu einer statistisch signifikanten Verbesserung der Modellanpasssung führt. Die Relevanz der beiden Effekte ist daher statistisch kaum zu entscheiden. Allerdings ist die Modellpassung des Modells mit dem Effekt des aktuell bewohnten Bundeslands etwas besser als die des Modells mit dem Effekt des Geburtslandes. Wir ziehen daher letzteres vor.
Graphische Darstellung relevanter Effekte im Basismodell¶
Wir laden zunächst die benötigten Zusatzpakete …
#library(mpred)
devtools::load_all("~/R/devel/mpred/pkg")
library(parallel)
library(ggplot2)
library(ggformula)
und definieren eine Hilfsfunktion für Konfidenzintervalle, die auf den Bereich zwischen Null und Eins beschränkt sind.
cibeta <- function(mean,sd,level){
var <- sd^2
nu <- mean*(1-mean)/var-1
shp1 <- mean*nu
shp2 <- (1-mean)*nu
alpha <- (1-level)/2
p.lower <- alpha
p.upper <- 1-alpha
list(lower=qbeta(p=p.lower,shape1=shp1,shape2=shp2),
upper=qbeta(p=p.upper,shape1=shp1,shape2=shp2))
}
Zusammenhang mit Alter¶
Wir berechnen die predictive margins für das Alter:
pm.alter <- predmarg(modWest5bula,
data=gles2013workLongWest,
alter=seq(from=18,to=65),
cifunc=cibeta,
groups=partei,
parallel=TRUE
)
pm.alter %<>% within(partei%<>%relabel("CDU.CSU"="CDU/CSU"))
(gp.alter <-
gf_ribbon(100*upper+100*lower~alter|partei,data=pm.alter,fill="gray80",alpha=1) %>%
gf_line(100*pred~alter) %>%
gf_facet_wrap(~partei,nrow=2) %>%
gf_labs(x="Alter",y="Wahrscheinlichkeit Parteiidentifikation Befragte(r)") %>%
gf_theme(theme=theme_bw()))
Einfluss des Elternhauses¶
Wir berechnen die predictive margins für den Einfluss des Elternhauses
pm.eltern <- predmarg(modWest5bula,data=gles2013workLongWest,
parneivadum=0:1,
parneimudum=0:1,
partei1=levels(partei),
setup={
p <- as.integer(partei==partei1)
parneivadum <- parneivadum*p
parneimudum <- parneimudum*p
},
cifunc=cibeta,
groups=partei)
pm.eltern %<>% subset(partei==partei1)
Wir fassen die Dummies für Vater und Mutter in einen Faktor zusammen:
pm.eltern %<>% within({
parneieltern <- cases(
"Keine" <- parneivadum==0 & parneimudum == 0,
"Vater" <- parneivadum==1 & parneimudum == 0,
"Mutter" <- parneivadum==0 & parneimudum == 1,
"Beide" <- parneivadum==1 & parneimudum == 1
)
parneieltern <- factor(parneieltern,
levels=unique(parneieltern))
partei%<>%relabel("CDU.CSU"="CDU/CSU")
})
(gp.eltern <- gf_col(100*pred~parneieltern|partei,
data=pm.eltern,
fill="gray70") %>%
gf_facet_wrap(~partei,nrow=2) %>%
gf_errorbar(100*upper+100*lower~parneieltern,
width=.2) %>%
gf_labs(x="Parteiidentifikation Eltern",
y="Wahrscheinlichkeit Parteiidentifikation Befragte(r)") %>%
gf_theme(theme=theme_bw()))
Einfluss des Bundeslandes¶
pm.bula <- predmarg(modWest5bula,
data=gles2013workLongWest,
bula12=levels(bula12),
cifunc=cibeta,
parallel=FALSE,
groups=partei)
pm.bula %<>% within({
bula.kurz <- relabel(bula12,
"Baden-Wuerttemberg"="BW",
"Bayern"="BY",
"Bremen"="HB",
"Hamburg"="HH",
"Hessen"="HE",
"Niedersachsen"="NI",
"Nordrhein-Westfalen"="NW",
"Rheinland-Pfalz"="RP",
"Saarland"="SL",
"Schleswig-Holstein"="SH")
bula.kurz <- factor(bula.kurz)
partei%<>%relabel("CDU.CSU"="CDU/CSU")
})
(gp.bula <- gf_col(100*pred~bula.kurz|partei,
data=pm.bula,
fill="gray70") %>%
gf_facet_wrap(~partei,nrow=2) %>%
gf_errorbar(100*upper+100*lower~bula.kurz,
width=.2) %>%
gf_labs(x="",y="Wahrscheinlichkeit Parteiidentifikation Befragte(r)") %>%
gf_theme(theme=theme_bw()) +
theme(axis.text.x=element_text(angle=90,vjust=0.5,hjust=1)))
gles2013workLongWest.redux <- subset(gles2013workLongWest,
bula12 %nin% c("Bremen","Saarland")
& bula12 == bula_geb
)
modWest5bula.redux <- update(modWest5bula,
data=gles2013workLongWest.redux)
(test.modWest5bula.redux <- anova(
update(modWest5bula.redux,.~.-partei:bula12),
modWest5bula.redux,
test="Chisq"
))
Model 1: cbind(parneidum, id) ~ partei + parneivadum + parneimudum + partei:Class7a +
partei:kirchg + partei:Katholisch + partei:gewerkschaft +
partei:schulabschluss + partei:alter
Model 2: cbind(parneidum, id) ~ partei + parneivadum + parneimudum + partei:Class7a +
partei:kirchg + partei:Katholisch + partei:gewerkschaft +
partei:schulabschluss + partei:alter + partei:bula12
Resid. Df Resid. Dev Df Deviance Pr(>Chi)
1 4297 1609.5
2 4261 1546.3 36 63.116 0.003445 **
---
codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Erkundung des Effektes der Regierungsbeteiligung auf Bundesebene¶
Effekt der Regierungsbeteiligung bei unterschiedlichem Alter¶
Im folgenden untersuchen wir ob die Beteiligung einer Partei an der
Bundesregierung einen Einfluss auf die Parteineigung hat. Ausgangspunkt ist das
im vorherigen Abschnitt konstruierte Basismodell, welches die Parteineigung der
Eltern, sozialstrukturelle Variablen, Bildung Alter und das aktuell bewohnte
Bundesland als unabhängige Variablen enthält. Wir erweitern das Modell um die
Effekte der Regierungsbeteiligung einer Partei während unterschiedlicher
Altersbereiche: während der ersten 10 Jahre, von 11 bis 16 Jahren, von 17 bis 25
Jahren und älter als 25 Jahre. Die Variable regbet_bund_age
ist eine Matrix
die jeweils eine Spalte für jedes Lebensalter eines oder einer Befragten enthält
und je eine Zeile für jede Kombination von Alternative und Befragter
bzw. Befragtem. Das so erweiterte Modell ist so konstuiert, dass der Einfluss
der Regierungsbeteiligung auf Bundesebene auf die Parteineigung für
unterschiedliche Parteien verschieden stark ausfallen kann. Dies wird dadurch
erreicht, dass wir Interaktionsterme der Faktorvariable partei
mit der
Variable regbet_bund_age
konstruieren. Um die Nullhypothese bezüglich dieser
Effekte zu testen verwenden wir wieder einen LR-Test.
Im folgenden testen wir die Nullhypothese bezüglich der ersten 10 Jahre, der Altersspanne von 11 bis 16 Jahren, von 17 bis 25 Jahren, älter als 25 Jahre jeweils einzeln, und dann hinsichtlich aller vier Altersspannen
gles2013workLongWest %<>% within({
regbet_bund_age1 <- rowMeans(regbet_bund_age[,1:10])
regbet_bund_age2 <- rowMeans(regbet_bund_age[,11:16])
regbet_bund_age3 <- rowMeans(regbet_bund_age[,17:25])
regbet_bund_age4 <- rowMeans(regbet_bund_age[,26:65])
})
modWest_regbet_bund_age4.1 <- update(modWest5bula,
.~.+partei:regbet_bund_age1
)
modWest_regbet_bund_age4.2 <- update(modWest5bula,
.~.+partei:regbet_bund_age2
)
modWest_regbet_bund_age4.3 <- update(modWest5bula,
.~.+partei:regbet_bund_age3
)
modWest_regbet_bund_age4.4 <- update(modWest5bula,
.~.+partei:regbet_bund_age4
)
test_regbet_bund_age4.1 <- anova(modWest5bula,
modWest_regbet_bund_age4.1,
test="Chisq")
test_regbet_bund_age4.2 <- anova(modWest5bula,
modWest_regbet_bund_age4.2,
test="Chisq")
test_regbet_bund_age4.3 <- anova(modWest5bula,
modWest_regbet_bund_age4.3,
test="Chisq")
test_regbet_bund_age4.4 <- anova(modWest5bula,
modWest_regbet_bund_age4.4,
test="Chisq")
(test_regbet_bund_age4 <- rbind(
" 1-10"=test_regbet_bund_age4.1[2,],
"11-16"=test_regbet_bund_age4.2[2,],
"17-25"=test_regbet_bund_age4.3[2,],
"26-65"=test_regbet_bund_age4.4[2,]
))
Analysis of Deviance Table
Model 1: cbind(parneidum, id) ~ partei + parneivadum + parneimudum + partei:Class7a +
partei:kirchg + partei:Katholisch + partei:gewerkschaft +
partei:schulabschluss + partei:alter + partei:bula12
Model 2: cbind(parneidum, id) ~ partei + parneivadum + parneimudum + partei:Class7a +
partei:kirchg + partei:Katholisch + partei:gewerkschaft +
partei:schulabschluss + partei:alter + partei:bula12 + partei:regbet_bund_age1
Resid. Df Resid. Dev Df Deviance Pr(>Chi)
1-10 4963 1815.3 5 10.9279 0.05283 .
11-16 4963 1818.9 5 7.3778 0.19403
17-25 4963 1822.2 5 4.1108 0.53357
26-65 4963 1811.2 5 15.0798 0.01003 *
---
codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Die LR-Tests für die einzelnen Altersspannen legen nahe, dass es einen Sozialisationseffekt der Regierungstätigkeit auf Bundesebene gibt, wenn die Befragten unter 10 Jahre und/oder älter als 25 Jahre alt sind. Der p-Wert für die Altersspannen von unter 17 Jahren liegt aber sehr nahe am konventionellen 5%-Niveau.
Um zu überprüfen, ob insbesondere die Effekte der Altersspanne von unter 17 Jahren statistisch signifikant ist, führen wir einen weiteren LR-Test durch, in dem das Modell mit dem Sozialisationseffekt in der Altersspanne über 25 Jahre um die früheste Altersspanne erweitert wird.
modWest_regbet_bund_age4.41 <-
update(modWest_regbet_bund_age4.4,
.~.+partei:regbet_bund_age1
)
(test_regbet_bund_age4.41 <- anova(modWest_regbet_bund_age4.4,
modWest_regbet_bund_age4.41,
test="Chisq"))
Analysis of Deviance Table
Model 1: cbind(parneidum, id) ~ partei + parneivadum + parneimudum + partei:Class7a +
partei:kirchg + partei:Katholisch + partei:gewerkschaft +
partei:schulabschluss + partei:alter + partei:bula12 + partei:regbet_bund_age4
Model 2: cbind(parneidum, id) ~ partei + parneivadum + parneimudum + partei:Class7a +
partei:kirchg + partei:Katholisch + partei:gewerkschaft +
partei:schulabschluss + partei:alter + partei:bula12 + partei:regbet_bund_age4 +
partei:regbet_bund_age1
Resid. Df Resid. Dev Df Deviance Pr(>Chi)
1 4963 1811.2
2 4958 1803.6 5 7.6209 0.1784
modWest_regbet_bund_age4.42 <-
update(modWest_regbet_bund_age4.4,
.~.+partei:regbet_bund_age2
)
(test_regbet_bund_age4.42 <- anova(modWest_regbet_bund_age4.4,
modWest_regbet_bund_age4.42,
test="Chisq"))
Analysis of Deviance Table
Model 1: cbind(parneidum, id) ~ partei + parneivadum + parneimudum + partei:Class7a +
partei:kirchg + partei:Katholisch + partei:gewerkschaft +
partei:schulabschluss + partei:alter + partei:bula12 + partei:regbet_bund_age4
Model 2: cbind(parneidum, id) ~ partei + parneivadum + parneimudum + partei:Class7a +
partei:kirchg + partei:Katholisch + partei:gewerkschaft +
partei:schulabschluss + partei:alter + partei:bula12 + partei:regbet_bund_age4 +
partei:regbet_bund_age2
Resid. Df Resid. Dev Df Deviance Pr(>Chi)
1 4963 1811.2
2 4958 1809.8 5 1.4426 0.9196
Wenn für einen Sozialisationseffekt während der Altersspanne größer als 25 Jahre kontrolliert wird, ist der Effekt während der frühensten Altersspanne nicht mehr statistisch signifikant. Der Befund eines Sozialisationseffektes während der ersten 10 Jahre ist also nicht robust.
Ob sich der Einfluss der nach dem 25 Lebensjahr erfahrenen Regierungsbeteiligung auf Bundesebene sich überhaupt im Sinne einer positiven Beeinflussung der Parteiidentifikation interpretieren lässt, überprüfen wir durch Berechnung und Darstellung der predictive margins.
pm.regbet4 <- predmarg(modWest_regbet_bund_age4.4,
Partei=levels(partei),
Regbet=seq(from=0,to=1,length=21),
setup={
Regbet <- unique(Regbet)
regbet_bund_age4[partei==Partei] <- Regbet
regbet_bund_age4[partei!=Partei] <- 0
},
cifunc=cibeta,
parallel=FALSE,
groups=partei)
pm.regbet4 %<>% subset(
partei==Partei &
partei%in%c("CDU.CSU","SPD","FDP","Grüne"))
pm.regbet4 %<>% within({
lower <- ifelse(is.finite(lower),lower,0)
upper <- ifelse(is.finite(upper),upper,1)
partei %<>% relabel(CDU.CSU="CDU/CSU")
})
(gp.regbet4 <-
gf_ribbon(100*upper+100*lower~Regbet|partei,data=pm.regbet4,
fill="gray80",alpha=1) %>%
gf_line(100*pred~Regbet) %>%
gf_facet_wrap(~partei,nrow=1) %>%
gf_labs(x="Zeitanteil Regierungsbeteiligung",
y="Wahrsch. Parteiid. Befr.") %>%
gf_theme(theme=theme_bw()) +
scale_x_continuous(breaks=c(0,2,4,6,8,10)/10))
Noch ein Check: Anteil der Lebensjahre über 25 jeweils nach Auftreten der Grünen und der Linken
Anzahl der Jahre in denen man nach 1983 (dem ersten Mal in dem die Grünen in den Bundestag einzogen und damit ein relevanter Teil des Parteiensystems wuren): 2013-1983+1
Anzahl der Jahre in denen man über 25 Jahre war: Alter - 25
Geburtsjahr: 2013 - Alter
Alter im Jahr 1983: 1983 - Geburtsjahr = 1983 - (2013 - Alter)
War man 1983 über 25? 1983 - (2013 - Alter) > 25 War man 1990 über 25? 1990 - (2013 - Alter) > 25
gles2013workLongWest %<>% within({
over25.1983 <- as.integer(1983 - (2013 - alter) > 25)
over25.1990 <- as.integer(1990 - (2013 - alter) > 25)
})
modWest_regbet_bund_age4.4.ydu <-
update(modWest_regbet_bund_age4.4,
.~.+partei:(over25.1983+over25.1990),
data=gles2013workLongWest)
modWest_regbet_ydu <-
update(modWest_regbet_bund_age4.4.ydu,
.~.-partei:regbet_bund_age4,
data=gles2013workLongWest)
(test_regbet_bund_age4.ydu <- anova(modWest_regbet_ydu,
modWest_regbet_bund_age4.4.ydu,
test="Chisq"))
Analysis of Deviance Table
Model 1: cbind(parneidum, id) ~ partei + parneivadum + parneimudum + partei:Class7a +
partei:kirchg + partei:Katholisch + partei:gewerkschaft +
partei:schulabschluss + partei:alter + partei:bula12 + partei:over25.1983 +
partei:over25.1990
Model 2: cbind(parneidum, id) ~ partei + parneivadum + parneimudum + partei:Class7a +
partei:kirchg + partei:Katholisch + partei:gewerkschaft +
partei:schulabschluss + partei:alter + partei:bula12 + partei:regbet_bund_age4 +
partei:over25.1983 + partei:over25.1990
Resid. Df Resid. Dev Df Deviance Pr(>Chi)
1 4956 1811.6
2 4951 1796.1 5 15.503 0.008415 **
---
codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
pm.regbet4.ydu <- predmarg(modWest_regbet_bund_age4.4.ydu,
Partei=levels(partei),
Regbet=seq(from=0,to=1,length=21),
setup={
Regbet <- unique(Regbet)
regbet_bund_age4[partei==Partei] <- Regbet
regbet_bund_age4[partei!=Partei] <- 0
},
cifunc=cibeta,
parallel=FALSE,
groups=partei)
pm.regbet4.ydu %<>% subset(
partei==Partei &
partei%in%c("CDU.CSU","SPD","FDP","Grüne"))
pm.regbet4.ydu %<>% within({
lower <- ifelse(is.finite(lower),lower,0)
upper <- ifelse(is.finite(upper),upper,1)
partei %<>% relabel(CDU.CSU="CDU/CSU")
})
(gp.regbet4.ydu <-
gf_ribbon(100*upper+100*lower~Regbet|partei,data=pm.regbet4.ydu,fill="gray80",alpha=1) %>%
gf_line(100*pred~Regbet) %>%
gf_facet_wrap(~partei,nrow=1) %>%
gf_labs(x="Zeitanteil Regierungsbeteiligung",
y="Wahrsch. Parteiid. Befr.") %>%
gf_theme(theme=theme_bw()) +
scale_x_continuous(breaks=c(0,2,4,6,8,10)/10))
Erkundung des Effektes der Regierungsbeteiligung auf Landesebene¶
Effekt der Regierungsbeteiligung bei unterschiedlichem Alter¶
Im folgenden untersuchen wir den Einfluss der in unterschiedlichen Lebensphasen erlebten Regierungsbeteiligung der Parteien auf die Indentifikation mit diesen. Ausgangspunkt ist das Modell mit den Einflüssen der im Kindesalter erlebten Regierungsbeteiligung auf Bundesebene, da sich für diese Einflüsse statistische Anhaltspunkte ergeben. Wieder untersuchen wir die Einflüsse der Lebensphasen einzeln und dann zusammen.
gles2013workLongWest.redux <- subset(gles2013workLongWest,
as.character(bula12)==as.character(bula_geb))
gles2013workLongWest.redux %<>% within({
regbet_land_age1 <- rowMeans(regbet_land_age[,1:10])
regbet_land_age2 <- rowMeans(regbet_land_age[,11:16])
regbet_land_age3 <- rowMeans(regbet_land_age[,17:25])
regbet_land_age4 <- rowMeans(regbet_land_age[,26:65])
})
modWest_regbet_land_age4.1 <- update(modWest5bula.redux,
.~.+partei:regbet_land_age1
)
modWest_regbet_land_age4.2 <- update(modWest5bula.redux,
.~.+partei:regbet_land_age2
)
modWest_regbet_land_age4.3 <- update(modWest5bula.redux,
.~.+partei:regbet_land_age3
)
modWest_regbet_land_age4.4 <- update(modWest5bula.redux,
.~.+partei:regbet_land_age4
)
test_regbet_land_age4.1 <- anova(modWest5bula.redux,
modWest_regbet_land_age4.1,
test="Chisq")
test_regbet_land_age4.2 <- anova(modWest5bula.redux,
modWest_regbet_land_age4.2,
test="Chisq")
test_regbet_land_age4.3 <- anova(modWest5bula.redux,
modWest_regbet_land_age4.3,
test="Chisq")
test_regbet_land_age4.4 <- anova(modWest5bula.redux,
modWest_regbet_land_age4.4,
test="Chisq")
(test_regbet_land_age4 <- rbind(
" 1-10"=test_regbet_land_age4.1[2,],
"11-16"=test_regbet_land_age4.2[2,],
"17-25"=test_regbet_land_age4.3[2,],
"26-65"=test_regbet_land_age4.4[2,]
))
Analysis of Deviance Table
Model 1: cbind(parneidum, id) ~ partei + parneivadum + parneimudum + partei:Class7a +
partei:kirchg + partei:Katholisch + partei:gewerkschaft +
partei:schulabschluss + partei:alter + partei:bula12
Model 2: cbind(parneidum, id) ~ partei + parneivadum + parneimudum + partei:Class7a +
partei:kirchg + partei:Katholisch + partei:gewerkschaft +
partei:schulabschluss + partei:alter + partei:bula12 + partei:regbet_land_age1
Resid. Df Resid. Dev Df Deviance Pr(>Chi)
1-10 4256 1541.3 5 5.0216 0.413254
11-16 4256 1544.1 5 2.2223 0.817608
17-25 4256 1531.2 5 15.1202 0.009861 **
26-65 4256 1540.3 5 5.9904 0.307149
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
devtools::load_all("~/R/devel/mpred/pkg")
library(parallel)
library(ggplot2)
library(ggformula)
pm.regbet4l <- predmarg(modWest_regbet_land_age4.3,
Partei=levels(partei),
Regbet=seq(from=0,to=1,length=21),
setup={
Regbet <- unique(Regbet)
regbet_land_age3[partei==Partei] <- Regbet
regbet_land_age3[partei!=Partei] <- 0
},
cifunc=cibeta,
parallel=FALSE,
groups=partei)
pm.regbet4l %<>% subset(
partei==Partei &
partei%in%c("CDU.CSU","SPD","FDP","Grüne"))
pm.regbet4l %<>% within({
lower <- ifelse(is.finite(lower),lower,0)
upper <- ifelse(is.finite(upper),upper,1)
partei %<>% relabel(CDU.CSU="CDU/CSU")
})
(gp.regbet4l <-
gf_ribbon(100*upper+100*lower~Regbet|partei,data=pm.regbet4l,fill="gray80",alpha=1) %>%
gf_line(100*pred~Regbet) %>%
gf_facet_wrap(~partei,nrow=1) %>%
gf_labs(x="Zeitanteil Regierungsbeteiligung",
y="Wahrsch. Parteiid. Befr.") %>%
gf_theme(theme=theme_bw()) +
scale_x_continuous(breaks=c(0,2,4,6,8,10)/10))
modWest_regbet_land_age4.3.ydu <-
update(modWest_regbet_land_age4.3,
.~.+partei:(over25.1983+over25.1990))
modWest_regbet_land_ydu <-
update(modWest_regbet_land_age4.3.ydu,
.~.-partei:regbet_land_age3)
(modWest_regbet_land_age4.3.ydu <- anova(modWest_regbet_land_ydu,
modWest_regbet_land_age4.3.ydu,
test="Chisq"))
Analysis of Deviance Table
Model 1: cbind(parneidum, id) ~ partei + parneivadum + parneimudum + partei:Class7a +
partei:kirchg + partei:Katholisch + partei:gewerkschaft +
partei:schulabschluss + partei:alter + partei:bula12 + partei:over25.1983 +
partei:over25.1990
Model 2: cbind(parneidum, id) ~ partei + parneivadum + parneimudum + partei:Class7a +
partei:kirchg + partei:Katholisch + partei:gewerkschaft +
partei:schulabschluss + partei:alter + partei:bula12 + partei:regbet_land_age3 +
partei:over25.1983 + partei:over25.1990
Resid. Df Resid. Dev Df Deviance Pr(>Chi)
1 4249 1537.3
2 4244 1521.4 5 15.929 0.007049 **
---
codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Effekt der Regierungsbeteiligung mit unterschiedlichem Lag¶
Da die gelaggte Regierungsbeteiligung auf Landesebene variiert, ist es möglich auf deren Effekte zu testen. Ausgangspunkt ist das Modell mit den Effekten der während der Kindheit erlebten Regierungsbeteiligung auf Bundesebene.
modWest_regbet_land_lag3.0 <- update(modWest5bula.redux,.~.
-partei:bula12
)
modWest_regbet_land_lag3.1 <- update(modWest_regbet_land_lag3.0,.~.
+partei:rowMeans(regbet_land_lag[,1:4])
)
modWest_regbet_land_lag3.12 <- update(modWest_regbet_land_lag3.1,.~.
+partei:rowMeans(regbet_land_lag[,5:8])
)
modWest_regbet_land_lag3.123 <- update(modWest_regbet_land_lag3.12,.~.
+partei:rowMeans(regbet_land_lag[,9:16])
)
(test_regbet_land_lag3 <- anova(modWest_regbet_land_lag3.0,
modWest_regbet_land_lag3.1,
modWest_regbet_land_lag3.12,
modWest_regbet_land_lag3.123,
modWest5bula.redux,
modWest_regbet_land_age4.3,
test="Chisq"))
Analysis of Deviance Table
Model 1: cbind(parneidum, id) ~ partei + parneivadum + parneimudum + partei:Class7a +
partei:kirchg + partei:Katholisch + partei:gewerkschaft +
partei:schulabschluss + partei:alter
Model 2: cbind(parneidum, id) ~ partei + parneivadum + parneimudum + partei:Class7a +
partei:kirchg + partei:Katholisch + partei:gewerkschaft +
partei:schulabschluss + partei:alter + partei:rowMeans(regbet_land_lag[,
1:4])
Model 3: cbind(parneidum, id) ~ partei + parneivadum + parneimudum + partei:Class7a +
partei:kirchg + partei:Katholisch + partei:gewerkschaft +
partei:schulabschluss + partei:alter + partei:rowMeans(regbet_land_lag[,
1:4]) + partei:rowMeans(regbet_land_lag[, 5:8])
Model 4: cbind(parneidum, id) ~ partei + parneivadum + parneimudum + partei:Class7a +
partei:kirchg + partei:Katholisch + partei:gewerkschaft +
partei:schulabschluss + partei:alter + partei:rowMeans(regbet_land_lag[,
1:4]) + partei:rowMeans(regbet_land_lag[, 5:8]) + partei:rowMeans(regbet_land_lag[,
9:16])
Model 5: cbind(parneidum, id) ~ partei + parneivadum + parneimudum + partei:Class7a +
partei:kirchg + partei:Katholisch + partei:gewerkschaft +
partei:schulabschluss + partei:alter + partei:bula12
Model 6: cbind(parneidum, id) ~ partei + parneivadum + parneimudum + partei:Class7a +
partei:kirchg + partei:Katholisch + partei:gewerkschaft +
partei:schulabschluss + partei:alter + partei:bula12 + partei:regbet_land_age3
Resid. Df Resid. Dev Df Deviance Pr(>Chi)
1 4297 1609.5
2 4292 1602.4 5 7.033 0.218191
3 4289 1592.5 3 9.890 0.019522 *
4 4284 1584.9 5 7.664 0.175733
5 4261 1546.3 23 38.528 0.022339 *
6 4256 1531.2 5 15.120 0.009861 **
---
codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
modWest_regbet_land_lag3.1.age4.3 <- update(modWest_regbet_land_lag3.1,
.~.+partei:regbet_land_age3)
anova(modWest_regbet_land_lag3.1,
modWest_regbet_land_lag3.1.age4.3,
test="Chisq")
Analysis of Deviance Table
Model 1: cbind(parneidum, id) ~ partei + parneivadum + parneimudum + partei:Class7a +
partei:kirchg + partei:Katholisch + partei:gewerkschaft +
partei:schulabschluss + partei:alter + partei:rowMeans(regbet_land_lag[,
1:4])
Model 2: cbind(parneidum, id) ~ partei + parneivadum + parneimudum + partei:Class7a +
partei:kirchg + partei:Katholisch + partei:gewerkschaft +
partei:schulabschluss + partei:alter + partei:rowMeans(regbet_land_lag[,
1:4]) + partei:regbet_land_age3
Resid. Df Resid. Dev Df Deviance Pr(>Chi)
1 4292 1602.4
2 4287 1592.7 5 9.7549 0.08249 .
---
codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1