Skip to content

Instantly share code, notes, and snippets.

@skranz
Created May 13, 2017 10:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save skranz/3c5ac7643b74ee0ba6e3bcf062726e3a to your computer and use it in GitHub Desktop.
Save skranz/3c5ac7643b74ee0ba6e3bcf062726e3a to your computer and use it in GitHub Desktop.
An example Rmd file where editing is very slow in RStudio (Version 1.1.230) on my Windows 8.1 Notebook
#< ignore_if_included
#< settings
slides: TRUE
rtutor: FALSE
use.whiskers: TRUE
libs: [dplyr, pwt, ggplot2, plotly, tidyr,countrycode, sktools, latex2exp, stargazer]
block.libs:
chunk: armd
#quiz: shinyEventsClicker
clicker.dir: 'D:/libraries/shinyEventsClicker/apps/clickerapp'
clicker.stop.in: 2
#>
#. include slide_defaults.rmd
#< precompute
```{r include=FALSE}
# set svg as default dev for nicer plots
opts_chunk$set(dev="svg")
```
#>
#. include latex_defs.Rmd
#> end ignore_if_included
#. section Empirische Analysen zum Solow Wachstummodell
#. subsection Daten
#. frame Regressionsanalyse zum Wirtschaftswachstum
- Wir möchten nun einige Aspekte von Wirtschaftswachstum und des Solow Modells empirisch mit sog. Regressionsanalysen untersuchen.
- Regressionsanalysen sind Kern er meisten empirischen Untersuchungen in der Ökonomik. D.h. Zweck dieser Abschnitte ist nicht nur mehr über Wirtschaftswachstum zu erfahren, sondern vor allem anhand dieses Beispiels eine Einführung in wichtige Konzepte der Regressionsanalyse zu erhalten.
- Die Konzepte sind nicht einfach, vor allem wenn man sie zum ersten mal hört. Die Methoden werden Ihnen aber noch in vielen Vorlesungen (z. B. Stochastik, Statistik, diverse Wahlpflichtveranstaltungen) begegnen und vertieft werden. Aus meiner (VWLer) Sicht sind dies mit die wichtigsten Konzepte die man im WiWi Studoum lernt.
- In Fußnoten können Sie oft R Code sehen, mit dem ich z. B. eine Grafik erstellt habe. Für diese Vorlesung ist R **nicht** prüfungsrelevant. Kenntnisse in R (oder anderen Programmiersprache zur Datenanalyse, wie Python) sind aber sehr hilfreich im Studium und Beruf. Deshalb schonmal die Code Beispiele für Interessierte.
#. frame Datensatz
- Wir nutzen die Daten der sog. **Penn World Tables v. 9.0** (http://www.rug.nl/ggdc/productivity/pwt/).
- Eine Sammlung von makroökonomischen Zeitreihendaten über einen langen Zeitraum (1951-2011) für viele Länder, die nach einem gemeinsamen Standard ermittelt wurden.
- Enthält z. B. Infos über BIP und Kapitalstock.
- Wir haben die Daten für diese Vorlesung angepasst. Hier sind 3 Beispielzeilen aus dem angepassten Datensatz:
#< precompute
```{r echo=FALSE, warnings=FALSE, show_code="note_after", eval_mode="sculpt", preknit=TRUE}
# Lade Penn World Table Daten
# aus dem entsprechendem R Paket
library(pwt9)
data("pwt9.0")
dat = pwt9.0
# Zwei sehr populäre R Pakete
# Die Datenaufbereitung erheblich erleichtern
library(dplyr)
library(tidyr)
# Wähle Variablen aus und erstelle eigene Variablen
dat = dat %>%
transmute(
isocode=as.character(isocode), country=country, year=year,
bip=rgdpna / pop, # pro Kopf BIP
k = rkna / pop, # pro Kopf Kapitalstock
log_bip = log(bip), log_k = log(k), # logarithmierte Variablen
delta=delta, labsh=labsh
)
# Entferne Beobachtungen in denen Daten fehlen
dat = na.omit(dat)
# Nutze das R Paket countrycode um EU und OECD
# Mitgliedschaft der Länder zu bestimmen
library(countrycode)
cd = countrycode_data
dat = left_join(dat, transmute(cd, isocode=iso3c, eu= eu28=="EU",oecd= ar5=="OECD1990"))
# Ersetze NA Werte durch FALSE
na.false= function(x) {x[is.na(x)] = FALSE;x}
dat=mutate(dat, eu=na.false(eu), oecd=na.false(oecd))
# Zeige 3 Beispielzeilen
d = filter(dat,
(isocode=="DEU" & year == 1951) |
(isocode=="DEU" & year == 2000) |
(isocode=="CHN" & year == 2011)
)
d
```
#>
- Bei Interesse drücken Sie den "Code" Knopf, um den R Code zu sehen, mit dem wir den Datensatz erstellt haben.
#. frame Erklärung der Variablen
- `country`, `isocode`: Ländername und Abkürzung
- `year`: Jahr der Beobachtung von 1951 bis 2011
- `bip`: reales pro Kopf Bruttoninlandsprodukt gemessen in 2011 US-Dollar
- `k`: realer pro Kopf Kapitalstock gemessen in 2011 US-Dollar
- `log_bip`, `log_k`: Logarithmierte Werte von `bip` und `k`
- `delta`: Abschreibungsrate des Kapitals in diesem Jahr
- `
#. frame
<ul>
<li>
Wir die Daten mit dem natürlichen Logarithmus transformiert. (Wie wir später sehen werden, ergibt sich aus dem Solow Modell eine schöne Formel für den erwarteten Zusammenhang der logarithmierten Werte.)
</li><li>
Schweden hatte im Jahr 1950 ein logarithmiertes reales pro Kopf BIP (gemessen in 2005 US-Dollar) von 9,3. D.h. das reale pro Kopf BIP war 1950
\[BIP_{1950} = e^{9{,}3} \approx 10938~\$\]
</li><li>
Zwischen 1950 und 2007 ist das reale logarithmierte pro Kopf BIP um 1,2 angestiegen. Wir wollen dies in einen Wachstumsfaktor umrechnen. Beachten Sie die Rechenregeln für Logarithmen:
\[\begin{aligned}
\log{BIP_{2007}} - \log {BIP_{1950}} &=
\log \left( \frac{BIP_{2007}}{BIP_{1950}} \right) = 1{,}2
\end{aligned}\]
Also haben wir
\[\begin{aligned}
\frac{BIP_{2007}}{BIP_{1950}}
&= e^{1{,}2} \approx 3{,}3
\end{aligned}\]
D.h. Schwedens reales pro Kopf BIP hat sich von 1950 bis 2007 mehr als verdreifacht.
</li></ul>
#. frame Vereinfachung der Bezeichnung
- Leider ist die genaue Bezeichnung `logarithmiertes reales Bruttoinlandsprodukt pro Kopf (gemessen in 2005 US-$)`, sehr stelzig. Wir kürzen wir dies ab jetzt oft einfach mit `BIP` ab, auch wenn dies etwas ungenau ist.
#. frame Grafische Darstellung (54 Länder)
```{r echo=FALSE, warnings=FALSE, results='asis', show_code="note_after", eval_mode="sculpt", fig.height=5}
# Data dat was generated in prevous slide
# draw plot
library(plotly)
library(ggplot2)
ggplotly(
ggplot(data=dat,aes(x=logBIP_1950,y=change_logBIP, label=isocode)) +
geom_text( color="black", size=3, alpha=0.5)+
geom_point(alpha=0) +
geom_smooth(method=lm, color="red", se=FALSE) +
xlab("log. BIP pro Kopf 1950") +
ylab("Änderung von 1950-2007") +
theme_bw()
)
```
#. frame
#. frame
#< quiz
question: Unterstützt die Abbildung die Konvergenzhypothese?
sc:
- Nein.
- Ja.
#>
Beachten Sie: Negative bzw. positive Zusammenhänge bleiben auch bei Logarithmustranformation mit gleichem Vorzeichen erhalten.
#. frame Erste Interpretation der Daten
- Die Konvergenzhypothese besagt, dass Länder, die 1950 augrund weniger Kapitals arm waren zu den reicheren Länder aufholen, d.h. schneller wachsen.
- Von daher sollte es gemäß Konvergenzhypothese im Ländervergleich einen negativen Zusammenhang zwischen BIP 1950 und darauffolgenden Wachstum geben.
- Wir sehen aber viele Länder die arm sind, und trotzdem nicht schnell wachsen. Eine Vermutung ist, dass andere Faktoren wie politisches, wirtschaftliches und rechtliches System, Frieden oder Unruhen, Geografie, Geschichte... eine so substantielle Rolle für Wirtschaftswachstum, dass sie die Kräfte des Solow Modells Konvergenzhypothese überschatten.
- Wir werden diesen Punkt später noch genauer analysieren und diskutieren.
#. subsection Regressionsgerade
#. frame Regressionsgerade
- In der Grafik haben wir in rot eine sog. *Regressionsgerade* eingezeichnet, die ganz gut den linearen Zusammenhang zwischen den x- und y-Achsen Werten darzustellen scheint.
- Man kann jede Gerade (nicht nur die rote) mit folgender Gleichung beschreiben:
$$y = a + bx$$
wobei $a$ den Achsenabschnitt und $b$ die Steigung angibt. $a$ und $b$ nennen wir die *Parameter* der Gerade.
- Wir suchen jetzt aber nicht irgendeine Gerade, sondern die rote "Regressionsgerade". Wir benennen ihre Parameter $\b_0$ und $\b_1$:
$$y = \b_0 + \b_1 x$$
- $y$ bezeichnen wir als *abhängige Variable*
- $x$ als *unabhängige Variable* oder *erklärende Variable*
- Notation: Beachten Sie, dass hier mit $y$ nicht das BIP gemeint ist, sondern diese eine allgemeine Notation für die linke Seite einer Regressionsgeraden ist. Leider benutzen Ökonometrie und Wachstumstheorie hier den gleichen Buchstaben, für unterschiedliche Sachen. Da es nur recht wenige Buchstaben, kommt es häufiger zu solchen Doppelbedeutungen.
#. frame Residuen
- Wenn wir die Parameter einer Geraden kennen, beispielsweise $\b_0$ und $\b_1$, können wir mit dieser Geraden für jede Beobachtung (Land) $i$ eine “Vorhersage” $\hat{y}_i$ für das Wachstum auf Grundlage des BIP im Jahre 1950 ($x_i$) machen:
$$\hat{y}_i = \b_0 + \b_1 x_i.$$
- Ausgehend von dieser Vorhersage können wir die Abweichung des tatsächlichen Wertes von der Vorhersage, das sog. *Residuum* $\hat{u}_i$ berechnen:
$$\hat{u}_i = y_i - \hat{y}_i = y_i - (\b_0 + \b_1 x_i).$$
- In der folgenden Grafik haben wir die Residuen für Uganda und Spanien gegeben unsere Regressionsgerade eingezeichnet. Spanien ist stärker als vorhergesagt gewachsen (positives Residuum), Uganda schwächer.
#. frame Illustration der Residuen für 3 Länder
```{r}
# Illustrate residuals
d = filter(dat, year==1951)
# vorhergesagte werte der Regression
d$y_hat = fitted(lm(data=d, log_bip~log_k))
codes = c("BRA","JPN","DEU")
dc = filter(d, isocode %in% codes)
ggplotly(
ggplot(data=d,aes(x=log_k,y=log_bip, label=isocode)) +
geom_point(alpha=0.2) +
geom_smooth(method=lm, color="red", se=FALSE) +
geom_segment(data=dc, aes(x=log_k,xend=log_k,y=y_hat,yend=log_bip),col="blue") +
geom_point(data=dc,alpha=0.5,color="blue") +
geom_text(data = dc, color="black", size=4, alpha=0.8, nudge_x=0.25)+
xlab("log. Kapitalstock pro Kopf") +
ylab("log. Einkommen pro Kopf)") +
theme_bw()
)
```
#< image
file: GrafikKap2/SolTest2.svg
#>
#. frame Methode der kleinsten Quadrate (KQ)
- Methode der kleinsten Quadrate: Wähle die Parameter der Regressionsgerade $\b_0$ und $\b_1$ so, dass die resultierende Gerade die Summe der Quadrate der Residuen aller $N$ Länder minimiert:
$$\min_{\b_0, \b_1} \sum_{i=1}^{n} [ y_i - (\b_0 + \b_1 x_i) ]^2$$
- Dies ist ein Standardminimierungsproblem, das Sie mit Hilfe von Schulmathematik lösen können. Sie werden diese Berechnungen auch ausführlich in Mathematik- und/oder Stochastikvorlesungen durchführen. Hier präsentieren wir nur die Ergebnisse:
$$\begin{aligned}
\b_1 &= \frac{ \sum_{i=1}^n (x_i- \bar{x}) (y_i - \bar{y}) }{\sum_{i=1}^n (x_i - \bar{x})^2 } = \frac{Cov(x_i,y_i)}{Var(x_i)} \\
\b_0 &= \bar{y} - \b_1 \bar{x}, \\ \mbox{wobei} \;\; \bar{y} &= \frac { \sum_{i=1}^{n} y_i}{n} \;\; \mbox{und} \;\; \bar{x} = \frac { \sum_{i=1}^{n} x_i}{n}
\end{aligned}$$
#. frame
- $\b_1$ misst die Stärke des Zusammenhangs zwischen den Variablen. Es ist nicht überraschend, dass sich der Koeffizient aus der Kovarianz der beiden Variablen in der Stichprobe ableitet.
- Wenn wir die Parameter $\b_0$ und $\b_1$ mit der Methode der kleinsten Quadrate bestimmen, bezeichnen wir sie als *KQ-Schätzer*
- In unserem Datensatz erhalten wir folgenden KQ-Schätzer:
$$\begin{aligned}
\b_0 &= 0{,}08 \\
\b_1 &= 0{,}14
\end{aligned}$$
- Also ist dies die Gleichung der Regressionsgeraden:
$$\ln{BIP_{2007}} - \ln{BIP_{1950}} = 0{,}08 + 0{,}14 \ln{BIP_{1950}}$$
#< note Berechnung mit Hilfe von R (Optional)
```{r }
# manuelle Berechnung gegeben unserer Formel
x = dat$logBIP_1950
y = dat$change_logBIP
# Mittelwerte
y.mean = mean(y)
x.mean = mean(x)
beta1.hat = cov(x,y) / var(x)
beta0.hat = y.mean - beta1.hat * x.mean
# Zeige Ergebnisse
c(beta0.hat, beta1.hat)
# In R kann man mit dem Befehl lm
# auch direkt Regressionsmodelle lösen
# Wir erhalten das gleiche Ergebnis
lm(change_logBIP~logBIP_1950, data=dat)
```
#>
#. frame Qualitative und quantitative Interpretation
- Die KQ-Schätzer $\b_0$ und $\b_1$, erlauben uns eine qualitative und quantitative Evaluation des empirischen Zusammenhangs des BIP im Jahre 1950 und des darauf folgenden Wachstums, also eine Antwort auf die Fragen:
- “Welche Richtung hat der Zusammenhang zwischen BIP 1950 und Wachstum 1950 – 2007 in den OECD Ländern?”
- Aus dem positiven Koeffizienten $\b_1$ würden wir auf einen positiven Zusammenhang schließen. D.h. Länder, die ein hohes BIP im Jahre 1950 hatten, wuchsen später schneller.
- “Wie stark ist der Zusammenhang von BIP 1950 und Wachstum 1950 – 2007?”
- Aus der Größe des Koeffizienten von $0{,}14$ würden wir schließen, dass ein **Logpunkt** mehr BIP in 1950 mit $0{,}14$ Logpunkten mehr Wachstum assoziiert ist.
#. frame Interpretation Logpunkte
- Regressionen mit logarithmierten Daten haben eine schöne (approximative) Interpretation.
- Sind beide Seiten logarithmiert, so gibt der Koeffizient den prozentualen Zusammenhang der (jeweils nicht logarithmierten) unabhängigen und abhängigen Variable an.
- In unserem Beispiel hat ein Land, dass 1950 ein um $1 \%$ höheres BIP hatte, ein um $0{,}14 \%$ höheres Wachstum.
- Dieser Zusammenhang gilt nur approximativ. Die Approximation ist recht gut für kleine Unterschiede des BIP (sagen wir bis $10 \%$). Bei großen Unterschieden, wenn wir etwa Länder vergleichen, von denen eines 1950 doppelt so reich war ($100 \%$ mehr!) wie ein anderes, kann man diese Interpretation nicht mehr verwenden.
#. frame Beachten Sie:
- Eine Gerade scheint plausibel, man kann aber auch mit der Methode kleinster Quadrate auch andere Kurven anpassen. Beispiel quadratische Kurve:
$$y = \b_0 + \b_1 x + \b_2 x^2$$
- Das Quadrat der Residuen zu nehmen ist plausibel (Abweichungen nach unten und oben werden gleich gewichtet). Es gibt aber auch andere Verfahren, z.B. Minimierung des Betrags der Abweichung. Vielfältige Aufsätze in Statistik und Ökonometrie beschäftigen sich mit Vor- und Nachteilen verschiedener Verfahren.
#. subsection Regressionsmodell
#. frame Systematischer vs Zufälliger Zusammenhang
- Die Regressionsgerade zeigt einen positiven Zusammenhang zwischen BIP 1950 und darauffolgenden Wachstum.
- Die meisten empirischen Studien versuchen bei solch gefunden Zusammenhängen noch eine Antwort auf folgende Frage zu geben: Kann man einen gefundenen positiven / negativen Zusammenhang als *systematisch* bewerten oder ist er nur durch Zufall zustande gekommen?
- Hierzu werden wir ein stochastisches *Populationsmodell* formulieren und sog. *Hypothesentests* kennenlernen.
- Anmerkung: Im Moment interessiert uns nur, ob es einen systematischen *Zusammenhang* zwischen BIP 1950 und darauffolgenden Wachstum gibt, wir sagen nichts bezüglich *Kausalität*. Unter welchen Bedingungen man einen Zusammenhang einer geschätzten Regressionsgleichung als *kausal* (ein hoher x Wert *bewirkt* einen hohen y Wert) interpretieren könnte, werden wir später betrachten.
#. frame Das Populationsmodell
- Um konzeptionell zufällige von systematischen Effekten zu unterscheiden, geht man davon aus, dass die Stichprobe eine Realisation aus einem sog. *Populationsmodell* (auch *Regressionsmodell* oder *Datengeneriengsprozess* genannt) folgender Form ist:
$$y = \beta_0 + \beta_1 x + \u$$
- $\beta_0$ und $\beta_1$ sind uns unbekannte 'wahre' Koeffizienten, z. B. $\beta_0 = 0.4$ und $\beta_1=0.09$.
- $\u$ ist eine vektorwertige Zufallsvariable mit Erwartungswert $\E\u=0$. Wir nennen $\u$ Störgröße. Das Element $u_i$ beschreibt die Realisation der Störgröße für Land $i$.
#. frame Mittelwertunabhängigkeit von Störgröße \(u\) und erklärender Variable \(x\)
- Die Störgröße sollen länderspezifischen Einflüsse darstellen, die das BIP Wachstum von 1950 bis 2007 beeinflussen, aber nicht mit dem BIP 1950 statistich assoziert sind.
- Beispiele: der Fund einer großen Ölquelle im Jahr 1973, ein unerwarteter Konflikt im Jahr 1982, oder eine sehr erfolgreiche Wirtschaftspolitk in den 90er Jahren, Gründungen sehr innovativer neuer Firmen,...
- Wir formalsieren diese Idee mathematisch mit der Annahme:
$$E(u|x)=0$$
Wir sagen die Störgröße sei *mittelwertunabhängig* von $x$.
- Dies bedeutet das BIP 1950, d.h. $x$, liefert uns keine Informationen über den Erwartungswert der Störgröße $u$: egal welchen Wert $x$ hat, der Erwartungswert von $u$ ist immer 0.
- Anmerkung: Mittelwertunabhängikeit, d.h. $E(u|x)=0$, impliziert, dass $u$ und $x$ unkorrelliert sind, d.h. $\Cor(u,x)=0$. Unkorelliertheit ist aber eine schwächere Bedingung als Mittelwertunabhängigkeit. Mittelwertunabhängikeit ist wiederum eine schwächere Bedingung, als Unabhängikeit. Diese Unterschiede werden aber in anderen Vorlesungen vertieft.
#. frame Populationsmodell und Regressionsgerade
- Wir haben nun zwei Geradengleichungen:
- Das Populationsmodell
\[
y=\beta_{0}+\beta_{1}x+u
\]
- Die Regressionsgerade
\[
y=\b_{0}+\b_{1}x+\uh
\]
- Bei "guter Datenlage", sollten die realisierten KQ-Schätzer $\b_0$ und $\b_1$ nahe an den wahren Koeffizienten $\beta_0$ und $\beta_1$ liegen und die Residuen $\uh$ nahe an den Störgrößen $u$ liegen. Diese werden aber faktisch nie genau getroffen.
- Wir möchten nun durch eine sog. *Monte-Carlo* Simulation illustrieren, wie aus einem Populationsmodell Stichproben gezogen werden und sich hieraus KQ-Schätzer und Regressionsgeraden realisieren. Hierfür betrachten wir ein beispielhaftes Populationsmodell, mit folgender Spezifikation:
- $\beta_0 = 0.4$, $\beta_1=0.09$
- Die Störgrößen $u_i$ seien identisch, unabhängig normalverteilt mit Varianz 10 und Erwartungswert 0.
#. frame Das Populationsmodell als Stichprobengenerator
- Wir betrachten eine Stichprobe als eine zufällige Realisation die aus dem Populationsmodell wie folgt "gezogen" wird:
- Zunächst werden die $n=54$ Störgrößen $u_1$,...,$u_n$ aus der angenommenen Verteilung gezogen.
- Die erklärende Variable $x$ sei mit den festen Werten aus unseren Datensatz der 54 Länder vorgegeben. (Oft wird in Regressionsanalysen angenommen, dass $x$ auch eine Zufallsvariable ist, aber zur Einfachheit seien die $x$ Werte einfach feste Zahlen.)
- Gegeben der angenommenen Werte von $\beta_0$, $\beta_1$, $x$ und einer bestimmten Realisation der Störgröße $u$, werden die Werte der abhängigen Variable gemäß der linearen Gleichung des Populationsmodells berechnet:
\[y = \beta_0 + \beta_1 x + u\]
- Beispielsweise sei $\beta_0 = 0.4$, $\beta_1=0.09$, $x_1=4$ und $u_1=0.5$, wir haben dann als $y$ Wert für das erste Land
\[y_1 = 0.1 + 0.15 \cdot 4 + 0.5=1.2\]
Hätten wir stattdessen für das erste Land die Störgröße $u_1=-0.3$ gezogen, hätten wir
\[y_1 = 0.1 + 0.15 \cdot 4 - 0.3=0.4\]
#. frame Ziehen von Stichproben aus einem Populationsmodell mit R
- Die R Funktion in der Fußnote generiert zufällige Stichproben für die 54 Länder aus unserem beispielhaften Populationsmodell. Wir nennen dies *Monte-Carlo* Simulation, da wir mit dem Computer (pseudo-)zufällige Zahlen generieren.
- Wie überall in dieser Vorlesung ist der R Code nicht prüfungsrelevant, aber vielleicht für manche Studierende hilfreich und interessant. Es gibt einige weiterführende Vorlesungen, in denen Sie selbst Monte-Carlo Simulationen durchführen werden.
#< note R Code für Monte-Carlo Simulation
#< precompute
```{r, preknit = TRUE}
draw.sample = function(...) {
n = 54
# Angenommene wahre Parameter
beta0 = 0.40
beta1 = 0.09 # = alpha-1
# Ziehe Störgrößen für jedes Land
u = rnorm(n, mean = 0, sd = .65)
# x Werte sind das log(BIP_1950)
# von unseren 54 Staaten
x = dat$logBIP_1950
# Berechne die y Werte gegeben der
# Formel des Populationsmodells
y = beta0 + beta1*x+u
# Gebe simulierte Daten als data frame zurueck
data_frame(y=y,x=x, isocode=dat$isocode,...)
}
# Ziehe eine Stichprobe und zeige erste 5 Länder
head(draw.sample(),5)
# Ziehe eine andere Stichprobe und zeige erste 5 Länder
head(draw.sample(),5)
```
#>
#>
#. frame
- Echte Daten und zwei zufällig generierte Stichproben aus obigen Populationsmodell.
- Blau: Gerade des angenommenen Populationsmodells.
- Rot: Regressionsgerade der KQ-Schätzer der Stichproben.
```{r show_code="note_after", eval_mode="sculpt", fig.height=4.5}
# Setze seed des Zufallsgenerators
# um immer gleiche Ergebnisse zu haben
set.seed(12345)
# Ziehe 2 zufällige Datensätze aus dem Populationsmodell
sim1 = draw.sample(tag="Sim 1")
sim2 = draw.sample(tag="Sim 2")
# Echte Daten
real = data_frame(y=dat$change_logBIP, x= dat$logBIP_1950, isocode = dat$isocode, tag="Reale Daten")
# Fasse Daten in einem data frame zusammen
d = rbind(sim1, sim2, real)
# Zeige interaktive Version des Plots
ggplotly(
ggplot(data = d, aes(x=x,y=y, label=isocode)) +
geom_text( color="black", size=3, alpha=0.8)+
geom_abline(intercept = 0.4, slope = 0.09, alpha=0.5, color="blue", size=1.2)+
geom_point(alpha=0) +
geom_smooth(color="red",method="lm", se=FALSE, size=1.2) +
facet_wrap(~tag) + guides(color=FALSE)+ theme_bw() + theme(legend.position="none")
)
```
#. frame Diskussion der Monte-Carlo Simulation
- Jede Stichprobe fällt anders aus, obwohl alle aus dem gleichen Populationsmodell gezogen worden sind.
- Da $y$ eine Funktion einer Zufallsvariablen ($u$) ist, ist auch $y$ eine Zufallsvariable.
- Da der KQ-Schätzer $\b$ eine Funktion der Zufallsvariable $y$ ist, ist auch der KQ-Schätzer selbst eine Zufallsvariable, die in jeder Stichprobe andere Werte annimmt.
- Die Abbildungen haben gezeigt, dass die geschätzten (roten) Regressionsgeraden, also die Werte von $\b_0$ und $\b_1$ in jeder Stichprobe etwas unterschiedlich sind, auch wenn sie jeweils der (blauen) Geraden des Populationsmodells ähneln.
- Rein optisch könnten die realen Daten durchaus eine Stichprobe aus diesem speziellen Populationsmodell mit $\beta_0 = 0.4$, $\beta_1=0.09$ sein. Sie könnten aber auch aus anderen Populationsmodellen stammen.
#< ignore
Es gibt aber auch andere Populationsmodelle, für welche die realen Daten, wie eine plausible Stichprobe aussehen, z. B. für ein Populationsmodell mit ähnlichen Parametern, wie $\beta_0 = 6.0$ und $\beta_1 = -0.51$.
- Weiter unten lernen wir *Hypothesentests* kennen, die formaler etwas darüber aussagen wie plausibel es ist, dass eine Stichprobe aus einem Populationsmodell mit bestimmten Eigenschaften stammt. Dies hilft uns für Daten aus der echten Welt einzuschätzen, wie sehr ein gemessener Effekt tatsächlich auf systematischen Faktoren statt nur zufälliger Schwankungen beruht.
#>
#. frame Interpretation des Populationsmodells
- Der Begriff 'Populationsmodell', stammt aus statistischen Fragestellungen, in denen die Stichprobe eine kleine Anzahl von Beobachtungen aus einer größeren Grundgesamtheit (Population) darstellt. Beispiel: Man möchte durch Befragung von 150 Leuten etwas über den Zusammenhang von Körpergröße und Gewicht in einem Land mit einer Population von 80 Millionen Einwohnern erfahren. In diesem Fall wäre das Populationsmodell einfach die gemeinsame Verteilung von Körpergröße und Gewicht aller 80 Millionen Einwohner, und unterschiedliche Zufallstichproben werden generiert, indem man zufällig 150 Einwohner aus den 80 Millionen auswählt.
- Bei Regressionsanalysen zu Wirtschaftswachstum enthält aber die 'Stichprobe' oft alle oder einen großen Anteil der Länder der Erde, d.h. die obige Interpretation von Stichprobe und Populationsmodell passt nicht wirklich.
- Eine Interpretation unseres Populationsmodells wäre, dass es Millionen von fiktiven Welten gäbe (auch "Superpopulation" genannt), die zwar "im Schnitt" ähnlich, wie die Erde sind, aber es auf jeder Welt andere Ländern mit unterschiedlichen wachstumsrelevanten Merkmalen (wie Geografie, Instutitionen, Kapital, ...) gibt. Eine Stichprobe wären dann die Länder einer bestimmten solchen Welt.
- Zugegebenermaßen ist also das Konzept eines Populationsmodells in unserer Anwendung etwas fingiert. Das Konzept liegt aber extrem vielen statistischen Analysen zu Grunde, in manchen Anwendungen ist es dabei anschaulicher, in anderen etwas weniger.
#. frame Interpretation der Zufälligkeit der Störgröße
- Man kann kritisch anmerken, dass es auf der Erde sicherlich nicht 'zufällig' war, dass Japan (JPN) im Vergleich zu Bolivien (BOL) trotz ungefähr gleichen BIP in 1950 ein viel höheres Wachstum (also eine höhere Realisation von $u$) hatte. Dagegen scheint die simulierte Stichprobe 1 (mit stark negativen $u$ für Japan) kaum ein Ergebnis zu sein, was man erwarten würde, wenn man alle institutionellen und historischen Details der Länder im Jahre 1950 berücksichtigt.
- Betrachten Sie aber einen außerirdischen Ökonomen, der nur das BIP im Jahre 1950 der einzelnen Länder der Erde erfährt und sonst nichts. Gegeben seiner beschränkten Information sähen Bolivien und Japan nahezu identisch aus. Er weiß aber von anderen Welten, dass es große Unterschiede zwischen dem späteren Wachstum von Ländern mit gleichen Start BIP geben kann. Aus seiner Perspektive manifestieren sich diese Unterschiede also als zufällig durch die Störgröße $u$.
- Was zufällig ist oder nicht, hängt also von der Informationen des Betrachters ab. Bei einem Regressionsmodell geht man davon aus, dass man zunächst nur die erklärenden Variablen (hier nur das BIP 1950) kennt und alles andere unbekannt und somit zufällig ist. Wie wir später sehen werden, kann man noch zusätzliche erklärende Variablen, z. B. das durchschnittliche Bildungsniveau in einem Land, in die Regression aufnehmen. Dadurch kann man dann die Menge der unbekannten, als zufällig betrachteten, Einflüsse in einer Regressionsanalyse verringern.
#< note 'Optional: Kann man eine komplexe Welt durch so ein einfaches Populationsmodell beschreiben?'
Diese Fußnote ist nur als Zusatzinformation gedacht, wenn Sie *noch* mehr über die konzeptionellen Hintergründe von Populationsmodellen erfahren wollen. Diese Zusatzinfos sind ziemlich komplex und *nicht* prüfungsrelevant. Sie können sie gertrost überspringen.
Auf ersten Blick erscheint es absurd, dass man all die extrem komplexen Abläufe und Entscheidungen von Milliarden von Menschen, die für die Staaten der Erde das BIP 1950 und darauffolgende Wachstum beeinflussen, durch so eine einfache lineare Gleichung
$$y = \beta_0 + \beta_1 x + \u$$
beschreiben kann.
#### Startpunkt: Keinerlei Annahmen über die Verteilung der Störgröße
Solange wir aber noch keine Annahmen über die Verteilung der Störgröße $u$ treffen, können wir dies aber in der Tat tun, egal wie komplex die echte Welt ist.
Dazu gehen wir zunächst davon aus, dass $(y,x)$ (BIP Wachstum und BIP 1950 für jedes Land) vektorwertige Zufallsvariablen sind, die aus einer wahnsinnig komplizierten gemeinsamen Verteilung stammen, welche die stochastischen Abläufe der echten Welt darstellt.
Nun wählen wir *beliebige* Zahlen $\beta_0$ und $\beta_1$ aus, z. B. $\beta_0 = 12345$ und $\beta_1 = 0.987654321$.
Nun definieren wir die Störgröße $u$ einfach wie folgt:
$$u = y - \beta_0 - \beta_1 x$$
Als Funktion der sehr komplexen Zufallsvariablen $y$ und $x$ ist jetzt $u$ auch eine Zufallsvariable, mit einer sehr komplexen Verteilung. Aber durch diese Definition ist die Gleichung des Populationsmodells
$$y = \beta_0 + \beta_1 x + \u$$
automatisch erfüllt! Also ohne Annahmen auf die Verteilung von $u$ liefert die scheinbar so einfach aussehende lineare Gleichung noch keinerlei Einschränkungen und kann extrem komplexe stochastische Zusammenhänge darstellen.
#### Annahme: $E(u)=0$
Starten wir nun mit der Annahme, dass der Erwartungswert von $u$ gleich Null ist: $E(u)=0$. (Dies ist eine viel schwächere Annahme als $E(u|x)=0$.) Diese Annahme wird uns einen Wert der Konstanten $\beta_0$ fixieren. Gehen wir erstmal von folgenden Populationsmodell aus:
$$y = \alpha_0 + \alpha_1 x + v$$
Wobei wie oben $\alpha_0$ und $\alpha_1$ wieder beliebige Zahlen sind und $v$ eine Störgröße definiert durch $v = y - \alpha_0 - \alpha_1 x$. Der Erwartungswert von $v$ sei irgendeine Zahl $E(v)$.
Wir definieren uns nun die Störgröße $u$ als
\[
u=v-E(v).
\]
Per Definition hat $u$ nun also einen Erwatungswert von 0, $E(u)=0$.
Weiterhin definieren wir $\beta_{0}=\alpha_{0}+E(v)$ und $\beta_{1}=\alpha_{1}$. D.h. wir schieben den Erwartungswert der originalen Störgröße $v$ einfach in die neue Konstante $\beta_0$ hinein.
Wir könnnen das originale Populationsmodell, dann wie folgt umformen:
\[
\begin{eqnarray*}
y & = & \alpha_{0}+\alpha_{1}x+v\Leftrightarrow\\
y & = & \alpha_{0}+E(x)+\alpha_{1}x+v-E(x)\Leftrightarrow\\
y & = & \beta_{0}+\beta_{1}x+u
\end{eqnarray*}
\]
D.h. wir haben weiterhin das originalle Modell auf eine Art und Weise umgeschrieben, dass wir nun eine Störgröße $u$ mit Erwartungswert 0 haben. Dafür mussten wir aber einen bestimmten Wert der Konstanten $\beta_0$ wählen.
#### Annahme: $\Cor(x,u)=0$
Nehmen wir jetzt noch weiterhin an, dass die Störgröße unkorrelliert mit der erklärenden Variablen ist, d. h. $\Cor(x,u)=0$.
Es gilt weiterhin, dass man jeden beliebigen stochastischen Zusammenhang von $y$ und $x$ in Form einer Regressionsgleichung:
$$y = \beta_0 + \beta_1 x + \u$$
darstellen kann, bei der die Störgröße $u$ die Bedingungen $E(u)=0$ und $Cor(u,x)=0$ erfüllt. (Wir lassen den formalen Beweis weg).
Jedoch fixieren diese beiden Annahmen genau ein bestimmtes Wertepaar für die Koeffizienten. Die Koeffizienten $(\beta_0, \beta_1)$ bei denen $E(u)=0$ und $Cor(u,x)=0$ gilt, werden manchmal auch Koeffizienten der *linearen Projektion* genannt. Wir bezeichnen Sie von nun an mit $(\beta_0^*, \beta_1^*)$.
Man kann auch noch folgendes zeigen (wieder ohne Beweis). Wenn wir die Störgrößen $u$ als Funktion von $\beta$ wie folgt definieren:
$$u = y- \beta_0 - \beta_1 x,$$
dann sind die Koeffzienten $(\beta_0^*, \beta_1^*)$ genau das Zahlenpaar ($\beta_0, \beta_1)$, welches den Erwartungswert der quadrierten Störgröße $E(u^2)$ minimiert.
Die linearen Projektionskoeffizienten $(\beta_0^*, \beta_1^*)$ sind also das *Populationsäquivalent* des KQ-Schätzer $(\b_0, \b_1)$, dier ja den Mittelwert der Residuenquadrate für eine gegebene Stichprobe minimieren.
Interessanterweise gilt auch für den KQ-Schätzer $(\b_0, \b_1)$, dass er für eine gegebene Stichprobe das einzige Zahlenpaar ist, für das die Residuen $\uh$ die Bedingungen $E(\uh)=0$ und $Cor(x,\uh)=0$ erfüllen.
Wenn man für das Populationsmodell die Stichprobengröße $n$ gegen unendlich gehen lassen kann und Annahmen für ein Gesetz der großen Zahlen erfüllt sind, dann konvergiert der KQ-Schätzer $\b$ dann mit steigener Stichprobengröße gegen die Koefffizienten der linearen Projektion $\beta^*$.
Es wird meistens angenommen, dass für das Populationsmodell ein Gesetz der großen Zahlen gilt. Formal wäre das z. B. erfüllt, wenn das Populationsmodell einen sogenannten *stationären*, *ergodischen* stochastischen Prozess beschreibt. Was das bedeutet möchte ich aber nicht erklären. Wenn Sie Wirtschaftsmathe studieren, werden Sie das noch kennenlernen.
### Annahme: Mittelwertunabhängigkeit $E(u|x)=0$
Mittelwertunabhängigkeit $E(u|x)$ ist eine noch stärkere Annahme, als die beiden Annahmen $E(u)=0$ und $\Cor(u,x)=0$ zusammen. Wenn $E(x|u)$ erfüllt ist, sind die Koeffizienten der Regressionsgleichung wieder auch die lineare Projektionskoeffizienten $\beta^*$. D.h. das Populationsmodell hat die Form
$$y = \beta_0^* + \beta_1^* x + \u$$
Allerdings gilt nicht für jede Verteilung von $(y,x)$, dass bei einer Regressionsgleichung in obiger Form tatsächlich $E(u|x)=0$ gilt. Oft gelten nur die schwächeren Bedingungen $E(u)=0$ und $\Cor(u,x)=0$.
Intuitiv muss bei $E(u|x)=0$, neben den Bedingungen $E(u)=0$ und $\Cor(u,x)=0$ noch erfüllt sein, dass nicht noch irgendwelche Polynome von $x$, z. B. $x^2$ oder $x^3$ den $y$ Wert beeinflussen und sich somit bei der Gleichung
$$y = \beta_0^* + \beta_1^* x + \u$$
in der Störgröße $u$ verstecken. Die systematische Beziehung zwischen $y$ und $x$ soll also wirklich nur linear sein. Für komplexe Prozesse in der echten Welt, die Daten $(y,x)$ generieren, ist die Bedingung $E(u|x)=0$ höchstwahrscheinlich verletzt.
Aber viele wichtigte Resulte der Statistik, z. B. Erwartungstreue des Schätzers, halten zumindest noch aymptotisch (d.h. bei großen Stichproben), wenn nur $E(u)=0$ und $Cor(u,x)=0$ gelten.
Die stärkere Annahme $E(u|x)=0$, wird oft aus *Bequemlichkeit* verwendet, da sie die Mathematik einfacher macht und klarere Resultate liefert. Viele Ergebnisse, wie z. B. Erwartungstreue, gelten dann auch schon für endliche Stichproben und lassen sich einfacher beweisen.
#>
#. frame Verteilung der simulierten KQ-Schätzer
- Wir ziehen nun 1000 zufällige Stichproben aus unserem Beispiel-Populationsmodell mit $\beta_0 = 0.4$, $\beta_1=0.09$ und berechnen für jeden Datensatz den KQ-Schätzer $\b_0$ und $b_1$. Folgende Abbildung zeigt die Verteilung (ein Dichteschätzer) unser 1000 simulierten KQ-Schätzer $\b_1$:
```{r "hist1000", fig.height=3, eval_mode="sculpt", show_code="note_after"}
library(sktools)
sim.and.est = function() {
dat = draw.sample()
beta = coef(lm.fit(x = cbind(1,dat$x),y=dat$y))
data_frame(beta0_hat=beta[1], beta1_hat=beta[2])
}
sim = simulation.study(sim.and.est,repl = 1000)
var(sim$beta1_hat) # Varianz der Schätzer
ggplot(data=sim, aes(x=beta1_hat)) + theme_bw()+
geom_density(fill="salmon")+
ylab("Dichte") + xlab("Wert des Schätzers") +
geom_vline(xintercept = 0.09)
#hist(sim$beta1_hat, col="red",main="", breaks=21, xlab="beta1_dach",ylab="Häufigkeit")
```
#. frame Erwartungstreue der KQ-Schätzers
- Die vorherige Abbildung zeigt dass die 1000 simulierten **KQ-Schätzer** $\b_1$ um den wahren Koeffizienten des Beispiel- Populationsmodells $\beta_1=0{,}09$ zentriert zu sein scheinen.
- In der Tat können wir folgendes beweisen (was Sie in den Stochastik- und Statistikvorlesungen auch tun werden):
#< theorem
Der Schätzer $\b$ eines Parameters $\beta$ des Populationsmodells, der aus einer Stichprobe durch das KQ-Verfahren ermittelt wird, ist eine Zufallsvariable, deren Erwartungswert dem wahren Parameter $\beta$ entspricht (d.h. sie ist **erwartungstreu**), wenn die Störgröße $u$ mittelwertunabhängig von $x$ ist, also $\E (u|x) = 0$ erfüllt ist.
#>
- Da wir $E(u|x)=0$ angenommen haben, ist der KQ-Schätzer $\b_1$ also erwartungstreu.
#. frame Zentraler Grenzwertsatz
<center>
```{r "hist2", fig.height=1,fig.width=2, eval_mode="sculpt", show_code="no"}
ggplot(data=sim, aes(x=beta1_hat)) + theme_bw()+
geom_density(fill="salmon")+
ylab("Dichte") + xlab("Wert des Schätzers") +
geom_vline(xintercept = 0.09)
```
</center>
- Die Verteilung des Schätzers sieht auch aus wie eine bekannte Verteilung, die Normalverteilung.
- In der Tat kann man auch zeigen, dass der KQ-Schätzer für große Stichproben gegen eine Normalverteilung konvergiert. Dieses Resultat heißt **Zentraler Grenzwertsatz**, kann und wird in anderen Vorlesungen bewiesen.
- Hierfür ist es nicht notwendig, dass die Störgröße $u$ selbst normalverteilt ist! (Wenn $u$ normalverteilt ist, ist der KQ-Schätzer aber auch für kleine Stichproben normalverteilt.)
- Eine Normalverteilung wird durch zwei Parameter, ihren Mittelwert und ihre Varianz bestimmt.
#. frame Varianz des KQ-Schätzers
- Auch ein erwartungstreuer Schätzer kann mit Pech recht weit vom wahren Parameter entfernt sein.
- Um dieses Risiko zu quantifizieren, ist es hilfreich den zweiten Parameter der Normalverteilung des Schätzers zu bestimmen, die **Varianz**, $\Var(\b_1)$.
- Die Varianz ist ein Streuungsmaß.
- Eine große Varianz bedeutet, dass die Schätzung bei vielen Stichproben weit weg vom (richtigen) Erwartungswert liegt. In diesem Fall sollten wir unserer Schätzung nicht unbedingt Vertrauen.
- Ist die Varianz aber klein, so können wir relativ (aber nie völlig) sicher sein, dass das Ergebnis in unserer Stichprobe nahe am wahren Wert liegt.
#. frame Intuition Varianz des Schätzers
- Der Schätzer erbt seine Zufälligkeit von der Zufälligkeit von $u$.
- Ist $\Var(u)=0$, weil es beispielsweise keinen einzigen anderen Einflussfaktor gibt, so ist auch die Varianz des Schätzers 0. Alle Beobachtungen liegen genau auf der Regressionsgeraden.
- Je größer $\Var(u)$ ist, umso größer ist auch die Varianz des Schätzers und umso ungenauer unsere Schätzung.
- Auf der nächsten Folie vergleichen wir die Verteilung des Schätzers mit allen $n=54$ Staaten mit der Verteilung, wenn wir bei jeder Stichprobe nur zufällig 10 der 54 Staaten auswählen. Man sieht, dass für $n=10$ die Varianz der Verteilung deutlich zunimmt.
- Je größer die Stichprobe, umso wahrscheinlicher ist es dass ein erwartungstreuer KQ-Schätzer $\b$ nahe an den echten Koeffizienten des Populationsmodells $\beta$ drann ist.
#. frame
Verteilung von $\b_1$ für zwei verschiedene Stichprobengrößen (n=10 und n=54)
```{r show_code="note_after", eval_mode="sculpt", fig.height = 4}
library(sktools)
sim.and.est = function(n=54) {
dat = draw.sample()
# Wähle n zufällige Länder
dat = sample_n(dat,n,replace = (n>NROW(dat)))
beta = coef(lm.fit(x = cbind(1,dat$x),y=dat$y))
data_frame(beta0_hat=beta[1], beta1_hat=beta[2])
}
sim2 = simulation.study(sim.and.est,par = list(n=c(10,54)),repl = 1000) %>% mutate(n=as.factor(n))
# Berechne Varianz und Standardabweichung
sim2 %>% group_by(n) %>%
summarize(sd=sd(beta1_hat), var=var(beta1_hat))
ggplot(data=sim2, aes(x=beta1_hat, fill=n, group=n)) + geom_density(alpha=0.7)+ theme_bw() + ylab("Dichte")+xlab("Wert des Schätzers") + geom_vline(xintercept = 0.09)# + facet_grid(n~.)
```
#. frame Formel Varianz des Schätzers
- Wenn wir annehmen, dass die Störgröße unabhängig und aus einer identischen Verteilung für jedes Land gezogen wird, kann man folgende Formel für die Varianz von $\b_1$ herleiten. :
$$\begin{aligned}
\Var(\b_1) &= \frac{\sigma^2}{n \Var(x_i)} = \frac{\sigma^2}{\sum_{i=1}^n (x_i-\bar{x})^2}\end{aligned}$$
wobei $\sigma^2$ die Varianz Störgröße $u$ bezeichnet.
- Anmerkung: Es gibt alternative, sog. *robuste* Schätzer für die Varianz des Schätzers, die genutzt werden können, wenn z. B. die Störgrößen in benachbarten Ländern miteinander korreliert sind, d.h. nicht mehr unabhängig für jedes Land gezogen werden. Solche Korrelationen sind sehr plausibel, da Wachstumsshocks z. B. über Handelsbeziehungen weitergegeben werden können. Wir werden aber zur Einfachheit in dieser Vorlesung nur die obige Varianzformel nutzen.
#. frame Formel: Geschätzte Varianz der Störgröße
- Ein Problem mit der Varianzformel $\Var(\b_1)$ des Schätzers ist, dass wir bei einer empirischen Studie nur eine Stichprobe kennen, nicht die Parameter des Populationsmodells. D.h. wir kennen die Anzahl der Beobachtungen $n$ und die Stichprobenvarianz von $x_i$, aber nicht die Varianz $\sigma^2$ der Störgröße.
- Man kann aber diese Varianz des Störterms im Populationsmodell durch die Stichprobenvarianz der Residuen schätzen:
$$\begin{aligned}
\Var(\hat{u})&= \frac{1}{n} \sum_{i=1}^{n} \hat{u}_i^2 = \frac{1}{n} \sum_{i=1}^{n} [y_i - (\b_0 + \b_1 x_i)]^2.\end{aligned}$$
- Beliebter (weil erwartungstrue) in kleinen Stichproben ist die folgende um sog. Freiheitsgrade korrigierte Varianz, die wir im Folgenden immer verwenden werden:
$$\begin{aligned} \hat{\sigma}^2 &= \frac{n}{n-2} \Var(\hat{u}) = \frac{1}{n-2} \sum_{i=1}^{n} \hat{u}_i^2.\end{aligned}$$
- Freiheitsgradkorrektur werden Sie noch in den Statistikvorlesungen behandeln.
#. frame Beachten Sie
- Es gibt auch eine separate Formel für die Varianz des Achsenabschnitts $\b_0$. Weil uns der Achsenabschnitt aber fast nie interessiert, überlassen wir die Berechnung dieser Formel den Stochastik- und Statistikvorlesungen.
- Zusätzlich zur Anzahl der Beobachtungen $n$ und der Varianz des Störterms $\sigma^2$ gibt es einen dritten Faktor, der die Präzision einer Schätzung beeinflusst: Die Varianz von $x_i$. Je stärker $x$ in der Stichprobe variiert, umso präziser kann man $\b_1$ schätzen.
- Beispiel: Wenn unsere Stichprobe nur aus Ländern bestünde, die 1950 ein sehr ähnliches BIP hatten, könnten wir den Zusammenhang zwischen BIP und Wachstum im Populationsmodell nur mit hoher Ungenauigkeit schätzen.
#. frame Varianz des Schätzers in unserer Regressions
- In unserer Regression erhielten wir die Schätzung
$$\begin{aligned}
\b_1 &= 0{,}143\,.
\end{aligned}$$
- Mit Hilfe unserer Formeln können wir die (geschätzte) Varianz der Schätzung berechnen als
$$\begin{aligned}
\Var (\b_1) &= 0{,}0068\,,
\end{aligned}$$
d.h. die Schätzung $\b_1$ wurde gezogen aus einer Normalverteilung mit unbekanntem Mittelwert $\beta_1$ und einer (geschätzten) Varianz von $0{,}0068$.
#< note R Code zur Berechnung der Varianz von \(\b_1\)
```{r }
# Lasse Regression nochmal laufen
y = dat$change_logBIP
x = dat$logBIP_1950
reg = lm(y ~ x)
# Komponenten der Varianz
n = length(y)
var.x = (1/n)*sum((x-mean(x))^2)
u.hat = resid(reg)
sigma2 = (1 / (n-2)) * sum(u.hat^2)
var.beta.hat.1 = sigma2 / (n*var.x)
var.beta.hat.1
# Standardfunktion aus R
# um die Varianz-Kovarinazmatrix
# zu berechnen
vcov(reg)
```
#>
- Auf der nächsten Folie sehen Sie drei (von unendlich vielen möglichen) Verteilungen von $\b_1$ die 3 Populationsmodellen mit unterschiedlichen $\beta_1$ entsprechen.
- In der mittleren Verteilung ist $\b_1$ zufällig gerade der wahre Wert $\beta_1$. Dann noch zwei Beispiele, in denen $\b_1$ den wahren Wert unter- bzw. überschätzt.
#. frame Beispiele für mögliche Verteilungen des Schätzers \(\b_1\) für 3 verschiedene Werte von \(\beta_1\)
```{r show_code="note_after", eval_mode="sculpt", fig.height=3.8}
b_1 = 0.143 # geschätztes beta1_hat
se = sqrt(0.0068) # standardabweichung des schätzers
# 3 Werte für mögliche Wahre beta_1
beta_1s = c(0.05, 0.143, 0.3)
# x Bereich des Graphen
x = seq(-0.3,0.6, length=201)
# Berechne Werte der Dichte Funktion für
# jedes beta1 und packe in einen Data Frame
df = bind_rows(lapply(beta_1s, function(beta1) {
data_frame(x=x, y=dnorm(x, mean=beta1,sd=se), beta1=as.character(beta1))
}))
# Erstelle Plot
ggplot(data=df, aes(x=x,y=y, group=beta1, fill=beta1)) + theme_bw()+
geom_area(position="identity", alpha=0.5) + geom_line(linetype="dashed", color="black") +
geom_segment(aes(x=b_1,xend=b_1,y=0,yend=max(df$y+0.3)), color="black",size=1.2) + ylab("") + xlab("") +
scale_x_continuous(breaks=c(b_1))
```
#< ignore
#. frame
#< image
file: GrafikKap2/SolTest7.svg
#>
#>
#. frame Hypothesentests
- Den genauen Wert des wahren Parameter $\beta_1$ wird man mit einer Stichprobe Größer faktisch nie genau bestimmen können.
- In empirischen Untersuchungen ist man oft schonmal zufrieden, wenn man mit hoher Sicherheit sagen kann, dass ein Parameter eines Populationsmodells positiv oder negativ ist. Wir können dann qualitative Modellaussagen bestätigen (oder verwerfen):
- Beispiel: Ein hoher Kapitalstock senkt das Wachstum, ein hoher Preis erhöht das Angebot, etc.
- Wenn wir eine entsprechende positiven oder negativen Schätzer eines Koeffizienten erhalten, ist dies noch keine Bestätigung eines positiven bzw. negativen Zusammenhangs. Das könnte auch zufällig passieren, selbst wenn der Koeffizient im Populationsmodell eigentlich 0 ist.
- Ein *Hypothesentest* nutzt Information über die Verteilung des Schätzers, um eine Aussage zu machen, wie wahrscheinlich es wäre unsere positive oder negative Schätzung durch Zufall zu erhalten wenn in Wirklichkeit der wahre Wert Null ist.
#. frame Nullhypothese
- Um diese Wahrscheinlichkeit auszurechnen, stellen wir die sog. **Nullhypothese** (H0) auf. Dies ist eine Hypothese über das Populationsmodell. In unserem Beispiel sei die Nullhypothese, dass das BIP 1950 keinen Einfluss auf das zukünftige Wachstum hat, also
H0: $\beta_1=0$
Zusätzlich sollen auch noch die weiteren getroffenen Annahmen des Regressionsmodells gelten, z. B. $E(u|x)=0$, diese werden aber oft nicht nochmal explizit in der Nullhypothese aufgeschrieben.
#. frame Verteilung des Schätzers \(b_1\) unter der Nullhypothese
- Wenn die Nullhypothese gelten würde (man sagt: “Unter der Nullhypothese”), wäre der Schätzer $\b_0$ approximativ normalverteilt mit Mittelwert $\beta_1=0$
und der geschätzten Varianz — in unserem Fall $0{,}0068$.
- Anmerkung: Da wir die Varianz des Schätzer $\b_0$ nur schätzen, statt sie genau zu kennen, kommt nochmal etwas mehr Ungewissheit in die Verteilung hinein. Ein genauer Hypothesentest nutzt deshalb eine sog. t-Verteilung statt einer Normalverteilung. Wir nutzen hier aber die Normalverteilung zur Einfachheit, obwohl die Ergebnisse dann nur approximativ gelten. Die t-Verteilung werden Sie noch in der Stochastik / Statistik kennenlernen.
Diese Verteilung zeichnen wir auf der nächsten Folie auf.
#. frame Verteilung des Schätzers \(\b_0\) unter der Nullhypothese \(\beta=0\)
```{r eval_mode="sculpt", show_code="note_after", fig.height=4, dev = "svg"}
y = dat$change_logBIP
x = dat$logBIP_1950
summary(lm(y ~ x))
b_1 = 0.143
pval = 0.087
se = sqrt(0.0068)
x = seq(-0.35,0.35, length=1001)
df = data_frame(x,y=dnorm(x,0,se))
rdf = filter(df, x>b_1)
rdf = rbind(data_frame(x=c(max(x),b_1),y=0),rdf)
ldf = data_frame(x=-rdf$x,y=rdf$y)
ggplot(data=df, aes(x=x,y=y)) + theme_bw() +
geom_polygon(data=rdf, fill="#aaaaaa")+
geom_polygon(data=ldf, fill="#aaaaaa") +
geom_hline(yintercept=0) +
geom_segment(aes(x=b_1,xend=b_1, y=0,yend=max(y)), color="red", size=1) +
geom_line(size=1) +
scale_x_continuous(breaks=c(-b_1,0,b_1)) +
xlab("") + ylab("") +
annotate("text", label = paste0("Realisierter\n Schätzer: ",b_1), color="red", x = b_1+0.6*(max(df$x)-b_1), y = 0.75*max(df$y)) +
annotate("text", label = "Dichtefunktion\ndes Schätzers\nunter H0", color="black", x = 0.65*(min(df$x)), y = 0.75*max(df$y)) +
annotate("text", label = paste0("P-Wert: ",pval), color="#888888", x = 0, y=0.7*max(rdf$y))
```
#. frame P-Wert
- Die Abbildung illustriert auch den sog. **P-Wert** ein. Dieser ist die Summe aus den beiden grau schraffierten Flächen unter der Verteilung.
- Der P-Wert gibt die Wahrscheinlichkeit an, dass sich unter der Nullhypothese eine Schätzung ergibt, die mindestens so weit wie unsere Schätzung vom in der Nullhypothese angenommen Koeffizienten entfernt ist.
- D.h. in unserem Fall die Wahrscheinlichkeit, dass sich, obwohl das wahre $\beta_1=0$, ein Schätzer $b_0$ realisiert, der mindestens $0{,}143$ entfernt ist von $0$, also kleiner oder gleich $-0{,}143$ oder größer gleich $0{,}143$.
#< ignore
#. frame
#< image
file: GrafikKap2/SolTest8.svg
#>
#>
#. frame Interpretation P-Wert
- In unserem Fall ist der P-Wert $0{,}087$, d.h. die Wahrscheinlichkeit, dass wir bei einem wahren Wert von $\beta=0$ eine Schätzung bekommen, die mindestens so weit weg vom wahren Wert $0$ ist, wie unsere Schätzung ist $8{,}7 \%$.
- Je kleiner der P-Wert für eine Nullhypothese $\beta_i=0$ ist, umso wahrscheinlicher ist es, dass der positive bzw. negative Zusammenhang den man gefunden haben tatsächlich systematisch ist, statt nur auf einer unglückliche Ziehung der Störterme $u$ zu beruhen.
#. frame Signifikanzniveaus
- Es ist üblich, gewisse Schwellen beim P-Wert anzugeben. Sinkt der P-Wert einer Schätzung unter den Schwellenwert $s$, so sagen wir, dass wir die Nullhypothese auf dem $s \%$-Niveau ablehnen können.
- Die typischen Signifikanzniveaus sind $10 \%, 5 \%, 1 \%, 0{,}1 \%$ und $0{,}01\%$.
- Je kleiner das Signifikanzniveau ist, auf dem wir die Nullhypothese ablehnen können, umso sicherer sind wir, dass wir tatsächlich einen Zusammenhang gefunden haben, der nicht nur Zufall ist.
- Ist der P-Wert größer als $0{,}1$ also $10 \%$, wie in unserem Fall, so sagen wir, dass wir die Nullhypothese nicht ablehnen können oder dass die Schätzung nicht signifikant verschieden ist von Null. In diesem Fall können wir nicht davon ausgehen, dass wir einen Zusammenhang gefunden haben (Oft wird auch 5% statt 10% für diese kritische Schwelle genutzt.)
#. frame Interpretation Signifikanzniveaus
Können wir die Nullhypothese auf dem $s \%$-Niveau ablehnen, so bedeutet dies, dass unsere Schätzung außerhalb des Bereichs liegt, in dem Sie zu $(100-s) \%$ liegen würde, falls die Nullhypothese wahr wäre, also der Koeffizient tatsächlich $\beta=0$ wäre.
#. frame Fehler
Das sind alles Wahrscheinlichkeitsaussagen. Wir können nie sicher sein, dass wir nicht doch einen Fehler machen.
- **Fehler 1. Art** Der eine möglicher Fehler ist, dass wir auf Grund unserer Stichprobe die Nullhypothese ablehnen, obwohl sie wahr ist. Das nennt man einen Fehler 1. Art. Die maximale Wahrscheinlichkeit für einen Fehler 1. Art ist das Signifikanzniveau. Je strenger (kleiner) das Signifikanzniveau ist, das wir verlangen, umso unwahrscheinlicher ist ein Fehler 1. Art.
- **Fehler 2. Art** Der zweite mögliche Fehler ist, dass wir auf Grund unserer Stichprobe die Nullhypothese nicht ablehnen, obwohl in Wahrheit $\beta_1 \neq 0$. Wir können die Wahrscheinlichkeit für diesen Fehler nicht berechnen, aber sie steigt mit dem Signifikanzniveau, das wir verlangen.
#. frame Notation
Wenn Sie wissenschaftliche Veröffentlichungen lesen, finden Sie die Ergebnisse einer Regressionsanalyse meist in Gleichungs- oder Tabellenform mit drei Elementen:
- Die Schätzung für den Koeffizienten, in unserem Fall $0{,}143$.
- Eine Angabe zur Unsicherheit der Schätzung, allerdings typischerweise nicht die Varianz, sondern die Standardabweichung. Das ist die Wurzel aus der Varianz. Manchmal finden Sie auch direkt den P-Wert.
- Eine Angabe zur Signifikanz: Ergebnisse erhalten Sterne, wenn sie ein bestimmtes Signifikanzniveau erfüllen, oder sie werden Fett gedruckt.
Auf den folgenden Folien präsentieren wir zwei Beispiele, die obige Regression und eine Regression mit einer eingeschränkten Stichprobe (nur Länder, die 1990 in der OECD waren).
#. frame Darstellung in Gleichungsform:
Alle Länder:
$$\begin{aligned}
\ln{BIP_{2007}} - \ln{BIP_{1950}} & &=& & 0{,}084 \;\;\;\; &&+&& 0{,}143 \; && \ln{BIP_{1950}} \\
&&&& (0{,}669) &&&& (0{,}082). &&
\end{aligned}$$
#< ignore
EU Mitglieder 2010:
$$\begin{aligned}
\ln{BIP_{2007}} - \ln{BIP_{1950}} & &=& &6{,}482\;\;\;\; &&-&& 0{,}548 \;\;\; && \ln{BIP_{1950}} \\
&&&& (0{,}969)^{***} &&&& (0{,}111)^{***} && \end{aligned}$$
#>
\*\*\* Signifikant auf dem 0<span>,</span>1 Prozent Niveau,
\*\* Signifikant auf dem 1 Prozent Niveau,
\* Signifikant auf dem 5 Prozent Niveau,
\. Signifikant auf dem 10 Prozent Niveau
#. frame Darstellung als Tabelle
```{r results="asis", echo=FALSE, eval=TRUE, show_code="note_after", eval_mode="knit"}
library(stargazer)
reg = lm(data=dat, change_logBIP ~ 1+logBIP_1950)
stargazer(reg,type = "html", style="default",star.cutoffs = c(0.05, 0.01, 0.001), dep.var.caption="Dependent Variable:", dep.var.labels = "Change of log BIP",omit.stat = c("f","rsq","adj.rsq"))
```
#< ignore
##. frame Darstellung als Tabelle
[ht]
<span> @ l D<span>.</span><span>,</span><span>-1</span> D<span>.</span><span>,</span><span>-1</span></span>& &\
& &\
BIP 1950 & 0.0154 & -0.548\
& (0.109)^^ & (0.111)^\*\*\*^\
Konstante & -0.028 & 6.482\
& (0.895)^^ & (0.969)^\*\*\*^\
[flushleft]
Anmerkungen: Eine Beobachtung ist ein Land. Die abhängige Variable ist der Logarithmus des Quotienten aus BIP 2007 und BIP 1950. Die unabhängige Variable ist der Logarithmus des BIP 1950. Standardfehler in Klammern.
\* Signifikant auf dem 5% Niveau; \*\* Signifikant auf dem 1% Niveau; \*\*\* Signifikant auf dem 0.1% Niveau;
#>
#. frame Interpretation der Ergebnisse
In diesem Fall können wir die Nullhypothese, dass es keinen (negativen) Zusammenhang zwischen dem BIP 1950 und dem darauf folgenden Wachstum gibt, für die EU Länder ablehnen. Für die Stichprobe aller Länder können wir sie aber nicht ablehnen.
- Die Daten für die EU Länder sind konsistent mit der Konvergenzhypothese. Ähnliches gilt für die meisten **OECD Länder**,
- Die Daten für einen breiteren Kreis von Ländern hingegen sind nicht mit der Konvergenzhypothese konsistent.
- Das "’Problem” sind dabei Länder, die arm sind und trotzdem nicht schnell wachsen.
#. frame Ökonomische Interpretation
Als Reaktion auf diese empirischen Ergebnisse, haben Barro und Sala-i-Martin (1992) die sog. **bedingte Konvergenz** vorgeschlagen:
Länder mit den gleichen oder ähnlichen geographischen, kulturellen oder politischen Rahmenbedingungen konvergieren gegen denselben stationären Zustand. Formal bedeutet das, dass unterschiedliche Regionen, Kulturkreise oder politische Zonen unterschiedliche Werte von $A$ haben. Einflussgrößen, die $A$ eventuell bestimmen sind:
- Schulsystem
- Rechtsstaatlichkeit und Demokratie
- Bodenschätze
- Flüsse, Gebirge, Küstenlinie
- Religion
#. frame Zusammenfassung:
- Länder mit bestimmter geographischer Lage, Kultur und Institutionen konvergieren gegen denselben stationären Zustand. Ärmere Länder unterscheiden sich dann von reicheren nur noch durch einen niedrigeren Kapitalstock. Daher haben sie aber auch bessere Investitionsmöglichkeiten und wachsen schneller.
- Welche Faktoren (Geographie, Kultur oder Institutionen) entscheidend sind für den Schritt zum Wachstum bleibt offen. Sind sie aber erfüllt, so ergibt sich ein rapides Aufholen (Wirtschaftswunder) aber kein Überholen durch Erhöhung des Kapitalstocks, z.B.: Deutschland nach dem Zweiten Weltkrieg, Japan oder China.
- Völlig offen bleibt auch im Moment, welche Faktoren den technischen Fortschritt an der **technologischen Grenze** (in den Industrienationen) beeinflussen.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment