Wenn die Umlaute in Ihrem R Skript nicht korrekt angezeigt werden, dann gehen Sie folgendermaßen vor:
- Gehen Sie auf File --> Reopen with Encoding
- Wählen Sie aus der Liste "UTF-8" aus!
- Klicken Sie auf OK!
Andranik Stepanyan
Doktorand
Wenn die Umlaute in Ihrem R Skript nicht korrekt angezeigt werden, dann gehen Sie folgendermaßen vor:
Definition des Arbeitsverzeichnisses Anmerkung: Bitte den Pfad benutzerspezifisch anpassen
setwd("D:/Users/s4anstep/Dropbox/Ökonometrie - Teaching/OekoTeil1")
Aufgabe 2.1
Aufgabe 2.1.1
Erstellen Sie ein data frame, welches die folgenden Beobachtungsdaten enthält:
Lösung:
x <- c(10, 30, 50)
y <- c(2, 3, 7)
Aufgabe 2.1.2
Fassen Sie die beiden Vektoren im data frame Tip3 zusammen.
Lösung:
Tip3 <- data.frame(x, y)
Aufgabe 2.1.3
Lassen Sie sich die Daten von R mit dem Befehl Tip3 anzeigen.
Lösung:
# Wiedergabe des Dataframes
Tip3
## x y
## 1 10 2
## 2 30 3
## 3 50 7
Aufgabe 2.1.4
Lassen Sie sich die Daten des Vektors y anzeigen
Lösung:
# Anzeige der Werte von "y"
y
## [1] 2 3 7
# alternativ
Tip3$y
## [1] 2 3 7
Aufgabe 2.1.5: Exportieren Sie die Daten in eine Ascii-Datei mit der Bezeichnung Tip3.txt, welche in Ihrem Arbeitsverzeichnis abgespeichert werden soll.
Lösung:
# Das Dataframe wird im Arbeitsvezeichnis unter dem Namen
# "Tip3.txt" abgespeichert.
write.table(Tip3, "Tip3.txt")
# Speichern in eine mehr gängige Datei ".RData"
save(Tip3, file="Tip3.RData")
load("Tip3.RData")
Aufgabe 2.1.6: Betrachten Sie die Punktwolke (scatterplot) Ihrer Daten.
Lösung:
# Punktwolke erzeugen
plot(x,y, xlim = c(0, 60), ylim=c(0,10))
Aufgabe 2.1.7: Berechnen Sie die Werte von \(S_{xx}\) und \(S_{xy}\) und geben Sie ihnen die Bezeichnungen sxx und sxy.
Lösung:
# Variation von X
sxx <- sum((x - mean(x))^2)
# Kovariation von X und Y
sxy <- sum((x - mean(x))*(y - mean(y)))
Eine gemeinsame Funktion für Variations- und Kovariationsfunktion wird geschieben. Bei Eingabe von einem Vektor wird Variation und bei zwei Vektoren entsprechend Kovariation berechnet. (Während der Öbung ist nur Spezialfall besprochen worden!)
vc <- function(x, y = x){
sxx <- sum((x - mean(x))*(y - mean(y)))
return(sxx)
}
vc(x) # Berechnet Variation von X
## [1] 800
vc(x, y) # Berechnet Kovariation zwischen X und Y
## [1] 100
Aufgabe 2.1.8: Berechnen Sie den Wert des Steigungsparameters \(\hat{\beta}\) und geben Sie ihm die Bezeichnung beta.dach. Berechnen Sie auch \(\hat{\alpha}\) und geben Sie dem Wert die Bezeichnung alpha.dach.
Lösung:
Für die Herleitung: Auer, L. von (2013), Ökonometrie - Eine Einführung, 6. Aufl., S. 57 ff
# Die Berechnung von Niveau- und Steigungsparameter
beta.dach <- sxy/sxx
alpha.dach <- mean(y) - beta.dach * mean(x)
# Die geschätzten Parameter
beta.dach
## [1] 0.125
alpha.dach
## [1] 0.25
Aufgabe 2.1.9 - 2.1.10: Geben Sie der Regression Ihres ökonometrischen Modells den Namen tip.mod.
# Der Befehl "lm()" steht für KG-Schätung
# Regressionsmodell
tip.mod <- lm(y ~ x)
Aufgabe 2.1.11: Um sich die Ergebnisse der Regression anzeigen zu lassen, führen Sie den Befehl summary(tip.mod) aus.
Call:
lm(formula = y ~ x)
Residuals:
1 2 3
0.5 -1.0 0.5
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.2500 1.4790 0.17 0.89
x 0.1250 0.0433 2.89 0.21
Residual standard error: 1.22 on 1 degrees of freedom
Multiple R-squared: 0.893, Adjusted R-squared: 0.786
F-statistic: 8.33 on 1 and 1 DF, p-value: 0.212
Niveauparameter (alpha.dach). Der wert von 0.25 bsagt, dass ein Gast mit einem Rechnungsbetrag von 0 ein Trinkgeld von 25 Cent hinterlässt. Diese Aussage ist formal korrekt, aber offensichtlich unplausibel.
Steigungsparameter (beta.dach). Der Wert von 0.125 besagt, dass bei jedem zusätzlichen Euro, um den sich der Rechnungsbetrag des Gastes erhöht, der Kellner ein zusätzliches Trinkgeld von 0.125 Euro erwarten darf.
ACHTUNG!
"...Hier haben wir mit einem allgemeinen Schätzproblem zu tun, das eine genauere Erläuterung verdient. Die Schätzwerte alpha.dach=0.25 und beta.dach=0.125 wurde auf Basis von drei Beobachtungen ermittelt, die sich im Bereich x1=10 bis x3=50 abspielen. Es gab aber keine Beobachtung für Werte der exogenen Variable x, die dichter zum Ursprung oder größer als 50 waren! Entsprechend sollen wir unser Schätzergebnis umso misstraurischer betrachten, je weiter wir uns vom Intervall entfernen, für das Beobachtungen vorliegen, Also dem Kernintervall von 10 bis 50 ..." (Ökonometrie, S. 61).
Aufgabe 2.1.12: Beschränken Sie den R-Output auf die KQ-geschätzten Koeffizienten und Standardabweichungen sowie die t-Werte und p-Werte.
Lösung: Auf den Outputteil Coefficients wird herausgegriffen
summary(tip.mod)$coefficients
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.250 1.4790 0.169 0.8934
## x 0.125 0.0433 2.887 0.2123
#Klasse wird nachgefragt
class(summary(tip.mod)$coefficients)
## [1] "matrix"
Da wir jetzt wissen, dass das obige Objekt von der Klasse "matrix" ist,
können wir eckige Klammer [ , ] für Isollierung bzw. Subsetting anwenden.
Erste Spalte wird herausgegriffen, der Befehl dafür
summary(tip.mod)$coefficients[,1] # Einfacher coefficients(tip.mod)
## (Intercept) x
## 0.250 0.125
# Alternativ
tip.mod$coefficients
## (Intercept) x
## 0.250 0.125
coef(tip.mod)
## (Intercept) x
## 0.250 0.125
Aufgabe 2.1.13:Fügen Sie Ihrer Grafik die geschätzte Gerade (R) in roter Farbe hinzu.
plot(x,y, xlim = c(0, 60), ylim=c(0,10),
xlab="Rechnungsbetrag", ylab="Trinkgeld", pch=19)
abline(tip.mod, col = "red")
Aufgabe 2.1.14: Speichern Sie die Grafik unter der Bezeichnung tip3grafik.emf. Dies geschieht über das Menü 'Datei' und dann 'Speichern als'.
Lösung: Aus Interface, Im Fenster wo "Files", "Plots", "Packages" und "Help" stehen, gehen Sie auf "Plots". Dann betätigen Sie die Taste "Export". Sie können Ihr Plot entweder als Bild ( engl: "Save Plot as Image...") oder als PDF-Datei (engl.: "Save Plot as PDF...") abspeicehrn! Wählen Sie eine von diesen Alternativen je nachdem welcher Ihrer Forschungsfrage besser passt.
Aufgabe 2.1.16: Entfernen Sie nun ihre Vektoren x und y aus dem Arbeitspeicher mit dem Befehl rm(y,x).
# Entferne die X und Y Vektoren
rm(x, y)