R Klausuren mit Lösung (SS18, WS17-18, SS17, WS16-17).pdf

Klausuren
Hochgeladen von Fksfkeosk 7801 am 05.02.2019
Beschreibung:

Die letzten 4 R-Klausuren mit Lösungen und teilweise mit Erklärung

 +21
772
68
Download
Könnte mir jemand erklären wie man hier in den Spalten durchgeht, um auf die Werte zu kommen?
naja du greifst mit dem data.sp500 schonmal genau auf den datensatz zu. Mit $Low bist du in der dritten Spalte und mit [seq(2,5,2)] sagst du du willst bei der 2. Spalte anfangen bist zur 5ten Variable jeweils in 2er Schritte. Das sagt der Befehlt aus wenn du keine Zahlen reinhaust : seq(from, to, by)
ich mache imer den Fehler, dass ich bei der Augabe zb schreibe: sum(data.sp500[data.sp500$Open>2000]) woher weiss ich dass ich nicht nochmal eine eckige Klammer benötige ?
2 weitere Kommentare anzeigen
Würde auch gehen sum(data.sp500$open[data.sp500$open>2000,]) ?
Kann jemand helfen? würde das was anonymer hase geschrieben hat auch stimmen?
wofür steht das p?
ups steht da ja, mein Fehler.
hier fehlt noch die Klammer zu.
wo kommt denn das p her? soll das der startwert sein?
2 weitere Kommentare anzeigen
kann das jmd beantworten?
Ich hätte gesagt, weil a minimiert werden soll und a im Intervall von 0 und 1 liegt. Ich vermute andere Werte wären auch möglich, solange du nur in dem Intervall bleibst. Intuitiv hätte ich auch 1/2 genommen, da a und (1-a) als Faktor vorkommen. Ohne Gewähr
wieso nicht 1-P? ist doch gegen Wahrscheinlichkeit
1 weiteren Kommentar anzeigen
ges: p im intervall von 20-70 (Studydrive buggt rum) Obergrenze ersetzt bei einem Intervall die 1. Aus 1-p20 wird p70-p20 Fürs Verständnis: |---21+++70---| |++++++70---| |++20---------|
P (Y<= 20) ist schon die Gegenwahrscheinlichkeit von P(Y>20).
muss da ein Punkt oder ein Komma hin?
Punkt
Ich verstehe das nicht ganz.. wie komm ich darauf das zu machen? und das j=6 sein muss?
Du machst eine j-Spalte und eine i-Spalte nebeneinander. Der erste Wert für j ist ja gegeben, also 0. i ist definiert als 1 - 3, also kannst du in die i-Spalte untereinander schon mal 1,2 und 3 schreiben. Und dann ist es nur simples Addieren. 0 + 1 = 1. also ist j in der 2. Zeile 1. Dann 1 + 2 = 3 und dann 3 + 3 = 6, das ist dann der Endwert für j.
Vielleicht hilft es ja mehreren Leuten
Warum muss man den Korrelationskoeffizienten mal den Rest nehmen?
In der FS auf Seite 10 ( 3.Formel von oben) aufgelöst
Wie kommt aber man dann auf Wurzel 1 und Wurzel 2, in der Formel steht kein wurzeln!
Steht dieser seq Befehl in der FS oder in der R Card oder muss man sich das merken?
das musst du dir merken.. 1 bis 4 Position mit Abstand 2 heißt es
Was sagt mir das - vor dem c ?
Minus ist "alles außer" oder wie in Statistik die Gegenwahrscheinlichkeit 1-P(x). In dem Fall weil es hinter dem Komma steht und deshalb die Spalte näher beschrieben wird: "alles außer Spalte 1, 2, 5 und 6".
Ich hätte jetzt gesagt: which.max(table(airports$timezone)/length(airports$timezone). Wäre ja eigentlich nur die relative Häufigkeit, von der könnte man es ja auch ablesen. Müsste theoretisch eigentlich auch durchgehen, oder?
Wieso nicht einfach modus(Airport$timezone) ??
wieso geht hier nicht sum?
Um würde die Daten zu einem Element addieren aber wir wollen die Daten als einzelne Elemente angezeigt bekommen
Danke dir :)
wo bleibt g2 im befehl ? was wird hier gemacht ?
Ich glaube die Funktion wird nach g2 umgestellt also um diesen Wert herauszubekommen. Deswegen wird auch Mythen in die Funktion mit eing baut
In der nlm-Funktion hast du für alle Parameter einen festen Wert gegeben, außer für g2. D.h. nlm wird hinsichtlich g2 optimiert mit Startwert p=0,05.
denkt ihr nrow(data$Goal_h==0)+nrow(data$Goal_a==0) würde auch gehen
12 weitere Kommentare anzeigen
Das Komma kommt dahin, weil ich ein Dataframe habe. Und alles was vor das Komma kommt bezieht sich auf die Zeilen und alles was nach dem Komma kommt bezieht sich auf die Spalten. Hier gings ja darum, dass wir nur die Zeilen haben wollen bei denen in den Spalten Goalh und Goala eine 0 steht. Die Spalten an sich waren uns egal, wenn wir theoretisch wissen wollen würden in welcher Saison es 0 Tore gab dann würde der Befehl so lauten : data[data$Goal_h==0 & data$Goal_a==0,"Season"]
Ahh danke jetzt hat es bei mir endlich Klick gemacht wieso die Zeile 😅
warum wird hier die 2 übersprungen ?
Wird sie nicht. Du nimmst das Ergebnis aus der Zeile davor und addierst den nächsten i - Wert drauf (Für Zeile 2 also 1+2=3)
Wann nutze ich für Anzahl mean() und wann sum()?
Okay, hab’s mir selbst beantwortet: Mean () bei Durchschnittlicher Anzahl und sum () bei allgemeiner Anzahl.
Wieso muss da jetzt kein Komma rein? 🙄
merk dir einfach: wenn mean dann kein Komma, wenn Data dann Komma
Weiß jemand von euch wie man bei einer WHILE-Schleife vorgehen würde? Danke
wie kommt man darauf?
push
j=1 ist der Startwert. diesen setzt du in j= j+i ein wobei i beim ersten mal 1 ist. Du bekommst2 raus welcher das neue j ist. das 2. i ist 2 und das ganze machst du 3 mal
wie kommt man da drauf?
würde es hier auch irgendwie funktionieren mit ncol und den Namen zu arbeiten ? Beispielsweise teil2= Airports[ncol("Latitude","Longitude", "Altitude"]
Kann mir bitte jemand die Grafik erklären? Stehe irgendwie grade bisschen auf dem Schlauch. 🙄
1 weiteren Kommentar anzeigen
Die x-Achse beschreibt die Torabstände aus Sicht der Heimmannschaft. Wenn sie also z.B. 3:1 gewinnen, ist das Spiel bei +2 eingetragen. Wenn sie 2:4 verlieren, bei -2. Und auf der y-Achse steht dann, wie oft ein Spiel mit diesem Torabstand für die Heimmannschaft ausgegangen ist.
Danke schön!
fehlt hier nicht ein =
wenn end 5 wäre wäre Hannover 96 auch noch dabei oder ?
4 weitere Kommentare anzeigen
wieso ist es jetzt hier Augsburg, wäre 4 nicht Hamburg? weil wenn 5 mit Hannover dann auch dabei wäre, dann müsste ich doch hier auch Hamburg auf der 4 mit einbeziehen?
du musst den Befehl anders lesen: Start 1.Stelle (Dortmund) , Ende 4. Stelle (Hamburg) , und jetzt jeden 2ten wert ab Startpunkt(wobei der Startpunkt eingeschlossen wird) --> also 1 dann 3 (dann 5 dann 7 usw)
warum muss da noch ein Komma hin ?
5 weitere Kommentare anzeigen
und woher weiß ich wann es um die Zeilen und wann um die Spalten geht?
Vor dem Komma habt ihr die ^Bedingung^ formuliert also, dass man nur die Zeilen haben möchte in denen Timezone = 0 steht. Und in der Aufgabenstellung steht man möchte einen Teildatensatz haben, dh wir möchten von den Zeilen in denen die Timezone = 0 ist alle Spalten haben, deshalb kommt nach dem Komma nichts mehr. Ganz allgemein muss man vor dem Komma hinschreiben welche Zeilen man will und nach dem Komme welche Spalten man will.(Vorausgesetzt es ist ein Dataframe/Matrix mit Zeilen und Spalten)
geht hier auch: which(data.sp500$close[data.sp.500$close>=1500&data.sp.500$close<=3000])
7 weitere Kommentare anzeigen
Bist du dir sicher?
es geht nicht. habe es ausprobiert
Zu dieser Frage wurde keine Stelle markiert
Geht bei WS16/17 Aufgabe 4 auch: max(data.dax30$Sie) Wenn nicht, warum braucht man dann den "which"-Befehl?
Mit which bekommst du die Stelle des Maxima raus :)
Würde hier auch gehen data.dax30[2,1] / data.dax30[2,4] ? Wie ist das in der Klausur, es gibt ja nicht nur 1nen Weg das zu machen?
Was soll das q hier bedeuten ?`
7 weitere Kommentare anzeigen
Kann mir bitte jmd sagen, wieso in der SS18 und der ganz letzten Aufgabe man trz mit 1-a/2 gerechnet hat? Da muss man ja auch nur die eine Seite berechnen...
Bitte :(
Kann man das auch mit dem seq befehl lösen ? wieso aber cbind und nicht rbind
4 weitere Kommentare anzeigen
warum vor dem c und nicht dahinter? ich will doch die Zeilen oder?
Nein, denn Data Frames werden immer in Spalten erstellt. auch wenn das in der Prüfung anders aufgelistet ist. R fügt vektoren in einem data Drama immer spaltenweise zusammen, soweit nichts weiter spezifiziert ist.
kann mir dachmal jemand erklären wann ich which und wann data nehme?
Which nimmst du, wenn du die Stelle haben möchtest, data benutzt du immer wenn du Spalten aufrufst etc, das ist praktisch die Bezeichnung vom Dataframe hier
geht hier auch ein & Zeichen anstatt Komma?
Also ich glaube man trennt das immer durch Komma :)
Muss hier nach dem 2017-2018 nicht ein Komma rein, steht so zumindest in der Lösung, auch wenn ich nicht verstehen wieso. Weiß das jemand?
5 weitere Kommentare anzeigen
wo müsste dann hier genau das Komma hin ? vor dem 1. = ?
ich glaube nach 2018",
Kann mir jemand sagen, ob folgende Lösung auch richtig wäre? data[1800, ]
Ja, da würde das selbe rauskommen
Vorsicht hier ist doch nach allen Daten aus der Saison 2017-2018 gefragt, nur weil im output das nur die 1800 ist heißt das nicht das es nur nicht mehr gibt! Es gibt insgesamt ja 1836 Beobachtungen, deswegen weiß ich nicht ob deine Lösung richtig wäre
Wie entscheidend ist es grundsätzlich, wenn man anstatt einer runden eine eckige klammer macht bzw umgekehrt? Falls es ne blöde Frage ist sorry aber ich hab keinen Plan von R und mache nur die altklausuren durch
3 weitere Kommentare anzeigen
Denkt ihr, man bekommt Punktabzüge wenn man die falsche Klammer nutzt ?
Die eckige Klammer bedeuten ungefähr sowas wie "an der Stelle ...". Zwar: data, an der Stelle, wo data$season=="2017-2018"
muss man p = und r = schreiben? ich dachte wir hätten das in der übung ohne geschrieben
Ich kenne es nur mit p= und r= aber du kannst es ja zur Not einfach mal selbst in R ausprobieren, ob das selbe Ergebnis rauskommt. Dann weißt du es sicher.
Zu dieser Frage wurde keine Stelle markiert
Geht bei WS16/17 Aufgabe 6 auch: data.dax30[, c(all, bmw)]
Wieso nicht Unentschieden?
3 weitere Kommentare anzeigen
oke, habs doch. Unentschieden hat zwar den höchsten Wert, aber Wenn man die Anzahl der Siege der Heimmanschaft in der Tabelle zusammenzählt, sind die größer als die Anzahl der Unentschieden
Und größer als die Siege der Auswärtsmannschaften
geht hier auch data.sp500[data.sp500$Open>2000]?...
Nein weil nach den Anzahl gefragt ist
Ich habe hier am Ende -1 vergessen. Es wird nach der relativen Kursentwicklung gefragt
1 weiteren Kommentar anzeigen
Nein. Wenn du ...[4]/...[1] rechnest, bekommst du ~0,954 raus, das ist aber nicht die relative Kursentwicklung. Deswegen musst du -1 rechnen um auf eine relative Kursentwicklung zu kommen (~ -0,046)
Könnte man das auch so lösen: data.dax30[data.dax30$bas , 1] / data.dax30[data.dax30$bas , 4] ?
Könnte jemand bitte mir erklären, warum nutzt man hier sum statt which?
1 weiteren Kommentar anzeigen
Wegen : Anzahl der Tage nicht Welche Tage
aber length(which(...)) müsste gehen oder?
wo finde ich das in der FS?
.
Glaube FS S.10
Kann mir wer sagen, warum ich da jetzt dchisq nehmen muss ?
Das frag ich mich auch :( die Verteilungsfunktion hat doch eigentlich ein p statt ein d
FS S. 15, in der Likelihoodfkt benutzt man die Wahrscheinlichkeitsfunktion (=kleines f), nicht die Verteilungsfkt, deshalb d
kann das nicht auch length.out sein?
1 weiteren Kommentar anzeigen
Kann das jmd für dummies erklären
mit length.out würdest du angeben, wie viele Elemente (also 2) der Vektor haben soll, die haben dann alle den gleichen Abstand. mit by bestimmst du den Abstand zwischen den Elementen
Achtung Fehler: hier fehlt noch x = 2
7 weitere Kommentare anzeigen
Maximieren geht mit dieser Funktion, da macht man irgendwas mit „1-„ müsstest du mal im R-Skript nachschauen
also: das Maximum mit der nlm-Funktion erhält man durch -nlm$minimum
Kannst du mir erklären wieso man genau da das Komma setzen muss ?
4 weitere Kommentare anzeigen
@ Anonymer Lippenstift, du meinst hier wird nicht die Tabelle unten angeschaut sondern oben die Spalteninfo und Spaltennamen. Deshalb kommt das Komma nicht bei Zeile sondern Spalte weil oben ist die Zeile angesprochen; unten wäre die Spalte angesprochen?
Ich denke, dass es so ist, anders erschließt es sich mir nicht. Falls es falsch ist, gerne korrigieren, nicht das ich Unsinn erzählt hab.
Wie komme ich darauf?
Du läufst hier i von 0 bis 3 ab. Im 1. Schritt setzt du also den Startwert von j (=1) und von i (=0) ein. Somit erhältst du 1 * 0 = 0. Dieses Ergebnis ist dein neues j (j=0). Nun setzt du im 2. Schritt für i = 1 ein, was 0 * 1 = 0 ergibt. Im 3. Schritt für i = 2: 0 * 2 = 0 und im letzten Schritt i = 3: 0 * 3 = 0. Somit hast du am Ende j = 0 :)
Vielen Dank für die schnelle und ausführliche Erklärung, habs endlich verstanden :-)
warum muss man das mit table machen? geht nicht auch which(airports$Timezone == max(airports$Timezone))
Also laut reference card von Baron MUSS deine lösung stimmen
wo gibt es diese Formel ? Gruß und Dank
FS S.10 „Empirischer Korrelationskoeffizient“ nach der Kovarianz (sxy) umformen
In der FS steht doch 1 - Alpha/2 oder nicht ?
Ja, aber da es sich um ein einseitiges KI handelt, fällt das /2 weg. Das ist bei einseitigen KI‘s immer so. Einfach merken
kommt das aus dem skript? habe noch nie davon gehört :(
FS S. 9 = Kurtosis...gibts nicht sooo oft mit ^4 in der Formelsammlung kann dir auch merken, dass das x.te Moment immer dem Exponeten entspricht
müsste das hier nicht (1-a)^2 heißen? Ist in der Lösung vom Lehrstuhl auch so geschrieben wie hier, aber macht für mich irgendwie keinen Sinn. Oder übersehe ich irgendetwas?
1 weiteren Kommentar anzeigen
ja muss es!
Danke fürs bestätigen, Leute :) Manchmal Frage ich mich ob der Lehrstuhl seine Lösungen überhaupt Korrektur liest :D
wie erkennt an das ?
Die Formeln kannst du theoretisch in der Formelsammlung nachschaun...meist zwischen S.6-13
Warum macht man hier which anstatt sum? Wann nimmt man überhaupt which?
5 weitere Kommentare anzeigen
Nein, mit length würde er dir einfach dir Anzahl der Elemente in $close ausgeben
@kaktus ich denk schon, aber nur wenn du nen Affenschwanz an Bedingungen mit dranhängst...
Ich habe noch ein paar Fragen zu R. Kann mir da jemand weiterhelfen? 1. wann nimmt man "&" und wann "," ? 2. wann verwendet man which und wann data um Daten abzufragen? 3. Warum wird eine Bedingung manchmal einfach noch angehängt und dann in einem extra Fall noch extra mit einer eckigen Klammer hinten angehängt? Bsp.: mean(airports$altitude[airports$altitude>200]) aber: sum(data.sp500$Open>2000) 4. Wann brauche ich "true" und wann nicht? Es gibt Aufgaben bei denen auf Wahrheit getestet wird aber "true" nicht mit eingegeben wird. Bsp.: darueber=data.dax30$sie>... warum schreibt man da nicht TRUE(...)
GUTE FRAGEN !!!!!!!!!!!!!!!!!!!!!!!!
Ich glaube du solltest dir nochmal die ersten paar Fallstudienübungen im Schnelldurchlauf anschauen :) da fehlt es dir an ganz grundlegenden Basics. Ist auch schwierig dir das jetzt alles ohne Zusammenhang zu einem Datensatz / einer Aufgabe zu erklären. & verknüpft gewisse Befehle , sagt R ob du eine Spalte oder eine Zeile abfragen willst which fragt die Stelle eines Wertes ab (also z.B. wo ist der größte Wert mit dem Befehl "which.max( )") etc. Eckige Klammern sagen R auf was du den Befehl einschränkst (hier möchtest du den Mittelwert aus allen Höhenangaben eines Flughafens, jedoch NUR Flughäfen mit einer Höhe über 2000 m z.B. Rechts dagegen möchtest du die Summe aus allen Eröffnungskursen (Open) des Datensatzes (Data.sp500) aufrufen, die größer als 2000 sind) Merke: Es gibt oft mehrere verschiedene Wege um auf die richtige Lösung zu kommen, es ist nicht falsch, wenn du true nicht mit eingibst, aber der Befehl z.B. nur die Werte ausgibt, die gesucht sind.
wieso which(data.dax$sie …) statt which(data.dax30....) am anfang? :)
5 weitere Kommentare anzeigen
Ja das von Andreas stimmt auch :)
Danke! :)
Wieso wird jetzt hier auf einmal cov genommen wir haben weder in der function var cov definiert noch wurde er in der angabe gegeben. Oder gehört das jetzt gar nicht mehr zur Aufgabe 8
6 weitere Kommentare anzeigen
Ja du hast recht, das muss cor=cor heißen
warum steht dann in der Lösung vom Lehrstuhl cov=cov???
Warum verwendet man hier cbind und runde Klammer. Würde auch data.sp500 und eckige Klammer funktionieren weil man ja einen teildatensatz anzeigen lassen soll und ich dachte das man bei teildatensatz immer eckige Klammer nehmen muss.
7 weitere Kommentare anzeigen
Und von wo weiß ich, dass es spaltenweise angeordnet werden soll. In der Aufgabenstellung wird das ja nicht explizit verlangt.
dann würde ich sagen, dass beides valide Ergebnisse sind.
Wie komme ich den auf den Wert? Ich hätte den rechts daneben genommen?
3 weitere Kommentare anzeigen
grundsätzlich heißt : auch "von...bis" Nur besagt die sequence formel ja selbst schon "von...bis". Und in der Klammer gibst du dann erst den startwert, dann Komma und dann den Endwert an. Das by kann auch weggelassen werden, weil R als Voreinstellung hat, dass nach dem 2. Komma by kommt.
Vielen Dank! hat mir sehr geholfen :)
Zu dieser Frage wurde keine Stelle markiert
ist es sinnvoll, ältere als diese viel R-Teile zu rechnen? alles danach erscheint mir sehr anders als diese 4. Gab es da eine Änderung des Stoffes bzw Änderung der Schwerpunkte?
7 weitere Kommentare anzeigen
Er meinte in der letzen Übung, dass man auf der Homepage des Lehrstuhls einsehen kann wann er angefangen hat und somit weiß man auch welche Klausuren für den r-Teil relevant für die Vorbereitung sind
Ok, dann scheint es ja zu stimmen :) danke für die Info! Dann leg ich den Fokus auch nur auf die ab 2016 und schau mir die älteren etwas oberflächlicher an.
Wie lässt sich das Komma hier und in der Aufgabe davor erklären?
Du möchtest die Spalten ansprechen deshalb (, xxxx). Würdest du die Zeilen adressieren dann wäre es (xxxx, )
Aber z.B bei der Aufgabe mit Gladbach als Heimmannschaft als Teildatensatz woher weiss ich dass ich da die Zeile adressiere?
Kann mir das einer erklären wie man das macht?
1 weiteren Kommentar anzeigen
Danke ?
Ich stelle mir das so vor : j=1, 1+(1+2+3)=7
Könnte ich das auch mit cov(x,y)/sd(x)*sd(y) ausdrücken ?
Wenn der Anfang des Codes nicht gegeben wäre, dann ja klar. Ist ja das selbe
Kann hier auch die logic Funktion verwendet werden?
Wie kommt man von diesen Zahlen auf die unteren zwei ? Kommt anscheinend öfter in den Altklausuren vor
Scroll mal in der gleichen Datei runter zu WS16/17 Aufgabe 2. da hab ich es erklärt
weis jmd was die x-Achse darstellen soll?
data$Goal_h - data$Goal_a Also bei 1, hat die Heimmannschaft mit einem Tor Unterschied gewonnen. Bei 0 gab es ein Unentschieden etc.
Zu dieser Frage wurde keine Stelle markiert
Dankeeeeeeeeee!!!