rollDie <- function() {
isSix <- TRUE
sum <- 0
while (isSix) {
thissample <- sample(6, 1)
if (thissample + sum > 18)
break
sum <- sum + thissample
isSix <- thissample == 6
}
if (sum == 18) {
sum <- 0
}
return(sum)
}
dier <- dier <- replicate(1e+06, rollDie())
hist(dier, breaks = seq(-1, 17), main = "Histogramm Eile mit Weile", xlab = "Augenzahl", ylab = "Absolute Häufigkeit", col = "lightblue")
==== Lektion 04 ====
{{ :lehrkraefte:ks:ffstat17:histogramme.png?direct |}}
=== Ziele ===
* Jede/r kann ein Histogramm erklären.
* Jede/r kann Mittelwert, Modus, Median und beliebige Quantile von Hand und mit Excel/R ausrechnen (Lagemasse)
* Jede/r kann Varianz, Standardabweichung, IQA ausrechnen von Hand und mit Excel/R (Skalenmasse)
* Jede/r kann auf Grund einem Histogramm passende Lagen- und Skalenmasse zuordnen
=== Auftrag ===
* Definitionen auf Unterlagen vom letzten Mal nachlesen und mit [[#Definitionen|Begriffen]] unten ergänzen.
* Berechne die genannten Grössen für ''-2.9, 25.4, -12.3, -38.5, 4.2, 23.7, -0.4, 1.5, -23.3, 21.'' von Hand und mit Excel
* Berechne für verschieden BMW Modelle ein Histogram und notiere Mittelwert, Median, Standardabweichung und IQA darunter. Mögliche Vorgehensweise dabei wäre
* Alle Preise in ein neues Tabellenblatt kopieren
* Jeweils in den ersten Zeilen die Grössen für die darunterliegenden Werte ausrechnen und dann Formeln nach rechts ziehen.
computeLorenzCurve <- function(x, plot = T) {
nobs <- length(x)
sortedx <- sort(x)
abscissa <- (1:nobs)/nobs
ordinate <- cumsum(sort(x))/sum(x)
if (plot) {
plot(ordinate, abscissa, main = "Lorenzkurve")
abline(a = 0, b = 1)
}
return(cbind(abscissa, ordinate))
}
#Daten aus Clipboard
inputdata <- read.table(file("clipboard"), sep="\t") #returns dataframe from excel clipboard separated by tab
#oder
inputdata <- readClipboard(file("clipboard")) #if single column
#oder
inputdata <- read.csv2("filenname.csv") #separation by semicolon
==== Lektion 08 ====
=== 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.
=== 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.
* Welche Korrelationen (Vorzeichen und Stärke) vermutest du im Datensatz? Welche zwei Variablen sind jeweils wie korreliert?
* Schau dir die Webseite {{http://tylervigen.com/old-version.html|Tylver Vigen}} an: Wähl dir das widersinnigste Beispiel. Gibt es eine Erklärung dafür? (Die {{http://www.tylervigen.com/spurious-correlations|aktuelle Version dieser Webseite}} ist schöner, allerdings ohne Tabellen)
=== 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 **<
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()
## Bsp Video Daten aus Excel in der Zwischenablage:
regdf <- read.table(file("clipboard"), sep = "\t", header = T)
lm(y ~ x, data = regdf)
summary(lm(y ~ x, data = regdf))
## Syntethische Daten
# Parameter um Daten zu generieren
nobs <- 40
m <- 3
q <- -2
# Generieren der Daten
# Zufällige x Werte
xdat <- runif(nobs) * 10
# y Werte gemäss y=mx+q plus Zufall
ydat <- m * xdat + q + rnorm(nobs, sd = 4)
# Zusammenfassen in dataframe
regdf <- data.frame(x = xdat, y = ydat)
# Regressionsmodell
lm(y ~ x, data = regdf)
# Übersicht Regressionsmodell
summary(lm(y ~ x, data = regdf))
bmwdata <- read.table(file("clipboard"), sep = "\t", header = T)
head(bmwdata)
regressionsmodell <- lm(preis ~ kilometer + alter_jahre + verbrauch + diesel_ja, data = bmwdata)
summary(regressionsmodell)
> oder nicht).
Für den ELISA-HIV Test sind die Fehlerwahrscheinlichkeiten der 1. und 2. Art bekannt (als populärwissenschaftliche Quelle z.B. [[https://www.livestrong.com/article/133176-accuracy-elisa-hiv-test/| diese Webseite]]):
^ ^ ^ Modellwelt (Tatsächlicher Gesundheitszustand) ^^
| | | Ja | Nein |
^Beob. Welt (Diagnose) |Ja | 99.3% | 0.7% |
|::: |Nein | 0.03% | 99.97% |
Man sagt der Fehlerwahrscheinlichkeiten der 1. Art auch <