aspettl — Jun 27, 2013, 2:37 PM
# Daten einlesen
daten <- read.table("motorins.dat", header=T)
attach(daten)
# a) verallg. lin. Modell: Poissonverteilung mit natürlicher Linkfunktion
modell <- glm(Schaeden ~ 1+Kilometer+Zone+Bonus+Marke+Versicherte, family = poisson(link="log"))
summary(modell)
Call:
glm(formula = Schaeden ~ 1 + Kilometer + Zone + Bonus + Marke +
Versicherte, family = poisson(link = "log"))
Deviance Residuals:
Min 1Q Median 3Q Max
-62.33 -6.12 -3.26 -0.05 63.79
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 2.66e+00 1.64e-02 162.2 <2e-16 ***
Kilometer -2.69e-01 2.41e-03 -111.5 <2e-16 ***
Zone -2.52e-01 1.74e-03 -144.3 <2e-16 ***
Bonus 7.86e-02 1.66e-03 47.5 <2e-16 ***
Marke 3.77e-01 1.66e-03 226.9 <2e-16 ***
Versicherte 2.84e-05 9.53e-08 297.8 <2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for poisson family taken to be 1)
Null deviance: 435505 on 2181 degrees of freedom
Residual deviance: 178602 on 2176 degrees of freedom
AIC: 186252
Number of Fisher Scoring iterations: 6
# Output-Interpretation:
#
# Das Modell ist
# log lambda = 2.656 - 0.2692 * x_2 - 0.2516 * x_3 + ... + 0.00002837 * x_6
# wobei lambda der Parameter (und Erwartungswert) der Poisson-Verteilung
# für die Zielvariable "Schaeden" ist.
#
# Alle erklärenden Variablen haben Einfluss auf die Zielvariable "Schaeden",
# da die Hypothesen, dass die zugehörigen Koeffizienten gleich Null sind,
# sehr stark signifikant verworfen werden (p-Wert < 2*10^-16)
#
# Optional:
# - Der AIC-Wert wird zum Vergleich von Modellen verwendet (die auch
# eine unterschiedliche Anzahl an Parametern haben), kleinere AIC-Werte
# sind besser. (Da hier in der Aufgabe nur ein Modell, kein Vergleich.)
# - Die "Fisher-Scoring-Iterationen" sind die Anzahl der Iterationen im
# modifizierten Newton-Verfahren, das für die numerische Bestimmung der
# ML-Schätzer verwendet.
# b) Test, ob keine der erklärenden Variablen Einfluss auf die Schäden hat,
# d.h. H_0: beta_2 = beta_3 = ... = beta_6 = 0
modell1 <- glm(Schaeden ~ 1, family = poisson(link="log"))
modell2 <- glm(Schaeden ~ 1+Kilometer+Zone+Bonus+Marke+Versicherte, family = poisson(link="log"))
# Likelihood-Ratio-Test über anova-Befehl durchführen
# (das reduzierte Modell steht üblicherweise vorne):
anova(modell1, modell2, test="Chisq")
Analysis of Deviance Table
Model 1: Schaeden ~ 1
Model 2: Schaeden ~ 1 + Kilometer + Zone + Bonus + Marke + Versicherte
Resid. Df Resid. Dev Df Deviance Pr(>Chi)
1 2181 435505
2 2176 178602 5 256903 <2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# H_0 wird verworfen, da p-Wert ungefähr 0, d.h. mindestens eine der erklärenden Variablen
# hat Einfluss auf Schäden
# c) Test, ob erklärende Variable "Zone" keinen Einfluss auf die Schäden hat,
# d.h. H_0: beta_3 = 0
modell1 <- glm(Schaeden ~ 1+Kilometer+Bonus+Marke+Versicherte, family = poisson(link="log"))
modell2 <- glm(Schaeden ~ 1+Kilometer+Zone+Bonus+Marke+Versicherte, family = poisson(link="log"))
anova(modell1, modell2, test="Chisq")
Analysis of Deviance Table
Model 1: Schaeden ~ 1 + Kilometer + Bonus + Marke + Versicherte
Model 2: Schaeden ~ 1 + Kilometer + Zone + Bonus + Marke + Versicherte
Resid. Df Resid. Dev Df Deviance Pr(>Chi)
1 2177 201057
2 2176 178602 1 22455 <2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# H_0 wird verworfen, da p-Wert ungefähr 0, d.h. die Zone hat Einfluss auf Schäden