Foliensatz
Praxis-Teil
Notwendige Funktionen
library(tidyverse)
library(ggplot2)
randomize = function(blocksize, N){
block = rep(1:ceiling(N/blocksize), each = blocksize)
a1 = data.frame(block, rand=runif(length(block)), envelope= 1: length(block))
a2 = a1[order(a1$block,a1$rand),]
a2$arm = rep(c("Arm 1", "Arm 2"),times = length(block)/2)
assign = a2[order(a2$envelope),]
return(assign$arm)
}
plotter = function(m1, m0, mui = 45){
plot.data <- data.frame(M = c(m1, m0), Gruppe = rep(c("Gruppe 1", "Gruppe 2"),
each = length(m1)))
ggplot(plot.data, aes(x = M, fill = Gruppe)) + geom_density(alpha = 0.5) +
geom_vline(xintercept = mui, linetype = "dotted") + xlab(expression(hat(mu))) +
ylab("") + theme_minimal()
}
Simulation ($k$=1)
set.seed(123)
# Simuliere 10 Werte für Variable "Alter" (Populationsmittelwert: 45 Jahre)
alter <- rnorm(10, 45, 15) %>% round()
# Randomisiere die 10 Personen in zwei Gruppen
gruppe <- randomize(blocksize = 2, N = 10)
# Berechne den Mittelwert & Mittelwertsunterscheid beider Gruppen
m1 <- mean(alter[gruppe == "Arm 1"])
m0 <- mean(alter[gruppe == "Arm 2"])
m.diff <- mean(alter[gruppe == "Arm 1"]) - mean(alter[gruppe == "Arm 2"])
m.diff
Simulation ($k$=100)
# Wiederhole 1. 100-mal
set.seed(123)
for (i in 2:100){
alter <- rnorm(10, 45, 15) %>% round()
gruppe <- randomize(blocksize = 2, N = 10)
m1[i] <- mean(alter[gruppe == "Arm 1"], na.rm = TRUE)
m0[i] <- mean(alter[gruppe == "Arm 2"], na.rm = TRUE)
m.diff[i] <- mean(alter[gruppe == "Arm 1"]) - mean(alter[gruppe == "Arm 2"])
}
mean(m.diff)
plotter(m1, m0)
Simulation ($k$=10.000)
# Wiederhole 1. 10.000-mal
set.seed(123)
for (i in 101:10000){
alter <- rnorm(10, 45, 15) %>% round()
gruppe <- randomize(blocksize = 2, N = 10)
m1[i] <- mean(alter[gruppe == "Arm 1"], na.rm = TRUE)
m0[i] <- mean(alter[gruppe == "Arm 2"], na.rm = TRUE)
m.diff[i] <- mean(alter[gruppe == "Arm 1"]) - mean(alter[gruppe == "Arm 2"])
}
mean(m.diff)
plotter(m1, m0)