lehrkraefte:ks:ffstat2324

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
lehrkraefte:ks:ffstat2324 [2024/04/26 09:06]
Simon Knaus
lehrkraefte:ks:ffstat2324 [2024/05/31 17:47] (current)
Simon Knaus
Line 1: Line 1:
 +==== Lektion 09 ====
 +=== Ziele ===
 +  * Jeder/r weiss, wie das Histogramm einer normalverteilten Zufallsvariable aussieht welcher Prozentsatz innerhalb welches Intervall liegt.
 +  * Jede/r kann die $Z$-Transformierte (standardisierte) eines Merkmals ausrechnen.
 +  * Jede/r kann auf Grund von Histogrammen der $Z$-transformierten Merkmale entscheiden, ob ein Merkmal normalverteilt ist.
 +  * Optional: Jede/r kann die Wahrscheinlichkeit berechnen, dass ein Merkmal innerhalb / ausserhalb eines Intervalls zu liegen kommt.
 +
 +=== Aufträge ===
 +  * Theorie durchlesen
 +  * Für die Variablen aus der {{lehrkraefte:ks:ffstat2324:lektion09.xlsx|Excel-Datei}} zu Geburtsgewicht, Autopreise und Aktienrenditen
 +      * jeweils standardisieren 
 +      * in einer weiteren Spalte zwei Histogramme erstellen: Eines vor und eines nach der Standardisierung (z.B. mit Geogebra) und
 +      * entscheiden, ob die Variable (resp. das Merkmal) normalverteilt ist oder nicht.
 +  * Für die normalverteilten Variablen ein Intervall der Form $[a,b]$ angeben, in welchem $95\%$ der Daten zu liegen kommen.
 +  * Intelligenzquotient als Beispiel einer normalverteilten Zufallsgrösse. Schaut euch die Videos unten an.
 +      * [[https://www.nanoo.tv/link/v/ficYyhCe| Grundlagen IQ]]
 +      * [[https://www.nanoo.tv/link/v/uDtLxbWK| DorFuchs IQ]] und die Normalverteilung
 +      * //Optional:// [[https://www.pnas.org/doi/pdf/10.1073/pnas.1718793115?download=true|Forschungsartikel]] zur Entwicklung des IQ.
 + <hidden Lösungen Intervalle>
 +Achtung: Es sind nicht alle Grössen normalverteilt, insb. Autopreise.
 +{{ :lehrkraefte:ks:ffstat2324:histos_solution.png?nolink |}}
 +
 +Die Intervalle berechnen sich jeweils aus Mittelwert $\pm$ $2\sigma$:
 +  * Geburtsgewichte: $[2024.9, 4499.4]$
 +  * Autopreise: $[-4731.3, 95521.4]$
 +  * Aktienrenditen: $[-0.02345, 0.02378]$
 +
 +</hidden>
 +
 +=== Theorie ===
 +== Normalverteilung ==
 +Grosse Teile der Statistik beruhen auf der sogenannten Normaleverteilung. Eine Grösse resp. ein Merkmal ist normalverteilt, wenn die Ableitung der Verteilungsfunktion durch $f(x)=\frac{1}{\sqrt{2\pi}}e^{-\frac{x^2}{2}}$ gegeben ist. Für unsere Zwecke erscheint das aber kryptisch und wir beschränken uns darauf, festzuhalten, dass ein Histogram einer Standard-Normalverteilten Zufallsvariable wie folgt aussieht:
 +{{ :lehrkraefte:ks:ffstat17:hist_single.png?nolink |}}
 +
 +== Aussehen Normalverteilung ==
 +Dabei ist wichtig festzuhalten, dass die Anzahl der Klassen in Histogramm offensichtlich willkürlich ist. Der theoretische Unterbau besagt aber, dass die Klassen beliebig klein gewählt werden können und das Histogramm zum Schluss (bei unendlich kleiner Klassenbreite und unendlich vielen Beobachtungen) dem Graphen der Funktion $f$ von oben entspricht.
 +
 +{{ :lehrkraefte:ks:ffstat2324:hist_mult.png?nolink |}}
 +
 +== Standardnormalverteilung und Standardisieren ==
 +Um nun sicher zu stellen, dass man immer von der gleichen Normalverteilung spricht, transformiert man Merkmale. Wenn $\mu_X=\frac1n\sum_{i=1}^n x_i$ und $\sigma_X=\sqrt{\frac1{n-1}\sum_{i=1}^n(x_i-\mu_X)^2}$ ist, dann sagt man, dass das Merkmal $Z=\frac{X-\mu}{\sigma}$ das **standardisierte** Merkmal von $X$ ist. Man kann dann jede Beobachtung $x_i$ zu $z_i=\frac{x_i-\mu}{\sigma}$ standardisieren.
 +
 +^ ^$x_i$^$x_i-\mu_X$^$\frac{x_i-\mu_X}{\sigma_X}$^
 +| |-5|-9|-1.21|
 +| |5|1|0.13|
 +| |5|1|0.13|
 +| |0|-4|-0.54|
 +| |15|11|1.48|
 +|$\mu$|4|0|0|
 +|$\sigma$|7.41|7.41|1|
 +
 +
 +Berechnet man nun den Mittelwert von $Z$ (geschrieben: $\mu_Z$) und die Standardabweichung von $Z$ (geschrieben: $\sigma_Z$) so kommt -- egal wie $X$ ursprünglich verteilt ist -- heraus, dass $\mu_Z=0$ und $\sigma_Z=1$ ist.
 +<hidden Beweis>
 +Es gilt ja $\mu_z=\frac{1}{n}\sum_{i=1}^n z_i = \frac{1}{n}\sum_{i=1}^n (x_i-\mu_x) = \frac{1}{n}\sum_{i=1}^n x_i -n\cdot\frac1n \mu_x = \mu_x-\mu_x=0$.
 +
 +Das gleiche Argument kann für $\sigma_Z$ geführt werden: Die Rechnung wird etwas garstiger, funktioniert aber genau gleich.
 +</hidden>
 +
 +Ist nun ein Merkmal $X$ **normalverteilt** so ist das standardisierte Merkmal **standardnormalverteilt**, das heisst, es ist normalverteilt Standardabweichung $\sigma=1$ und Mittelwert $\mu=0$.
 +
 +  
 +== Wahrscheinlichkeiten == 
 +Für standard-normalverteilte Merkmale -- und damit auch für normalverteilte Merkmale -- können sehr starke Aussagen über die Verteilung gemacht werden. So gilt z.B., dass im Intervall $[\mu_X-\sigma_X,\mu_X+\sigma_X]$ $68\%$ der Daten liegen. Für andere Vielfachen gilt die Tabelle unten:
 +^ ^k ^ Prozent in $[\mu_x-k\cdot\sigma_X,\mu_x+k\cdot\sigma_X]$^
 +| |1 | $68.3\%$ |
 +| |2 | $95.4\%$ |
 +| |3 |$99.7\%$ |
 +| |4| $\approx 100\%$ |
 +
 +
 +Hat ein normalverteiltes Merkmal zum Beispiel den Mittelwert $\mu_X=11.2$ und $\sigma_X=3.1$ dann liegen ca. $68\%$ der Daten im Intervall $[8.1,14.3]=[11.2-3.1,11.2+3.1]$, das heisst in einem Intervall der Breite $2\sigma$, zentriert um den Mittelwert, liegen ca. $68\%$ der Daten.
 +
 +== Relevanz ==
 +Der Begriff einer (Standard-)normalverteilten Variable ist sehr wichtig: Einerseits, weil theoretisch gezeigt werden dann, dass die Summe vieler gleichartiger und unabhängiger Zufälle **immer** normalverteilt ist und andererseits weil eben gerade die Eigenschaft dazu führt, dass viele Daten in der "Welt da draussen" normalverteilt sind.
 +
 +Aus einer mathematischen Sicht gilt noch anzumerken, dass zum Teil auch der Logarithmus eines Merkmals normalverteilt sein kann. Dies ist dann der Fall, wenn davon auszugehen ist, dass das Merkmal das Produkt vieler gleichartigen und unabhängigen Zufällen ist.
 +
 +
 +=== Daten in R ===
 +== Daten Einlesen == 
 +<code>
 +# Daten aus Clipboard
 +inputdata <- read.table(file("clipboard"), sep = "\t")
 +# Gibt ein Dataframe aus der Excel-Zwischenablage zurück, getrennt durch
 +# Tabulator (so trennt Excel)
 +
 +# oder
 +inputdata <- readClipboard(file("clipboard"))
 +# Falls eine einzelne Spalte
 +
 +# oder
 +inputdata <- read.csv2("filenname.csv")
 +# Trennung durch Semikolon, daher csv2
 +</code>
 +== Daten Standardisieren ==
 +<code R>
 +insp <- inputdata$V2
 +mu <- mean(insp)
 +sd <- sd(insp)
 +hist(insp)
 +hist((insp-mu)/sd)
 +</code>
 +Wer möchte, kann ''hist'' noch mit ''breaks'' kontrollieren, damit gleich viele Säulen gezeichnet werden. Möchten man die Histogramme //untereinander// anzeigen, kann mit ''par(mfrow=c(2,1))'' als erste Zeile gestartet werden.
 +
 +<hidden Lösung>
 +<code R>
 +inputdata <- read.table(file("clipboard"), sep = "\t")
 +head(inputdata)
 +insp <- inputdata$V1
 +mu <- mean(insp)
 +sd <- sd(insp)
 +par(mfrow = c(2, 1))
 +hist(insp, breaks = 40,freq=F,main="Original")
 +hist((insp - mu)/sd, breaks = 40,freq=F,main="Z-Score")
 +curve(dnorm,add=T,col="red",lwd=2)
 +
 +</code>
 +</hidden>
 + 
 +
 +==== Lektion 08 ====
 +
 +=== Ziele ===
 +
 +  * Jede/r kann eine eindimensionale Regression mit R durchführen und interpretieren.
 +  * Jede/r kann das Problem (mathematisch) formulieren, dessen Lösung die Ausgleichsgerade ist.
 +  * Jede/r kann eine Schätzung abgeben, wie viel ein gefahrener Kilometer gemäss dem eigenen Regressionsmodell kostet.
 +
 +=== Aufträge ===
 +  * Theorie Regression
 +    * Theorie Regression unten durcharbeiten (oder zuhören)
 +    * [[https://bldsg-my.sharepoint.com/:v:/r/personal/simon_knaus_ksbg_ch/Documents/streammovies/ffstat/ffstat_regression_r.mp4?csf=1&web=1&e=5kM9aV&nav=eyJyZWZlcnJhbEluZm8iOnsicmVmZXJyYWxBcHAiOiJTdHJlYW1XZWJBcHAiLCJyZWZlcnJhbFZpZXciOiJTaGFyZURpYWxvZy1MaW5rIiwicmVmZXJyYWxBcHBQbGF0Zm9ybSI6IldlYiIsInJlZmVycmFsTW9kZSI6InZpZXcifX0%3D|Video zur Durchführung Regression in R]] anschauen
 +  * Praxis Regression:
 +    * Regression in den beiden [[https://bldsg-my.sharepoint.com/:f:/r/personal/simon_knaus_ksbg_ch/Documents/streammovies/ffstat/lektion08?csf=1&web=1&e=u30s3w|Beispiel-Daten]] (''bsp1.csv'' und ''bsp2.csv'') durchführen.
 +      * Scatterplot erstellen
 +      * Regression durchführen, Geradengleichung aufstellen und Koeffizienten interpretieren. 
 +      * Mögliche Fragen:
 +        * Wie lautet die Gleichung der beiden Geraden?
 +        * Welche Gerade ist <<besser>>? 
 +    * Regression für ein BMW-Modell durchführen
 +      * Eine Regression durchführen, bei der der Preis auf die gefahrenen Kilometer regressiert wird. Modell (Geradengleichung) aufstellen und <<Kosten>> eines Kilometers (von 1000 Kilometern) angeben. 
 +      * Freiwillig: Anstelle des Preises kann auch der Logarithmus des Preises als $y$-Variable verwendet werden. Wird das Modell ($R^2$) besser oder schlechter? Was heisst das für die Interpretation?
 +
 +=== Theorie === 
 +Bei der Regression geht es letztendlich darum, den Zusammenhang, der in der letzten Lektion mit der Korrelation beobachtet worden ist, genauer zu beschreiben.
 +
 +Die Idee der Regression ist, die Summe der quadratischen Abstände einer Geraden zu den beobachteten Datenpunkten zu minimieren. Dabei ist wichtig zu beachten, dass nur die **vertikalen** Abstände betrachtet werden:
 +{{ :lehrkraefte:ks:ffstat1819:linreg01.png?nolink&400 |}}
 +
 +Jede lineare Funktion $g$ kann als $g:y=mx+q$ beschrieben werden. Man sucht also $m$ und $q$ so, dass die quadrierte Summe der Längen der gestrichelten Linien minimal ist. 
 +
 +Streng mathematisch ausgedrückt hat man die Wertepaare $(x_1,y_1),\, (x_1,y_1),\,(x_3,y_3), \ldots,(x_n,y_n)$. Hat man nun einen beobachtete $x$-Wert $x_i$ so ist die Vorhersage der Gerade für den $y$-Wert $mx_i+q$. Für ein gegebenes $m$ und $q$ ist damit der Abstand des $i$-ten Datenpunktes also $y_i-(mx_i+q)$, entsprechend ist der quadrierte Abstand des $i$-ten Datenpunktes $y_i-(mx_i+q))^2$. 
 +
 +Schliesslich sucht man eben $m$ und $q$ so, dass die Summe
 +$$
 +(y_1-(mx_1+q))^2+(y_2-(mx_2+q))^2+(y_3-(mx_3+q))^2+\cdots (y_n-(mx_n+q))^2=\sum_{i=1}^n (y_i-(mx_i+q))^2
 +$$
 +minimal ist, das heisst, dass die Summe der quadrierten Abstände möglichst klein ist.
 +
 +Betrachtet man diese Summe genauer, stellt man fest, dass dieser Ausdruck ein quadratischer Ausdruck ist, wenn man $m$ und $q$ als Variablen betrachtet. In anderen Worten, würde man -- für gegebene Datenpunkte werden $x_i$ und $y_i$ zu Zahlen -- diesen Ausdruck als Graph darstellen, erhielte man eine Parabel. Für Parabeln kann der Scheitelpunkt, welcher das Minimum der Parabel ist, einfach mit der Scheitelpunktformel berechnet werden.
 +
 +Mit dieser Feststellung kann dann $m= \frac{\sum\limits_{i=1}^n (x_i - \bar x)(y_i - \bar y)}{\sum\limits_{i=1}^n (x_i - \bar x)^2}$ und $q=\bar y-m\bar x$ berechnet werden. Die Berechnung von $m$ und $q$ mit diesen Formeln führt zum Ziel, ist aber umständlich. Alle vernünftigen Datenanalyse-Programme können sogenannte Regressionsanalysen -- oder eben Ausgleichsgeraden -- berechnen.
 +
 +=== R Tipps ===
 +Im Beispiel haben wir ein Datensatz gehabt mit den Spalten ''x'' und ''y''. Die Idee ist, dass wir die gleichen Daten aus unseren Autodaten erhalten:
 +Möchte man ausschliesslich die Daten eines Modells, könnte man wie folgt vorgehen:
 +
 +<code R datenaufbereiten.r>
 +setwd("C:/Users/Simon.Knaus/git/ffstat/")
 +cardata <- read.table("bmw_data.csv",header = T,sep=";")
 +head(cardata) # Erste Zeilen (6) anzeigen
 +unique(cardata$model)
 +unique(cardata$treibstoff)
 +
 +# Nur die Modelle 'x1'
 +selected <- cardata$model=="x1" 
 +# wie schaut der Vektor aus?
 +head(selected)
 +# Wie viele sind's? sum zählt TRUE als 1, FALSE als 0
 +sum(selected)
 +
 +# Daten auswählen, d.h. Zeilen auswählen
 +regdata <- cardata[selected,]
 +
 +
 +
 +</code>
 +
 +
 +
 +=== Lösungen ===
 +
 +<hidden>
 +{{ :lehrkraefte:ks:ffstat1819:regbmw01.png?direct |}}
 +
 +{{ :lehrkraefte:ks:ffstat1819:regbmw02.png?direct |}}
 +Berechnet man für die normalen Preise (nicht $\log$) die Regressiongerade, erhält man:
 +  * x1:  $y = -0.3029\cdot x+47132$ 
 +  * x3:  $y = -0.2412\cdot x+52607$ 
 +  * x4:  $y = -0.3317\cdot x+65518$ 
 +  * x5:  $y = -0.35\cdot x+78561$ 
 +  * x6:  $y = -0.3912\cdot x+82847$ 
 +
 +Für den X1 <<kostet>> also ein gefahrener Kilometer ca. 30 Rp, für den X6 kostet dieser ca. 39 Rp
 +
 +</hidden>
 +
 +==== 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, wobei der Preis auf der $y$-Achse ist und eine erklärende Variable auf der $x$-Achse ist. Was wären sinnvolle Variablen für die $x$-Achse, für welche du einen Zusammenhang mit dem Autopreis vermutest?
 +    * Berechne die Korrelation und das Bestimmtheitsmass für die gewählten Variablen.
 +    * //Optional//: Berechne die Korrelation mit der Formeln unten (anstatt ''cor''). 
 +
 +    * Welche Korrelationen (Vorzeichen und Stärke) vermutest du im Datensatz? Welche zwei Variablen sind jeweils wie korreliert?
 +  * Schau dir die Webseite {{https://tylervigen.com/spurious-correlations|Tylver Vigen}} an: Wähl dir das widersinnigste Beispiel. Gibt es eine Erklärung dafür? 
 +=== 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.
 +
 +{{ :lehrkraefte:ks:ffstat17:corr01.png?nolink&400 |}}
 +
 +Nun gibt es ein Mass für diesen Zusammenhang: Die Stärke wie auch die Richtung des Zusammenhangs der Mermkale $X$ und $Y$, $R_{xy}$, wird mit der Korrelation gemessen:
 +$$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:
 +
 +{{ :lehrkraefte:ks:ffstat17:correx2.png?nolink |}}
 +Möchte man die Stärke der Korrelation messen, quadriert man $R_{xy}$ zur $R^2=R_{xy}^2$. Man spricht von einem **<<starken Zusammenhang>>** wenn **$0.5\leq R^2\leq 1$** ist, von einem **<<moderaten Zusammenhang>>** wenn **$0.25\leq R^2 < 0.5$** ist, und schliesslich von einem **<<schwachen Zusammenhang>>** wenn **$0.1\leq R^2<0.25$** ist. Ist schliesslich $R^2$ kleiner so liegt kein Zusammenhang vor. $R^2$ wird auch **Bestimmtheismass** genannt.
 +
 +Zusammenfassend kann gesagt werden, dass Richtung und Stärke eines linearen Zusammenhangs gemessen werden kann:
 +
 +  * **Richtung:** Eine positive Korrelation beschreibt eine <<je-mehr-desto-mehr>> Beziehung, eine negative Korrelation beschreibt eine <<je-weniger-desto-mehr>> Beziehung.
 +  * **Stärke:** Um nur eine Aussage über die Stärke des Zusammenhangs unabhängig der Richtung zu machen, verwendet man das Bestimmtheitsmass $R^2$, die quadrierte Korrelation. 
 +
 +=== 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 ''plot'' erstellt werden:
 +<code R plot.r>
 +x <- c(2,3,7,10)
 +y <- c(7,1,2,30)
 +plot(x, y, main="Title")
 +</code>
 +<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="Parabel")
 +plot(x, y, main="Parabel",type="l")
 +plot(x, y, main="Parabel",type="h")
 +</code>
 +</hidden>
 +
 +Die Korrelation kann mit ''cor'' berechnet werden:
 +<code R plot.r>
 +x <- c(2,3,7,10)
 +y <- c(7,1,2,30)
 +R <- cor(x,y)
 +R
 +R^2
 +</code>
 +
 +<hidden Optional: Manuelle Umsetzung>
 +In R werden Vektoren Element für Element multipliziert: Der Nenner könnte also wie folgt berechnet werden:
 +<code> 
 +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)))
 +</code>
 +</hidden>
 +
 +
 +
 +
 +=== Korrelationen BMW Datensatz nach Modell ===
 +{{ :lehrkraefte:ks:ffstat17:corrbmw.png?nolink |}}
 +<hidden R-Code>
 +<code correlation_plot.R>
 +library(corrplot)
 +png("C:/temp/corrbmw.png",width=300,height=1500)
 +par(mfrow=c(2,3))
 +for(mod in sort(unique(bmw$model))){
 +  tbmw = subset(bmw,model==mod)
 +  corbmw <- tbmw[,sapply(tbmw,is.numeric) & sapply(tbmw,function(inv){sd(inv,na.rm=T)>0})]
 +  corrplot(cor(corbmw,use="pairw"),main=mod,mar=c(0,0,1,0))  
 +}
 +dev.off()
 +</code>
 +</hidden>
 +
 +
 ==== Lektion 06 ==== ==== Lektion 06 ====
 === Ziele === === Ziele ===
Line 15: Line 319:
       * Überlege dir alternative Masse, um Konzentration resp. Ungleichverteilung (im Einkommenskontext) zu messen.       * Ü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://padlet.com/simon_knaus1/ideen-f-r-eigenes-projekt-7kvoibxpf80cvt7t|hier]] fest.+  * Besprich mit deinem/r Nachbar:in Ideen für eine eigene Projekte, welche untersucht werden könnte und halte diese [[https://padlet.com/simon_knaus2/eigene-projekte-ui3xmrp370et2n43|hier]] fest.
  
  
Line 32: Line 336:
  
 Zeichnet man nun die Punkte $(\text{Kumulierte relative Anzahl},\text{Kumulierte relative Einkommenssumme})=(x,y)$ und verbindet diese, erhält man die **Lorenzkurve**: Zeichnet man nun die Punkte $(\text{Kumulierte relative Anzahl},\text{Kumulierte relative Einkommenssumme})=(x,y)$ und verbindet diese, erhält man die **Lorenzkurve**:
-{{ :lehrkraefte:ks:lorenzkurve.png?300 |}}+{{ :lehrkraefte:ks:lorenzkurve.png?400 |}}
  
 ---- ----
Line 73: Line 377:
  
  
-<hidden R Code>+<hidden Lösung als R Code>
 <code R> <code R>
 computeLorenzCurve <- function(x, plot = T) { computeLorenzCurve <- function(x, plot = T) {
Line 432: Line 736:
  
 <code R | intro.R> <code R | intro.R>
-setwd("C:/Users/Simon.Knaus/Dropbox/git/ffstat") #Arbeitsverzeichnis bestimmen+setwd("C:/Users/Simon.Knaus/git/ffstat") #Arbeitsverzeichnis bestimmen
 cardata <- read.table("cardata.csv",sep=";",header=TRUE) #Daten einlesen als Dataframe cardata <- read.table("cardata.csv",sep=";",header=TRUE) #Daten einlesen als Dataframe
 head(cardata) # Erste Zeilen (6) anzeigen head(cardata) # Erste Zeilen (6) anzeigen
  • lehrkraefte/ks/ffstat2324.1714115202.txt.gz
  • Last modified: 2024/04/26 09:06
  • by Simon Knaus