################################################# ### 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.