Code Beispiele für Woche 6

t-Verteilung

Die t-Verteilung ist besonders nützlich für statistische Tests, wenn die Normalverteilung nicht anwendbar ist, wie z.B. bei der Schätzung von Mittelwerten und Konfidenzintervallen aus kleinen Stichproben. Sie wird häufig in Situationen eingesetzt, in denen die Standardabweichung der Population unbekannt ist und durch die Stichprobenvarianz geschätzt werden muss. Dies macht sie zu einem zentralen Werkzeug in der inferenziellen Statistik, insbesondere für t-Tests, die darauf abzielen, Unterschiede zwischen Mittelwerten zu bewerten, und für die Konstruktion von Konfidenzintervallen bei kleinen Stichprobengrößen.

Erstellung eines synthetischen Datensatzes

Zunächst erstellen wir einen synthetischen Datensatz für unsere Beispiele.

set.seed(123) # Für Reproduzierbarkeit

df <- data.frame(
  ID = 1:30,
  Alter = sample(18:30, 30, replace = TRUE),
  Gewicht_kg = rnorm(30, mean = 65, sd = 10),
  Groesse_m = runif(30, min = 1.5, max = 2.0)
)

Berechnung von Mittelwertschätzer, Standardfehler und Konfidenzintervall

Mittelwertschätzer

Der Mittelwertschätzer ist der Durchschnittswert einer Stichprobe.

mittelwert <- mean(df$Gewicht_kg)

mittelwert
[1] 62.14933

Standardfehler des Mittelwertschätzers

Der Standardfehler des Mittelwerts misst, wie genau der Mittelwert der Stichprobe den tatsächlichen Populationsmittelwert schätzt.

standardfehler <- sd(df$Gewicht_kg) / sqrt(sum(!is.na(df$Gewicht_kg)))

standardfehler
[1] 1.654064

95%-Konfidenzintervall

Das 95%-Konfidenzintervall gibt einen Bereich an, in dem der wahre Mittelwert der Population mit einer Wahrscheinlichkeit von 95% liegt. Die qt() Funktion in R wird verwendet, um den Quantilswert der t-Verteilung zu bestimmen.

freiheitsgrade <- sum(!is.na(df$Gewicht_kg)) - 1
t_wert <- qt(0.975, freiheitsgrade)
konf_intervall_unten <- mittelwert - t_wert * standardfehler
konf_intervall_oben <- mittelwert + t_wert * standardfehler

c(freiheitsgrade,t_wert,konf_intervall_unten,konf_intervall_oben)
[1] 29.00000  2.04523 58.76639 65.53227

Schleifen (For-Loops)

Ein For-Loop in R wird für wiederholte Operationen eingesetzt, bei denen ein Codeblock mit verschiedenen Werten aus einer Sequenz oder einem Vektor ausgeführt wird.

Beispiel eines For-Loops

rows<-sum(!is.na(df$Gewicht_kg))

# Berechnung des BMI für jede Person im Datensatz
for (i in 1:rows) {
  # Der BMI wird berechnet als das Gewicht in Kilogramm (Gewicht_kg) 
  # geteilt durch das Quadrat der Größe in Metern (Groesse_m).
  bmi <- df$Gewicht_kg[i] / (df$Groesse_m[i])^2
  
  # Ausgabe des berechneten BMI-Wertes für die aktuelle Person.
  print(bmi)
}
[1] 23.88891
[1] 19.19198
[1] 20.38538
[1] 19.02816
[1] 19.49745
[1] 21.08251
[1] 19.36482
[1] 20.95396
[1] 14.09849
[1] 14.83143
[1] 22.06851
[1] 21.25006
[1] 20.95465
[1] 15.24001
[1] 23.38236
[1] 31.54026
[1] 16.29461
[1] 19.73524
[1] 13.25774
[1] 18.18851
[1] 17.36263
[1] 16.42693
[1] 23.93145
[1] 21.94366
[1] 22.99591
[1] 28.30787
[1] 21.47455
[1] 24.28761
[1] 17.39607
[1] 22.56937

Hier zeigen wir, wie man einen For-Loop verwenden kann, um mehrere Datensätze einzulesen und den Mittelwert einer bestimmten Spalte in jedem Datensatz zu berechnen. Dieses Beispiel ist konzeptionell und nicht direkt ausführbar.

dateinamen <- c("datensatz1.csv", "datensatz2.csv", "datensatz3.csv")

for (datei in dateinamen) {
  # nun kann eine operation durchgeführt werden die für alle Elemente (datei) in der Liste (dateinamen) gilt z.B.
  daten <- read.csv(datei) # laden des Datensatzes über den generierten Dateinamen
  print(mean(daten$Gewicht_kg)) #berechnen und ausgeben des means der Spalte Gewicht_kg
}