Lineare Regression in R, Teil 2

Ähnliche Dokumente
Lineare Regression in R

Lineare Regression in R, Teil 1

Regression mit Faktoren, Interaktionen und transformierten Variablen

Aufgabe 35 mit R (Ökonometrie SS 2014 an der UdS)

Lineare Modelle in R: Klassische lineare Regression

Kap. 8: Regression mit Paneldaten

Lineare Regressionen mit R (Ökonometrie SS 2014 an der UdS)

Prognoseintervalle für y 0 gegeben x 0

Einführung in die Ökonometrie

Lineare Modelle in R: Einweg-Varianzanalyse

Lineare Regression (Ein bisschen) Theorie

Vorlesung: Statistik II für Wirtschaftswissenschaft

Auswertung und Lösung

Ordinale abhängige Variablen. Einführung Regressionsmodelle für ordinale Variablen Empirisches Beispiel Ausblick

Breusch-Pagan-Test I auf Heteroskedastie in den Störgrößen

Eine Einführung in R: Varianzanalyse

3.1 Modell und Statistik Zusammenhang zwischen einer Zielgrösse Y und mehreren Eingangsgrössen X (1), X (2),..., X (m)

Einfache lineare Modelle mit Statistik-Software R Beispiel (Ausgaben in Abhängigkeit vom Einkommen)

4.1. Verteilungsannahmen des Fehlers. 4. Statistik im multiplen Regressionsmodell Verteilungsannahmen des Fehlers

FORMELN IN. Referent: Daniel Laskow Betreuer: Eugen Betke Programmierung in R Arbeitsbereich Wissenschaftliches Rechnen Universität Hamburg

Übungsklausur Lineare Modelle. Prof. Dr. H. Toutenburg

1 Analyse von Kontigenztafeln: Das loglineare Modell

X =, y In welcher Annahme unterscheidet sich die einfache KQ Methode von der ML Methode?

13. Lösung weitere Übungsaufgaben Statistik II WiSe 2016/2017

Tests einzelner linearer Hypothesen I

Versuchsplanung SoSe 2015 R - Lösung zu Übung 1 am Autor: Ludwig Bothmann

1 Interaktion von zwei Dummyvariablen. 2 Interaktion einer Dummyvariablen mit einer kardinalskalierten Variablen

Eine Einführung in R: Das Lineare Modell

Logistische Regression

y t = 30, 2. Benutzen Sie die Beobachtungen bis einschließlich 2002, um den Koeffizientenvektor β mit der KQ-Methode zu schätzen.

Univariate explorative Datenanalyse in R

Kapitel 3 Schließende lineare Regression Einführung. induktiv. Fragestellungen. Modell. Matrixschreibweise. Annahmen.

Statistik II Übung 4: Skalierung und asymptotische Eigenschaften

Univariate explorative Datenanalyse in R

1 Einfachregression 1.1In 10 Haushalten wurden Einkommen und Ausgaben für Luxusgüter erfragt:

1. Erklären Sie den Unterschied zwischen einem einseitigen und zweiseitigen Hypothesentest.

Erwin Grüner

Breusch-Pagan-Test I auf Heteroskedastie in den Störgrößen

Zusammenhänge zwischen metrischen Merkmalen

Bivariate Analyseverfahren

Die Funktion f wird als Regressionsfunktion bezeichnet.

Willkommen zur Vorlesung Statistik (Master)

Übung zur Empirischen Wirtschaftsforschung V. Das Lineare Regressionsmodell

1 Semi- und Nonparametrische Regression (I)

Statistisches Testen

Empirische Analysen mit dem SOEP

# Proportionen berechnen: die Proportion vom Erfolg (0 <= p <= 1) p = with(ovokal.m, P/(P+Q)) ovokal.m = cbind(ovokal.m, p)

Multiple Regression Mais-NP Zweidimensionale lineare Regression Data Display Dreidimensionale lineare Regression Multiple Regression

Kapitel 8. Einfache Regression. Anpassen des linearen Regressionsmodells, OLS. Eigenschaften der Schätzer für das Modell

Allgemein zu Hypothesentests: Teststatistik. OLS-Inferenz (Small Sample) Allgemein zu Hypothesentests

Übungen zur Vorlesung. Statistik 2

6.4 Kointegration Definition

Tutorial:Unabhängigkeitstest

Multivariate lineare Regression. Statistik für SozialwissenschaftlerInnen II p.167

Tutorial: Regression Output von R

Biometrische und Ökonometrische Methoden I Lösungen 9

Unterlagen zu Fisher s Exact Test, Vergleich von Anteilswerten und logistischer Regression. Robin Ristl. Wintersemester 2012/13

BIOL, HST HS 2014 Dr. M. Kalisch. MC-Quiz 1. Einsendeschluss: Dienstag, der :59 Uhr

Fragen. Einführung in die induktive Statistik. Übersicht. Lineare Einfachregression

Tutorial: Anpassungstest

Statistische Tests (Signifikanztests)

Empirische Wirtschaftsforschung

Metrische und kategoriale Merkmale

R-Wörterbuch Ein Anfang... ein Klick auf einen Begriff führt, sofern vorhanden, zu dessen Erklärung.

Lineare Regression mit einem Regressor: Einführung

Bivariate explorative Datenanalyse in R

Teil: lineare Regression

Musterlösung. Modulklausur Multivariate Verfahren

Funktionen und Formeln in R

Kapitel 4: Binäre Regression

Kap. 2: Generalisierte lineare Modelle (GLMs) Lineare und generalisierte lineare Modelle Schätzung und Inferenz in GLMs Literatur

Serie 8: Fakultativer Online-Test

Hypothesentests mit SPSS

Biometrische und Ökonometrische Methoden II Lösungen 1

Vorlesung: Lineare Modelle

9. Lineare Regression

Formelsammlung für das Modul. Statistik 2. Bachelor. Sven Garbade

Vorlesung: Statistik I für Studierende der Statistik, Mathematik & Informatik. Regression. Einfache lineare Regression

Statistik II. IV. Hypothesentests. Martin Huber

Kap. 12: Regression mit Zeitreihendaten und Prognosemodelle

Biometrische und Ökonometrische Methoden I! Lösungen 3

Inhaltsverzeichnis. Inhaltsverzeichnis

Institut für Statistik und Mathematische Wirtschaftstheorie Universität Augsburg. PROGNOSE II - Vertiefung Aufgaben und Lösungen Sommersemester 2004

LINEARE ALGEBRA II. FÜR PHYSIKER

Syntax. Ausgabe *Ü12. *1. corr it25 with alter li_re kontakt.

FRAGESTUNDE WS 2016/17 QM 2. Dr. Christian Schwarz 1

Das multiple lineare Regressionsmodell

Musterlösung zur Übungsklausur Statistik

Was sind Paneldaten? Datenquellen Vor- und Nachteile von Paneldaten Historische Bemerkungen Beispiel Software Literatur Programm

Transkript:

Lineare Regression in R, Teil 2 Christian Kleiber Abt. Quantitative Methoden, WWZ, Universität Basel 28. Oktober 2009 1 Vorbereitungen Zur Illustration betrachten wir wieder den Datensatz CASchools. Laden des Paketes und der Daten: R> library("aer") R> data("caschools") Wie schon diskutiert müssen die benötigten Variablen zunächst erzeugt werden: R> CASchools$stratio <- with(caschools, students/teachers) R> CASchools$score <- with(caschools, (read + math)/2) 2 Testen allgemeiner linearer Hypothesen Tests zur Überprüfung von Hypothesen des Typs H 0 : β j = 0 wurden bereits besprochen. Manchmal will man Hypothesen von allgemeinerer Form testen. Angenommen, wir wollen im Modell geschätzt mit score = β 0 + β 1 stratio + β 2 english + u i R> fm2 <- lm(score ~ stratio + english, data = CASchools) die Hypothese H 0 : β 1 = β 2 testen, oder äquivalent H 0 : β 1 β 2 = 0, d.h. die Koeffizienten zu stratio und english sind gleich (keine inhaltlich sinnvolle Hypothese, nur eine Illustration). Solche Hypothesen können mit der Funktion linear.hypothesis() aus dem Paket car getestet werden. (Dieses Paket muss i.a. erst installiert werden. Wenn Sie aber schon AER installiert haben, wurde car bereits automatisch mitinstalliert; es wird beim Laden von AER auch automatisch mitgeladen). Die einfachste Möglichkeit besteht nun in der Nutzung einer Formelschreibweise: R> linear.hypothesis(fm2, "str = english", vcov = sandwich) oder alternativ R> linear.hypothesis(fm2, "str - english", vcov = sandwich) Im zweiten Fall wird also von der Funktion verstanden, dass die rechte Seite der Hypothese Null ist.

Lineare Regression in R, Teil 2 2 Unser Problem lässt sich aber noch etwas allgemeiner (und damit transparenter!) formulieren: In Matrixform ist eine allgemeine lineare Hypothese von der Form Rβ = r (1) wobei β der (k + 1) 1 Vektor der Regressionskoeffizienten, R eine q (k + 1) Matrix und r ein q 1 Vektor sind. Die Funktion linear.hypothesis() kann auch mit dieser Formulierung umgehen, sie benötigt dafür eine hypothesis.matrix (die Matrix R aus (1)), und rhs (der Vektor r auf der rechten Seite von (1)). In unserem Fall reduziert sich die Matrix R zu einem (Zeilen-)Vektor, da wir nur eine einzelne lineare Hypothese testen, und die rechte Seite ist ein Skalar. Eine weitere Möglichkeit des Tests ist deshalb gegeben durch den Funktionsaufruf R> linear.hypothesis(fm2, hypothesis.matrix = c(0, 1, -1), rhs = 0) Linear hypothesis test Hypothesis: stratio - english = 0 Model 1: score ~ stratio + english Model 2: restricted model Res.Df RSS Df Sum of Sq F Pr(>F) 1 417 87245 2 418 87526-1 -281 1.34 0.25 Das Ergebnis von linear.hypothesis() ähnelt dem von anova(): man erhält die zu vergleichenden Modelle mit Freiheitsgraden, Fehlerquadratsummen und zugehöriger F -Statistik. Demnach kann die Hypothese zu den üblichen Signifikanzniveaus nicht verworfen werden. Bei Verdacht auf Heteroskedastie kann man solche lineare Hypothesen wie oben auch gleich mit einer Eicker-White-Kovarianzmatrix testen: R> linear.hypothesis(fm2, hypothesis.matrix = c(0, 1, -1), rhs = 0, vcov = sandwich) Linear hypothesis test Hypothesis: stratio - english = 0 Model 1: score ~ stratio + english Model 2: restricted model Note: Coefficient covariance matrix supplied. Res.Df Df F Pr(>F) 1 417 2 418-1 1.09 0.3 Die heteroskedastie-robuste Version führt also bei den üblichen Signifikanzniveaus zur gleichen Testentscheidung. 3 Formeln R bietet eine flexible Formelmethode an, um Regressionsmodelle zu spezifizieren. Dabei haben allerdings die Grundrechenarten eine neue Bedeutung, bspw. bedeutet wie schon gesehen y ~x + z Regression von y auf x und z (aber eben nicht auf x + z):

Lineare Regression in R, Teil 2 3 R> fm2 <- lm(score ~ stratio + english, data = CASchools) Analog bedeutet "-" Weglassen von Regressoren. Ein Modell mit nur dem Regressor stratio ergibt sich bspw. aus fm2 unter Verwendung der Funktion update() über R> fm1 <- update(fm2,. ~. - english, data = CASchools) Die Grundrechenarten werden insb. gebraucht, um Interaktionsterme kompakt zu spezifizieren. Ein Modell mit Interaktionen zwischen den metrischen Regressoren stratio und english wird spezifiziert durch: R> fmint1a <- lm(score ~ stratio + english + stratio:english, data = CASchools) oder kompakter durch R> fmint1b <- lm(score ~ stratio * english, data = CASchools) Dabei ist stratio:english der Interaktionsterm selbst, und stratio * english steht für eine Regression auf die angegebenen Regressoren und sämtliche Interaktionsterme. Besonders elegant (aber anfangs etwas gewöhnungsbedürftig) ist die Formelschreibweise im Zusammenhang mit Faktoren (qualitativen Variablen): Sei dazu a eine kategoriale Variable (Faktor) mit k Stufen. Im Ökonometrie-Jargon würde man dazu k 1 Dummies einführen, der Vorteil der R-Version ist, dass man nur eine einzige Variable verwalten muss und diese Dummies im Hintergrund automatisch erzeugt werden. Damit kann man insb. sehr schnell die Referenzkategorie wechseln. Tabelle 1 zeigt einige Möglichkeiten, mit Faktoren und einer metrischen Variablen x sehr kompakt Interaktionen zu spezifizieren. Tabelle 1: Formeln in Regressionsmodellen. Formel y ~ a + x y ~ a * x y ~ a + x + a:x y ~ a / x y ~ a + x %in% a Beschreibung Modell ohne Interaktion: identische Steigungen bzgl. x, aber unterschiedliche Achsenabschnitte bzgl. a. Modell mit Interaktion: der Term a:x erzeugt die Differenz der Steigungen bzgl. der Referenzkategorie. Modell mit Interaktion: gleiche ŷ i wie oben, aber Koeffizienten hierarchisch kodiert. Explizite Steigung für jede Kategorie von a. Ein Beispiel zu Interaktionen zwischen einem Faktor und einem metrischen Regressor (um die Möglichkeiten der Formelsprache deutlicher zu machen, wird der Faktor noch etwas aufbereitet): R> henglish <- I(CASchools$english >= 10) R> henglish <- factor(henglish, labels = c("no", "yes")) R> fmint2 <- lm(score ~ stratio * henglish, data = CASchools) R> coeftest(fmint2, vcov = sandwich) t test of coefficients: Estimate Std. Error t value Pr(> t ) (Intercept) 682.246 11.811 57.76 <2e-16 stratio -0.968 0.586-1.65 0.10 henglishyes 5.639 19.421 0.29 0.77 stratio:henglishyes -1.277 0.962-1.33 0.19

Lineare Regression in R, Teil 2 4 Hier wird henglish durch einen logischen Vergleich erzeugt: die Aussage english >= 10 ist für einen gegebenen Schulbezirk entweder wahr oder falsch, somit entsteht ein Vektor mit diesen Einträgen. Er wird nun in einen Faktor verwandelt, dessen Ausprägungen "no" bzw. "yes" sind. Die Referenzkategorie des Faktors enspricht dabei "no". Will man die Regression mit der Referenzkategorie "yes" durchführen, definiert man die Kategorien um. Am einfachsten geht dies mit der Funktion relevel(): R> henglish <- relevel(henglish, ref = "yes") R> fmint3 <- lm(score ~ stratio * henglish, data = CASchools) R> coeftest(fmint3, vcov = sandwich) t test of coefficients: Estimate Std. Error t value Pr(> t ) (Intercept) 687.885 15.417 44.62 <2e-16 stratio -2.245 0.763-2.94 0.0034 henglishno -5.639 19.421-0.29 0.7717 stratio:henglishno 1.277 0.962 1.33 0.1854 4 Regression mit transformierten Variablen Wie oben beschrieben haben die Grundrechenarten in Formeln eine spezielle Bedeutung. Will man sie verwenden, um Regressoren zu transformieren, muss man deshalb einen Operator benutzen, nämlich I(). Ein quadratischer Term im Regressor income wird bspw. spezifiziert über R> fmquad <- lm(score ~ income + I(income^2), data = CASchools) Transformationen, die keine Grundrechenarten enthalten, brauchen das I() nicht, deshalb genügt z.b. für Logarithmen einfach R> fmlinlog <- lm(score ~ log(income), data = CASchools) Wird nun der transformierte Regressor selbst wieder mit einer Grundrechenart transformiert, muss I() wieder verwendet werden: R> fmlinlogquad <- lm(score ~ log(income) + I(log(income)^2), data = CASchools) 5 Visualisierung von Regressionsergebnissen Zur Beurteilung der Anpassung ist es hilfreich, Graphiken zu erzeugen. Hier ein Beispiel für die Regression fmlinlog: R> plot(score ~ income, data = CASchools, pch = 20, + xlim = c(0, 60), ylim = c(600, 730)) R> grid <- seq(5, 55, by = 0.1) R> lines(grid, coef(fmlinlog)[1] + coef(fmlinlog)[2] * log(grid), + col = "slategrey", lwd = 2) R> legend("topleft", "linlog", col = "slategrey", lwd = 2, bty = "n")

Lineare Regression in R, Teil 2 5 score 600 640 680 720 linlog 0 10 20 30 40 50 60 income Dabei wird zunächst ein Vektor von Stützstellen (grid, hier eine Folge von Werten beginnend mit 5 und endend mit 55, bei einer Schrittweite von 0.1) erzeugt, in denen die Funktion dann mit den geschätzten Regressionskoeffizienten ausgewertet wird (coef(fmlinlog)[1] + coef(fmlinlog)[2]*log(grid)), diese beiden Vektoren werden schliesslich in der Form plot(x, y) gegeneinander abgetragen. Da die Punkte als Kurve zu einer bestehenden Graphik hinzugefügt werden sollen, wird dabei aber nicht die Funktion plot(), sondern lines() verwendet.