###################################################### # # # Universität Regensburg - Lehrstuhl für Ökonometrie # # # # Kursprüfung im Fach: Programmieren mit R # # # # Wintersemester 2014/2015 # # # # Datum: 27.10.2014 # # # ###################################################### ###################################################### # Bearbeitungshinweise: ###################################################### # # - Die Bearbeitungszeit beträgt 60 (+5) Minuten (Abspeichern, Versenden) # - Die Klausur besteht aus drei Aufgaben (60 Punkte), die alle bearbeitet werden sollen. # Aufgabe 1: 32 Punkte # Aufgabe 2: 21 Punkte # Aufgabe 3: 7 Punkte # - Zugelassene Hilfsmittel sind das Kursmaterial (gedruckt oder digital) sowie R-bezogene # Internetseiten (inkl. Foren aller Art). # - Benennen Sie diese Datei zunächst um in: PMR_ws14_kla_Nachname_Vorname.R (IHR Name...!) # - Senden Sie am Ende der Bearbeitungszeit Ihren R-Code an: # stefan.rameseder@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 in R (aktuelle Version) # 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, wie Ihr Lösungsweg in algorithmischer Form aussehen würde. Auch dann ist eine # komplette Punktzahl möglich. ###################################################### # Name: # Vorname: # Matrikelnummer: ###################################################### ###################################################### # # #### #### #### ### # # # #### # # # # ## # # # # # # # # # # ### # #### #### #### ### #### #### #### # # # ###################################################### ###################################################### # Aufgabe 1 (32 Punkte): ###################################################### # a) (2 Punkte) Installieren und laden Sie das AER-Paket. # (Falls es Probleme im Cip Pool gibt, laden Sie es direkt in der Konsole, fügen Sie es # in der Konsole hinzu und laden Sie es danach in RStudio.) # b) (2 Punkte) Benutzen Sie das "help"-Argument um sich die Dokumentation für das AER-Paket ausgeben zu lassen. # Hinweis: ?library() # c) (2 Punkte) Laden Sie aus diesem Paket einen Datensatz (unbekannten Namens), mit dem man die Anzahl der # Zitierungen von Artikeln im Bereich der Biologie analysieren kann. # Hinweis: # - Schlagwörter: Citations; Biology; Equations; # - Falls dieser Datensatz nicht über R gefunden wird, könnte eine google Suche helfen. # d) (4 Punkte) Nutzen Sie die help-Funktion angewandt auf diesen Datensatz und interpretieren Sie # den Mittelwert der Variablen "theocites" und "nontheocites" # Hinweis: # -Achten Sie darauf, dass der Datensatz ansprechbar ist bzw. sprechen Sie ihn an. # e) (1 Punkt) Erzeugen Sie eine deskriptive Übersicht über die Anzahl der Seiten bzw. über die Variable "pages". # f) (2 Punkte) Zeichnen Sie einen "cites"(y)-"pages"(x)-Scatterplot # g) (3 Punkte) Regressieren Sie "cites" gegen "pages" ohne Konstante. # Benutzen Sie danach die "summary"-Funktion und interpretieren Sie den Koeffizienten. # h) (2 Punkte) Zeichnen Sie die Regressionsgerade in rot in obrigen Plot. # Hinweis: ?abline() ##### Im Folgenden möchten Sie den Einfluss von vielen mathematischen Formeln auf die Anzahl ##### von Zitierungen untersuchen. # i) (4 Punkte) Betrachten Sie zuerst "summary(mainequations)" als auch das 97%-Quantil dieser # Variablen und zeichnen Sie danach ein aussagekräftiges, angepasstes Histogramm von "mainequations" (breaks=150). # Hinweis: xlim Befehl für die Range ##### Aus dem Histogramm sollte ersichtlich werden, dass es sehr viele Papiere mit keiner einzigen Formel gibt (mainequations=0) # j) (2 Punkte) Fügen Sie zum Datensatz eine Dummyvariable "zeroEquations" hinzu, die den Wert 0 annimmt, # falls 0 "mainequations" auftreten und 1, falls mindestens 1 "mainequations" im Paper auftauchen. # k) (4 Punkte) Regressieren Sie nun "cites" gegen eine Konstante, "pages", "equations", "selfcites", "theocites" und "zeroEquations". # Interpretieren Sie die Variable "selfcites". # l) (4 Punkte) Definieren Sie nun folgende Teilmenge "testEquations bestehend aus den Variablen # "pages", "mainequations", "cites" # bei denen die selfcites 0 waren und die theocites größer als 0 # Geben Sie am Ende die Dimension dieses Datensatzes / dieser Matrix an. ###################################################### # Aufgabe 2 (21 Punkte): ###################################################### # a) (3 Punkte) Setzen Sie den Zufallsgenerator auf die Startposition 111. # Realisieren Sie einen Vektor alpha mit den Einträgen 1 und 2. # Erzeugen Sie zwei Zufallsvektoren x1 und x2 mit jeweils 50 Beobachtungen. x1 sei # normalverteilt mit Mittelwert 3 und Varianz 4, x2 chi^2-verteilt mit 5 Freiheitsgraden. # b) (5 Punkte) Simulieren sie nun r=200 mal ein "y=beta_1 x1+beta_2 x2 +u", # indem Sie bei jedem Durchgang einen chi^2-verteilen Fehler "u" (Anzahl von Freiheitsgraden = 2) # erzeugen. Speichern Sie ALLE simulierten "y" pragmatisch ab. # Hinweis: Für jede Replikation r benötigen Sie einen Vektor der gleichen Länge x1 bzw. x2. # c) (5 Punkte) Erweiteren Sie nun Ihre Simulation: # - Initialisieren Sie zu Beginn einen Leervektor "alpha1_hat" der Dimension 200 x 1 # - Speichern Sie in jedem Durchlauf die Schätzung von "alpha1" im Modell lm(y ~ -1 + x1 + x2) # in Ihren Vektor "alpha_hat" # d) (3 Punkte) Setzen Sie den Zufallsgenerator noch einmal auf den Anfangswert zurück und führen Sie die gesamte Simulation # durch. # d) (5 Punkte) Führen Sie nun den Befehl plot( density( (alpha_hat-1)/sd(alpha_hat) ) ) # aus (die t-Statistik zum Test H_0: alpha_hat=1) und zeichnen in diesen Graphen die Standardnormalverteilung rot ein. # Ändern Sie den Titel des Plots zu "Standardnormalverteilung vs. t-Statistik" # Hinweis: # - Um den lines-Befehl sauber anwenden zu können, definieren Sie sich am besten einen x-Bereich: x <- seq( from=-4, to=4, by=0.01) # Fazit: Die auftretende Verzerrung kommt wegen den verzerrten Fehler zustande, da bei einer chi^2-Verteilung mit # 2 Freiheitsgraden nicht mehr E[u|X]=0 gilt. ###################################################### # Aufgabe 3 (7 Punkte): ###################################################### # a) (3 Punkte) Schreiben Sie eine Funktion mit dem Namen "numberToLetter", die bei Eingabe einer Zahl den entsprechenden # Buchstaben im Alphabet als Wert zurückgibt. Benutzen Sie hierfür den in R definierten Vektor letters # in dem Sie sich die Klasse und diese vordefinierte Variable ausgeben lassen. # b) (4 Punkte) Testen Sie das Argument der Funktion, ob es tatsächlich einen Buchstaben zurückgeben kann. Falls dies nicht # der Fall ist, lassen Sie den Fehler "!ERROR!" ausgeben und den Wert "NA" zurückgeben.. # Hinweis: # - Auch negative Zahlen sollten zu einem Fehler führen # - Testen Sie Ihre Funktion mit numberToLetter(-2) numberToLetter(10) numberToLetter(30) ###################################################### # Ende ######################################################