################################################# ### Wiederholung - Wesentliche Kursinhalte ################################################# ### 1_Introduction.R # ### 2_Objects.R # ### 3_Gaphics.R # ### 4_Data_Analysis.R # ### 5_Flow_Control.R # ### 6_Regression.R # ### 7_Monte_Carlo.R # ### 8_Optimization.R # ### 9_Bootstrap.R # ### 10_Efficiency.R # # and some Tutorials! ################################################# ### Klausurbeispiele ################################################# # Arbeitsanweisungen: # - Zugelassene Hilfsmittel sind das Kursmaterial (gedruckt oder digital) sowie R-bezogene Internetseiten. # - Die Bearbeitungszeit betr?gt 60 Minuten. # - Senden Sie am Ende der Bearbeitungszeit ihren R-Code an: # roland.weigand@wiwi.uni-regensburg.de und joachim.schnurbus@wiwi.uni-regensburg.de # - Drucken Sie nach dem Versenden Ihren Code aus und geben Sie Ihn bei der Aufsicht ab. # - L?sen Sie die folgenden Aufgaben mittels ausf?hrbarem Code und erg?nzen Sie bei Bedarf Ihre # Programmierung um aussagekr?ftige Kommentare. # - Interpretationen, etc. sollen ebenfalls als Kommentar angegeben werden. # - Falls Teile Ihres Programms nicht funktionieren, geben Sie ebenfalls in Kommentarform an, # was Sie hier genau machen wollten. # 1. (4 Punkte) Schreiben Sie eine Funktion NAME, die bei Eingabe ihrer Matrikelnummer den Namen ausgibt # und bei Eingabe einer falschen Nummer eine Fehlermeldung ausgibt. NAME <- function(f.MN){ if(f.MN == 1234567){ print("Anton Berta") } else {print("Unbekannte Matrikelnummer!")} } NAME(1234567) NAME(123456) # 2.a) (2 Punkte) Laden Sie den Datensatz CPS1985, der sich im AER-Paket befindet und sorgen Sie daf?r, dass man # auf die Spalten des Datensatzes direkt durch den Spaltennamen zugreifen kann. # zun?chst Paket installieren, dann: library(AER) data(CPS1985) attach(CPS1985) # um auf Spalten per Name zugreifen zu k?nnen # b) (2 Punkte) Geben Sie an, wieviele Beobachtungen und Variablen sich im Datensatz befinden. head(CPS1985) # um ?berblick zu bekommen. dim(CPS1985) # 533 Zeilen (Beobachtungen) und 11 Spalten (Variablen) # c) (4 Punkte) Sie m?chten den (logarithmierten) Lohn in Abh?ngigkeit von Alter und Geschlecht untersuchen. # Generieren Sie daf?r zun?chst einen Datensatz, in dem sich nur diese drei Variablen befinden und # geben Sie dann die wesentlichen Kennzahlen dieser Variablen aus. # Wie ist der Mittelwert des Alters im Datensatz? # Liegen mehr Frauen oder mehr M?nner im Datensatz vor? data <- data.frame(lwage = log(wage), age, gender) summary(data) # mittleres Alter: 36.84 Jahre # 289 M?nner, 244 Frauen, insofern mehr M?nner. # d) (4 Punkte) Analysieren Sie die Beziehung zwischen log(wage) und Alter getrennt f?r M?nner und Frauen, # indem Sie einen Scatterplot zwischen log(wage) und Alter erstellen, indem Sie M?nner und Frauen mit # unterschiedlichen Farben kennzeichnen. Achten Sie darauf, dass alle Beobachtungen eingezeichnet wurden. # Eine Legende ist (noch) nicht erforderlich. plot(age[gender == "male"], log(wage)[gender == "male"], xlim = range(age), ylim = range(log(wage)), pch = 20, col = "blue") points(age[gender == "female"], log(wage)[gender == "female"], pch = 20, col = "red") # e) (6 Punkte) Berechnen Sie nun die Regressionsgeraden f?r M?nner und Frauen getrennt und zeichnen Sie diese in die # Grafik aus 2d ein. Erg?nzen Sie die Grafik au?erdem um eine Legende. reg_m <- lm(lwage ~ age , data = data[gender == "male", ]) reg_f <- lm(lwage ~ age , data = data[gender == "female", ]) abline(reg_m, lwd = 2, col = "blue") abline(reg_f, lwd = 2, col = "red") legend("bottomright", c("Regressionsgerade", "M?nner", "Frauen"), lty = c(1, NA, NA), pch = c(NA, 20, 20), lwd = c(2, 1, 1), col = c("black", "blue", "red"), bg = "white") # f) (3 Punkte) Interpretieren Sie Ihre Ergebnisse aus den vorherigen Teilaufgaben. # M?nner verdienen im Durchschnitt etwas mehr als Frauen im Datensatz. # Zudem nimmt der Lohn bei M?nnern im Durchschnitt st?rker zu bei steigendem Alter. # Beachte: logarithmierter Lohn.