Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
lehrkraefte:ks:ffstat2324 [2024/03/22 16:48] Simon Knaus |
lehrkraefte:ks:ffstat2324 [2024/05/03 17:47] Simon Knaus |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ==== Lektion 07 ==== | ||
+ | === Ziele === | ||
+ | * Jede/r kann einen Scatterplot von zwei Datenreihen / Merkmalen erstellen | ||
+ | * Jede/r kann die Korrelation von zwei Datenreihen / Merkmalen berechnen | ||
+ | * Jede/r kann die Korrelation interpretieren und die Masszahl Punktewolken aus dem Scatterplot zuordnen. | ||
+ | * Erste Ideen für ein eigenes Projekt. | ||
+ | |||
+ | === Auträge === | ||
+ | * Lies die Theorie unten durch. | ||
+ | * Korrelation im Auto-Datensatz | ||
+ | * Wähle ein BMW-Modell und erstelle eine Scatterplott, | ||
+ | * Berechne die Korrelation und das Bestimmtheitsmass für die gewählten Variablen. | ||
+ | * // | ||
+ | |||
+ | * Welche Korrelationen (Vorzeichen und Stärke) vermutest du im Datensatz? Welche zwei Variablen sind jeweils wie korreliert? | ||
+ | * Schau dir die Webseite {{https:// | ||
+ | === Theorie === | ||
+ | Wird ein Zusammenhang zwischen zwei kardinalen Merkmalen vermutet, sollte als erstes ein sogenannter Scatterplot erstellt werden. Zu diesem Zweck, wird das eine Merkmal auf der $x$-Achse und das andere Merkmal auf der $y$-Achse abgetragen. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Nun gibt es ein Mass für diesen Zusammenhang: | ||
+ | $$R_{xy}=\frac{\sum\limits_{i=1}^n (x_i-\bar{x})(y_i-\bar{y})}{\sqrt{\sum\limits_{i=1}^n (x_i-\bar{x})^2 \sum\limits_{i=1}^n (y_i-\bar{y})^2}}$$ | ||
+ | Die Korrelation nimmt nur Werte zwischen $-1$ und $1$ an. In Excel wie auch in R sind Funktionen zur Berechnung der Korrelation hinterlegt. Wichtig dabei ist zu beachten, dass die Korrelation nur einen **linearen Zusammenhang** misst: | ||
+ | |||
+ | {{ : | ||
+ | Möchte man die Stärke der Korrelation messen, quadriert man $R_{xy}$ zur $R^2=R_{xy}^2$. Man spricht von einem **<< | ||
+ | |||
+ | Zusammenfassend kann gesagt werden, dass Richtung und Stärke eines linearen Zusammenhangs gemessen werden kann: | ||
+ | |||
+ | * **Richtung: | ||
+ | * **Stärke: | ||
+ | |||
+ | === Korrelation und Kausalität === | ||
+ | Auch wenn $R^2$ sehr gross ist, muss das nicht heissen, dass in Tat und Wahrheit wirklich ein Zusammenhang dieser beiden Variablen vorliegt. Es kann durchaus sein, dass die Korrelation zufällig zu Stande gekommen ist. Man spricht dann auch von **Scheinkorrelation** oder in Englisch von **spurious correlation**. | ||
+ | |||
+ | Kausalität in diesem Zusammenhang besagt, dass ein Merkmal ein anderes bedingt: So ist zum Beispiel bei der Thematik Schuhgrösse und Körpergrösse wirklich davon auszugehen, dass ein kausaler Zusammenhang besteht. | ||
+ | |||
+ | === Umsetzung in R === | ||
+ | In R können Scatterplots mit '' | ||
+ | <code R plot.r> | ||
+ | x <- c(2,3,7,10) | ||
+ | y <- c(7,1,2,30) | ||
+ | plot(x, y, main=" | ||
+ | </ | ||
+ | <hidden Optional: Funktionen zeichnen> | ||
+ | Mit dem gleichen Befehl könnten auch Funktionen gezeichnet werden: | ||
+ | <code R plot.r> | ||
+ | x <- seq(-3,3, by = 0.1) | ||
+ | y <- x^2 | ||
+ | plot(x, y, main=" | ||
+ | plot(x, y, main=" | ||
+ | plot(x, y, main=" | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | Die Korrelation kann mit '' | ||
+ | <code R plot.r> | ||
+ | x <- c(2,3,7,10) | ||
+ | y <- c(7,1,2,30) | ||
+ | R <- cor(x,y) | ||
+ | R | ||
+ | R^2 | ||
+ | </ | ||
+ | |||
+ | <hidden Optional: Manuelle Umsetzung> | ||
+ | In R werden Vektoren Element für Element multipliziert: | ||
+ | < | ||
+ | x <- c(2,3,7,10) | ||
+ | y <- c(7,1,2,30) | ||
+ | x-mean(x) | ||
+ | (x-mean(x))*(y-mean(y)) | ||
+ | sum((x-mean(x))*(y-mean(y))) | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | === Korrelationen BMW Datensatz nach Modell === | ||
+ | {{ : | ||
+ | <hidden R-Code> | ||
+ | <code correlation_plot.R> | ||
+ | library(corrplot) | ||
+ | png(" | ||
+ | par(mfrow=c(2, | ||
+ | for(mod in sort(unique(bmw$model))){ | ||
+ | tbmw = subset(bmw, | ||
+ | corbmw <- tbmw[, | ||
+ | corrplot(cor(corbmw, | ||
+ | } | ||
+ | dev.off() | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== Lektion 06 ==== | ||
+ | === Ziele === | ||
+ | * Lorenzkurve kennen, << | ||
+ | * Gini-Koeffizient kennen und interpretieren können. | ||
+ | * Erste Ideen eines eigenen Projekts generieren | ||
+ | |||
+ | === Aufträge === | ||
+ | * Theorie Lorenzkurve lesen | ||
+ | * Beispiel mit Hilfe der {{lehrkraefte: | ||
+ | * Wahlweise: | ||
+ | * Eigenen R Code schreiben | ||
+ | * Gini und Lorenzkurve weiter vertiefen mit | ||
+ | * {{https:// | ||
+ | * Auf der {{https:// | ||
+ | * Überlege dir alternative Masse, um Konzentration resp. Ungleichverteilung (im Einkommenskontext) zu messen. | ||
+ | | ||
+ | * Besprich mit deinem/r Nachbar:in Ideen für eine eigene Projekte, welche untersucht werden könnte und halte diese [[https:// | ||
+ | |||
+ | |||
+ | === Theorie === | ||
+ | |||
+ | Auf Grund der Lorenzkurve kann ausgesagt werden, wie stark die Merkmale (resp. deren Ausprägung) konzentriert sind (ein **Konzentrationsmass**). Das klassische Beispiel dabei ist die Einkommenverteilung. Die Frage, die dabei gestellt, resp. beantwortet wird, ist "Wie viel Prozent der Leute (Köpfe) verdienen wie viel Prozent des Gesamteinkommens?>> | ||
+ | |||
+ | ^Einkommen ^Anzahl Personen ^Kumululierte relative Anzahl ^Einkommenssumme ^Kumululierte relative Einkommenssumme| | ||
+ | |2317| 10| 0.20| 23' | ||
+ | |2552| 11| 0.42| 28'072 | 0.37| | ||
+ | |2787| 14| 0.70| 39' | ||
+ | |3022| 8| 0.86| 24' | ||
+ | |3257| 3| 0.92| 9'771| 0.90| | ||
+ | |3492| 4| 1.00| 13' | ||
+ | |^Total| 50| 138' | ||
+ | |||
+ | Zeichnet man nun die Punkte $(\text{Kumulierte relative Anzahl}, | ||
+ | {{ : | ||
+ | |||
+ | ---- | ||
+ | Zwischenfrage: | ||
+ | <hidden Lösung> | ||
+ | Würden alle gleich viel verdienen, lägen die Punkte auf der Winkelhalbierenden. | ||
+ | </ | ||
+ | |||
+ | ---- | ||
+ | === Beispiele === | ||
+ | |||
+ | Als Mass der Ungleichverteilung verwendet nun die Fläche, welche die Lorenzkurve mit der Winkelhalbierenden einschliesst. Diese Fläche nennt man auch **Gini--Koeffizient** | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Als Beispiel für die Lorenzkurve wiederum die 5 BMW Modelle und ihre Preise. Achtung: Es handelt sich dabei nicht um ein Einkommen! | ||
+ | {{ : | ||
+ | |||
+ | Die Lorenzkurve macht im Allgemeinen nur Sinn für Merkmale, mit positiven Werten (Preis, Einkommen, etc.) | ||
+ | === Umsetzung in R === | ||
+ | In R kann die Lorenzkurve ebenfalls umgesetzt werden. Wichtig sind dabei folgende Funktionen | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | Versuche mit den Funktionen oben, die richtigen $x$- und $y$-Werte zu erstellen und diese an anschliessend zu zeichnen. | ||
+ | |||
+ | Versuche zuerst mit << | ||
+ | <code R> | ||
+ | dummydata <- c(70, 40, 70, 50, 30, 80, 90, 90, 40, 80, 40, 20, 40, 10, | ||
+ | 40, 60, 100, 30, 30, 70, 50, 70, 50, 40, 70, 60, 90, 50, 90) | ||
+ | xwerte <- ... | ||
+ | ywerte <- ... | ||
+ | |||
+ | plot(xwerte, | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | <hidden Lösung als R Code> | ||
+ | <code R> | ||
+ | computeLorenzCurve <- function(x, plot = T) { | ||
+ | nobs <- length(x) | ||
+ | sortedx <- sort(x) | ||
+ | abscissa <- (1: | ||
+ | ordinate <- cumsum(sort(x))/ | ||
+ | | ||
+ | if (plot) { | ||
+ | plot(ordinate, | ||
+ | abline(a = 0, b = 1) | ||
+ | } | ||
+ | | ||
+ | return(cbind(abscissa, | ||
+ | } | ||
+ | </ | ||
+ | </ | ||
==== Lektion 05 ==== | ==== Lektion 05 ==== | ||
=== Ziele === | === Ziele === | ||
Line 61: | Line 248: | ||
=== Lösungen: Boxplot der Preise nach Modell === | === Lösungen: Boxplot der Preise nach Modell === | ||
+ | < | ||
{{ : | {{ : | ||
{{ : | {{ : | ||
+ | </ | ||
<!-- | <!-- |