Woche2
parent
5113851950
commit
afd7d1babf
|
@ -45,3 +45,4 @@ docs/
|
||||||
# translation temp files
|
# translation temp files
|
||||||
po/*~
|
po/*~
|
||||||
|
|
||||||
|
*.onetoc2
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 34 KiB |
367
report.html
367
report.html
File diff suppressed because one or more lines are too long
211
report.rmd
211
report.rmd
|
@ -4,10 +4,13 @@ author: "Marc Gauch"
|
||||||
date: "`r Sys.Date()`"
|
date: "`r Sys.Date()`"
|
||||||
output:
|
output:
|
||||||
html_document:
|
html_document:
|
||||||
toc: true
|
toc: yes
|
||||||
toc_depth: 2
|
toc_depth: 4
|
||||||
toc_float: true
|
toc_float: yes
|
||||||
number_sections: true
|
number_sections: yes
|
||||||
|
pdf_document:
|
||||||
|
toc: yes
|
||||||
|
toc_depth: '2'
|
||||||
---
|
---
|
||||||
|
|
||||||
```{r setup, include=FALSE}
|
```{r setup, include=FALSE}
|
||||||
|
@ -21,6 +24,49 @@ if (!require(tidyverse)){
|
||||||
install.packages("tidyverse")
|
install.packages("tidyverse")
|
||||||
library(tidyverse)
|
library(tidyverse)
|
||||||
}
|
}
|
||||||
|
if (!require(moments)){
|
||||||
|
install.packages("moments")
|
||||||
|
library(moments)
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
# Own functions
|
||||||
|
|
||||||
|
## Frequency Table ordered from wish.com
|
||||||
|
```{r}
|
||||||
|
freq <- function(data){
|
||||||
|
na_count = length(data[is.na(data)])
|
||||||
|
valid_count = length(data)-na_count
|
||||||
|
frequency <- table(data)
|
||||||
|
p <- prop.table(frequency)
|
||||||
|
percent <- round(p*100, digits = 2)
|
||||||
|
frequency_sum <- cumsum(frequency)
|
||||||
|
hkum <- cumsum(p)
|
||||||
|
percent_sum <- round(hkum*100, digits = 2)
|
||||||
|
freq_table <- cbind(frequency, percent, frequency_sum, percent_sum)
|
||||||
|
valid_percent <- round(valid_count / length(data)*100, digits = 2)
|
||||||
|
na_percent <- round(na_count / length(data)*100, digits = 2)
|
||||||
|
|
||||||
|
|
||||||
|
print(freq_table)
|
||||||
|
|
||||||
|
count <- c(valid_count, na_count, valid_count+na_count)
|
||||||
|
percent <- c(valid_percent, na_percent, valid_percent+na_percent)
|
||||||
|
totall <- c(valid_count+na_count, valid_percent+na_percent)
|
||||||
|
df <- data.frame(count, percent, row.names = c("valid", "NA", "Total"))
|
||||||
|
print(df)
|
||||||
|
|
||||||
|
}
|
||||||
|
```
|
||||||
|
*Source: https://tellmi.psy.lmu.de/tutorials/deskriptive-statistiken-und-grafiken.html#haeufigkeiten-diskret and adapted*
|
||||||
|
|
||||||
|
## Modus
|
||||||
|
```{r}
|
||||||
|
getmode <- function(v) {
|
||||||
|
uniqv <- unique(v)
|
||||||
|
x <- tabulate(match(v, uniqv))
|
||||||
|
uniqv[which(x==max(x))]
|
||||||
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
# Load Data
|
# Load Data
|
||||||
|
@ -209,6 +255,7 @@ litdata$D1_2 <- as.logical(litdata$D1_2)
|
||||||
litdata <- litdata %>% mutate(D1_3 = ifelse(D1_3 == "Ja", TRUE, ifelse(D1_3 == "Nicht Gewählt", FALSE, D1_3)))
|
litdata <- litdata %>% mutate(D1_3 = ifelse(D1_3 == "Ja", TRUE, ifelse(D1_3 == "Nicht Gewählt", FALSE, D1_3)))
|
||||||
litdata$D1_3 <- as.logical(litdata$D1_3)
|
litdata$D1_3 <- as.logical(litdata$D1_3)
|
||||||
|
|
||||||
|
|
||||||
litdata <- litdata %>% mutate(D1_4 = ifelse(D1_4 == "Ja", TRUE, ifelse(D1_4 == "Nicht Gewählt", FALSE, D1_4)))
|
litdata <- litdata %>% mutate(D1_4 = ifelse(D1_4 == "Ja", TRUE, ifelse(D1_4 == "Nicht Gewählt", FALSE, D1_4)))
|
||||||
litdata$D1_4 <- as.logical(litdata$D1_4)
|
litdata$D1_4 <- as.logical(litdata$D1_4)
|
||||||
|
|
||||||
|
@ -307,9 +354,163 @@ displayFunction1 <- function(table, column) {
|
||||||
displayFunction1(litdata, "D7")
|
displayFunction1(litdata, "D7")
|
||||||
```
|
```
|
||||||
|
|
||||||
Die Warnung ist resultiert daraus, dass es sehr viele *NA* gibt.
|
Die Warnung resultiert daraus, dass es sehr viele *NA* gibt.
|
||||||
|
|
||||||
### D8 (H008) {-}
|
### D8 (H008) {-}
|
||||||
```{r}
|
```{r}
|
||||||
displayFunction1(litdata, "D8")
|
displayFunction1(litdata, "D8")
|
||||||
```
|
```
|
||||||
|
|
||||||
|
# Selbststudium 2.1
|
||||||
|
We have the year 2021
|
||||||
|
## Preparation
|
||||||
|
```{r}
|
||||||
|
birthyears <- litdata$D7
|
||||||
|
# remove NAs
|
||||||
|
birthyears <- birthyears[!is.na(birthyears)]
|
||||||
|
age <- 2021-birthyears
|
||||||
|
```
|
||||||
|
|
||||||
|
## Frequency
|
||||||
|
```{r}
|
||||||
|
freq(age)
|
||||||
|
# with NA
|
||||||
|
freq(2021-litdata$D7)
|
||||||
|
```
|
||||||
|
|
||||||
|
## Selbststudium 2
|
||||||
|
https://www.beratung-statistik.de/statistik-beratung-infos/r-tutorial/deskriptive-statistik-r/
|
||||||
|
|
||||||
|
### Modalwert
|
||||||
|
```{r}
|
||||||
|
# own method
|
||||||
|
getmode(age)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Median
|
||||||
|
```{r}
|
||||||
|
median(age)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Arithmetischer Mittelwert
|
||||||
|
```{r}
|
||||||
|
mean(age)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Spannweite
|
||||||
|
```{r}
|
||||||
|
max(age)-min(age)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Quartilsabstand
|
||||||
|
```{r}
|
||||||
|
IQR(age)
|
||||||
|
# just for fun
|
||||||
|
summary(age)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Varianz
|
||||||
|
```{r}
|
||||||
|
var(age)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Standardabweichung
|
||||||
|
```{r}
|
||||||
|
sd(age)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Schiefe
|
||||||
|
```{r}
|
||||||
|
library(moments)
|
||||||
|
skewness(age)
|
||||||
|
```
|
||||||
|
> Die Kennzahl Schiefe ist wird Null bei einer perfekt symmetrischen Verteilung, größer als Null bei einer rechtsschiefen und kleiner als Null bei einer linksschiefen Verteilung.
|
||||||
|
https://www.beratung-statistik.de/statistik-beratung-infos/r-tutorial/deskriptive-statistik-r/
|
||||||
|
|
||||||
|
### Kurtosis
|
||||||
|
```{r}
|
||||||
|
kurtosis(age)
|
||||||
|
```
|
||||||
|
> Eine weitere bekannte Kennzahl ist die Kurtosis. Um eine Vorstellung von der Bedeutung der Kurtosis zu erhalten, betrachten Sie nachfolgende Graphik.
|
||||||
|
In dieser Graphik sind eine Normalverteilung, sowie eine steilgipflige (aka leptokurtisch) und eine flachgipflige (aka platykurtisch) dargestellt.
|
||||||
|
Die steilgipflige Verteilung ist in der Mitte spitzer als die Normalverteilung und an den Rändern breiter. Bei der flachgipligen Verteilung ist es anders herum. Die Kurtosis ist nun eine Kennzahl, mit der untersucht wird, ob eine Verteilung im Vergleich zur Normalverteilung flachgipflig oder steilgipflig ist:
|
||||||
|
- Für eine Normalverteilung nimmt die Kurtosis genau den Wert 3 an.
|
||||||
|
- Eine steilgipflige Verteilung hat eine Kurtosis, die größer als 3 ist.
|
||||||
|
- Für eine flachgipflige Verteilung ist die Kurtosis kleiner als 3.
|
||||||
|
- Beachten Sie: Anstatt der Kurtosis wird häufig auch der sogenannte Exzess verwendet. Dies ist eine weitere Kennzahl, die definiert ist durch die Formel: Exzess = Kurtosis - 3.
|
||||||
|
- Der Exzess ist somit größer als Null, wenn die Verteilung steilgipflig ist, und kleiner als Null bei einer flachgipfligen Verteilung.
|
||||||
|
![Abbildung Kurtosis](images/kurtosis.png)
|
||||||
|
Frech kopiert von: https://www.beratung-statistik.de/statistik-beratung-infos/r-tutorial/deskriptive-statistik-r/
|
||||||
|
|
||||||
|
### QQ-Plot
|
||||||
|
```{r}
|
||||||
|
qqnorm(age)
|
||||||
|
qqline(age)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Historam for age {.tabset}
|
||||||
|
|
||||||
|
#### Auto Breaks {-}
|
||||||
|
```{r}
|
||||||
|
hist(age)
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 3 Breaks {-}
|
||||||
|
```{r}
|
||||||
|
hist(age, breaks = 3)
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 5 Breaks {-}
|
||||||
|
```{r}
|
||||||
|
hist(age, breaks = 5)
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 7 Breaks {-}
|
||||||
|
```{r}
|
||||||
|
hist(age, breaks = 7)
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 10 Breaks {-}
|
||||||
|
```{r}
|
||||||
|
hist(age, breaks = 10)
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 15 Breaks {-}
|
||||||
|
```{r}
|
||||||
|
hist(age, breaks = 15)
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 20 Breaks {-}
|
||||||
|
```{r}
|
||||||
|
hist(age, breaks = 20)
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 30 Breaks {-}
|
||||||
|
```{r}
|
||||||
|
hist(age, breaks = 30)
|
||||||
|
```
|
||||||
|
|
||||||
|
# Selbststudium 2.2
|
||||||
|
|
||||||
|
Auf der Grundlage von Daten aus einer Schweizer Schüllererhebung wird aus verschiedenen Variablen (z.B. Angaben zum Beruf der Eltern, zur Elternausbildung sowie zur Anzahl von Bücchern zu Hause) ein Index zur sozialen Herkunft erstellt. Dieser Index erscheint in einer neu gebildeten numerischen Variable im Datensatz, gibt also für jeden Fall in diesem Datensatz einen Skalenwert zur sozialen Herkunft an. Die neu gebildete Skala läuft von 0 (Wert mit der geringsten Ausprägung) bis 10 (Wert mit der höchsten Ausprägung).
|
||||||
|
|
||||||
|
Für die gesamte Schweiz liegt der arithmetische Mittelwert auf dieser Skala bei 5.6 und die Standardabweichung beträgt 1.8 (Zahlen sind von mir frei erfunden!). Die Verteilung entspricht einer Normalverteilung.
|
||||||
|
|
||||||
|
Der Mittelwert der Verteilung der Bündner Schüler liegt etwas tiefer als in der Gesamtschweiz, nämlich bei 5.1 mit einer Standardabweichung von 2.
|
||||||
|
|
||||||
|
## Aufgabenstellung 1
|
||||||
|
|
||||||
|
Wo in der Verteilung der Schweiz liegt der Bündner Mittelwert, bzw. wie viele Schweizer Schüler haben bzgl. der sozialen Herkunft einen tieferen Wert als der typische Bündner Schüler?
|
||||||
|
|
||||||
|
```{r}
|
||||||
|
pnorm(5.1, mean = 5.6, sd = 1.8)
|
||||||
|
```
|
||||||
|
|
||||||
|
## Aufgabenstellung 2
|
||||||
|
|
||||||
|
In einem Bündner Ort beträgt der Mittelwert auf der Skala zur sozialen Herkunft 5.6, er ist also genauso hoch wie in der Gesamtschweiz. Was ist zur Lage dieses Wertes bezogen auf die Verteilung in Graubünden zu sagen? Also: Wie viele Schüler in GR liegen mit ihrem Wert darunter?
|
||||||
|
|
||||||
|
```{r}
|
||||||
|
pnorm(5.6, mean = 5.1, sd=2.0)
|
||||||
|
```
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue