Statistik 1 Cheatsheet
Das hier ist eine semi-interaktive Formelsammlung über alle wichtigen Formeln der Statistik 1 Vorlesung. Zu den meisten Formeln und Tests sind entsprechende R Beispiele zur Berechnung beigefügt - diese am besten per Copy-Paste in RStudio einfügen und eigene Werte einsetzen. Folgende Pakete werden zum Ausführen der Codebeispiele benötigt:
install.packages(c("DescTools", "effsize", "MBESS", "pwr"))Inhaltsverzeichnis
- Deskriptive Statistik
- Wahrscheinlichkeitstheorie
- Parameterschätzung
- Hypothesentests
- Effektstärke und Power
- False Discovery Rate
- Inferenzstatistische Annahmen
Deskriptive Statistik
Grundbegriffe
Absolute Häufigkeit
vec = c("A","A","B","A","C","B")
table(vec)Absolute kummulierte Häufigkeit
vec = c("A","A","B","A","C","B")
cumsum(table(vec))Relative Häufigkeit
vec = c("A","A","B","A","C","B")
prop.table(table(vec))Relative kummulierte Häufigkeit
vec = c("A","A","B","A","C","B")
cumsum(prop.table(table(vec)))Modalwert
Die Messwertausprägung, die am häufigsten beobachtet wurde.
vec = c("A","A","B","A","C","B")
names(which.max(table(vec)))Arithmetisches Mittel / Mean
Summe aller Messwerte geteilt durch Anzahl der Beobachtungen.
vec = c(1,2,3,4,5,6)
mean(vec)Median
(Mindestend) 50% der Merkmalsträger haben einen Messwert, der kleiner oder gleich dem Median ist. Zur Berechnung müssen die Messwerte in aufsteigender Reihenfolge geordnet sein.
vec = c(1,3,4,5,7)
median(vec)Empirische Varianz
vec = c(1,2,3,4,5,6,7,10,12)
n = length(vec)
((n-1)/n)*var(vec)Empirische Standardabweichung
vec = c(1,2,3,4,5,6,7,10,12)
n = length(vec)
sqrt(((n-1)/n)*var(vec))Quantile
vec = c(1,2,3,4,5,6,7,8,9,10,11,12)
quantile(vec, probs=c(0.25,0.5,0.75))
Interquartilabstand
vec = c(1,2,3,4,5,6,7,8,9,10,11,12)
IQR(vec, type=6)
Barplot
vec = c(1,1,1,2,2,5,5,5,9)
barplot(table(vec))Histogram
vec = c(0,1,1,1.5,2,2,3,5,5,5)
hist(vec)Boxplot
vec = c(0,0,1,1,1,2,2,5,5,5,9,15)
boxplot(vec)Kovarianz und Korrelation
Kovarianz (empirisch)
Richtung eines Zusammenhangs.
Symmetrie:
Kovarianz mit sich selbst ist gleich der empirischen Varianz.
Zusammenhang mit Steigung der Geraden durch das Streudiagram:
x = c(1,2,3,4,5,6)
y = c(7,8,9,10,11,12)
cov(x,y)z-standardisierung
Die Transformation der z-Standardisierung ist für jeden Messwert so definiert:
x = c(1,2,3,4,5,6)
(x-mean(x))/sqrt(((length(x)-1)/length(x))*var(x))Pearson Korrelation
Symmetrie:
Die Korrelation entspricht der Steigung der Gerade durch das Streudiagram
Alternative Formel:
x = c(1,2,3,4,5,6)
y = c(7,8,9,10,11,12)
cor(x,y)Wahrscheinlichkeitstheorie
Grundbegriffe WkT
Erwartungswert von Zufallsvariablen
Falls die ZV stetig ist:
Rechenregeln für den Erwartungswert
# Erwartungswert aus gegebener diskreter Wahrscheinlichkeitsfunktion
x = c(-4,-3,-2,-1)
fx = c(0.3,0.1,0.4,0.2)
sum(x*fx)# Erwartungswert aus gegebener diskreter Wahrscheinlichkeitsverteilung
x = c(-4,3,4,20,22)
Fx = c(0.1,0.2,0.3,0.8,1)
fx = c(Fx[[1]])
for(i in 2:length(Fx)){fx[i] = Fx[[i]]-Fx[[i-1]]}
sum(x*fx)Varianz und Standardabweichung von Zufallsvariablen
Varianz:
Falls die ZV stetig ist:
Standardabweichung:
Rechenregeln für Varianz und Standardabweichung:
# Varianz, Standardabweichung aus gegebener diskreter Wahrscheinlichkeitsfunktion
x = c(-4,-3,-2,-1)
fx = c(0.3,0.1,0.4,0.2)
e = sum(x*fx)
varemp = sum((x-e)**2*fx)
varemp
sqrt(varemp)
# Varianz, Standardabweichung aus gegebener diskreter Wahrscheinlichkeitsverteilung
x = c(-4,3,4,20,22)
Fx = c(0.1,0.2,0.3,0.8,1)
fx = c(Fx[[1]])
for(i in 2:length(Fx)){fx[i] = Fx[[i]]-Fx[[i-1]]}
e = sum(x*fx)
varemp = sum((x-e)**2*fx)
varemp
sqrt(varemp)z-standardisierung von Zufallsvariablen
Analog zur Deskriptivstatistik.
Konkrete Wahrscheinlichkeitsfunktionen
Bernoulli Verteilung
Wahrscheinlichkeitsfunktion
Verteilungsfunktion
Erwartungswert, Standardabweichung:
Binomialverteilung
Voraussetzungen:
Exkurs: Binomialkoeffizient
Wahrscheinlichkeitsfunktion
Verteilungsfunktion:
Erwartungswert, Standardabweichung:
R Funktionen
p = 0.5
n = 100
dbinom(x=40, size=n, prob=p) # Wahrscheinlichkeitsfunktion
pbinom(q=70, size=n, prob=p) # Verteilungsfunktion
qbinom(p=0.25, size=n, prob=p) # Quantile
rbinom(n=20, size=n, prob=p) # Zufallsgeneration nach BinomialverteilungNormalverteilung
Wichtige Eigenschaften:
- Ihre Dichtefunktion hat ihr Maximum an der Stelle
- Ihre Dichtefunktion ist symmetrisch um
- Je weiler x von entfernt ist, desto kleiner ist die Dichte
Wahrscheinlichkeitsdichtefunktion:
Erwartugnswert, Varianz, Standardabweichung:
R Funktionen
mu = 3
sigma = 2
dnorm(x=3, mean = mu, sd = sigma) # Wahrscheinlichkeitsdichtefunktion
pnorm(q=0.5, mean = mu, sd = sigma) # Verteilungsfunktion
qnorm(p=0.25, mean = mu, sd = sigma) # Quantile
rnorm(n=20, mean = mu, sd = sigma) # Zufallsgeneration nach Normalverteilungz-standardisierung (Standardnormalvcerteilung):
t-Verteilung
Erwartungswert ( > 1):
Nützliche Eigenschaft:
Bemerke: Für hohe n nähert sich die Kurve der t-Verteilung der der Standardnormalverteilung an.
R Funktionen
v = 24
pt(q=1.4, df=v) # Verteilungsfunktion
qt(p=0.25, df=v) # Quantile
dt(x=0.2, df=v) # Wahrscheinlichkeitsdichtefunktion - uninteressant
rt(n=20, df=v) # Zufallsgeneration nach Normalverteilung - uninteressantZentraler Grenzwertsatz
Seien Zufallsvariablen mit , wobei P eine völlig beliebige Wahrscheinlichkeitsverteilung ist. Für
gilt dann
also für großes n
Parameterschätzung
Notation
Parameter
- , ,
Allgemeine Schätzfunktion
- , ,
Allgemeine Schätzwerte
- , ,
Konkrete Schätzfunktionen
- , ,
Konkrete Schätzwerte
- , ,
Gütekriterien von Schätzfunktionen
Erwarungstreue
Standardfehler
Effizienz: Erwartungstreu und kleinsten Standardfehler aller erwartungstreuen Schätzfunktionen für den Parameter
Konsistenz:
Schätzung für einer Bernoulli-Verteilung
Punkt
Schätzfunktion:
Erwartungswert:
Standardfehler:
ist erwartungstreu, effizient und konsistent.
Konfidenzintervall
(Approximatives) Konfidenzintervall mit Konfidenzniveau :
R Code
conf.level = 0.90
vec = c(1,1,1,0,0)
n = length(vec)
#Punktschaetzung
x_quer = mean(vec)
x_quer
# Konfidenzintervall von Hand
c = qnorm(1-((1-conf.level)/2), mean=0,sd=1) * sqrt(((x_quer*(1-x_quer))/n))
c(x_quer - c, x_quer + c)
# Konfidenzintervall mit R Funktion
library(DescTools)
BinomCI(x_quer*n,n,method='wald', conf.level = conf.level)Schätzung für einer Normalverteilung
Punkt
Schätzfunktion:
Erwartungswert:
Standardfehler:
ist erwartungstreu, effizient und konsistent.
Konfidenzintervall
Wahrscheinlichkeitsverteilung von
Konfidenzintervall mit Konfidenzniveau :
Beidseitig:
Rechtsseitig:
Linksseitig:
- Falls Varianz bekannt, z-Quantile () statt t-Quantilen verwenden
R Code
conf.level = 0.95
vec = c(100,80,90,120)
n = length(vec)
#Punktschaetzung
x_quer = mean(vec)
x_quer
s2 = var(vec)
# Konfidenzintervall von Hand
c = qt(1-((1-conf.level)/2), df=n-1) * sqrt(s2/n)
c(x_quer-c, x_quer+c)
# Konfidenzintervall mit R Funktion
t.test(vec, conf.level=conf.level)Schätzung für einer Normalverteilung
! ist nicht erwartungstreu für !
Schätzfunktion:
Erwartungswert:
Standardfehler:
ist erwartungstreu, effizient und konsistent.
R Code
vec = c(100,80,90,120)
n = length(vec)
#Punktschaetzung
var(vec)Schätzung für einer Normalverteilung für unabhängige Stichproben
Punkt
Schätzfunktion:
Erwartungswert:
Standardfehler:
ist erwartungstreu, effizient und konsistent (für ).
Gepoolte Varianz:
Sonderfall für :
vec1 = c(-10,0,-20,-11,-22)
vec2 = c(0,-10,5)
# Wenn nur Werte und keine Daten vorliegen, diese Werte durch eigene ersetzen
n1 = length(vec1)
n2 = length(vec2)
s2_1 = var(vec1)
s2_2 = var(vec2)
((n1-1)*s2_1+(n2-1)*s2_2)/(n1+n2-2)Konfidenzintervall
Beidseitig:
Rechtsseitig:
Linksseitig:
- Falls Varianz bekannt, z-Quantile () statt t-Quantilen verwenden
R Code
conf.level = 0.99
vec1 = c(-10,0,-20,-11,-22)
vec2 = c(0,-10,5)
x_quer1 = mean(vec1)
x_quer2 = mean(vec2)
n1 = length(vec1)
n2 = length(vec2)
# Punktschaetzung
xdiff_quer = mean(vec1)-mean(vec2)
xdiff_quer
# Konfidenzintervall von Hand
s2_1 = var(vec1)
s2_2 = var(vec2)
s2pool = ((n1-1)*s2_1+(n2-1)*s2_2)/(n1+n2-2)
c = qt(1-((1-conf.level)/2), df = n1+n2-2) * sqrt(s2pool/n1 + s2pool/n2)
c(xdiff_quer-c, xdiff_quer+c)
# Konfidenzintervall mit R Funktion
t.test(vec1,vec2,paired=FALSE,var.equal = TRUE,conf.level=conf.level)Schätzung für einer Normalverteilung für abhängige Stichproben
Punkt
Schätzfunktion:
Erwartungswert:
Standardfehler:
ist erwartungstreu, effizient und konsistent (für ).
Konfidenzintervall
Beidseitig:
Rechtsseitig:
Linksseitig:
- Falls Varianz bekannt, z-Quantile () statt t-Quantilen verwenden
R Code
conf.level = 0.99
# Muessen gleiche Laenge haben
vec1 = c(3,5,7,-9,-3)
vec2 = c(-3,-3,-4,-1,0)
n = length(vec1)
#Punkschaetzung
xdiff_quer = mean(vec1)-mean(vec2)
xdiff_quer
# Konfidenzintervall von Hand
s2diff = var(vec1-vec2)
c = qt(1-((1-conf.level)/2), df = n-1) * sqrt(s2diff/n)
c(xdiff_quer - c, xdiff_quer + c)
# Konfidenzintervall mit R Funktion
t.test(vec1,vec2,paired=TRUE,var.equal = TRUE,conf.level=conf.level)Hypothesentests
- ist wahr, für entschieden: Fehler erster Art
- ist wahr, für entschieden: Fehler zweiter Art
Formulierung: [Ein/Zwei]stichproben [t-/Binomial]test (für [abhängige/unabhängige] Stichproben) über Parameter [ / ] für [gerichtete/ungerichtete] Hypothesen
t-Wert berechnen: Punktschätzwerte bestimmen und in die jeweilige Teststatistik einsetzen
Kritischen Bereich bestimmen:
- ungerichtet:
klinks = qt(alpha/2,df)
krechts = qt(1-(alpha/2),df)
- linksseitig:
qt(alpha,df)
- rechtsseitig:
qt(1-alpha,df)
p-Wert berechnen: t-Wert berechnen und
linksseitig:
pt(t, df)
rechtsseitig:
1-pt(t, df)
ungerichtet:
if(t <= 0) 2*pt(t, df) else 2*pt(-t, df)
Parameter
Teststatistik
Einstichprobe ungerichtet
alpha = 0.005
data = c(-20,-30,-70,-10,-50)
mu0 = -10
# Hypothesentest von Hand - Wenn nur Werte gegeben sind und keine Daten, diese Variablen durch eigene Werte ersetzen
n = length(data)
x_quer = mean(data)
s2 = var(data)
klinks = qt(alpha/2,df=n-1)
krechts = qt(1-(alpha/2),df=n-1)
paste("Krit. Bereich: ]-INF;", klinks,"] [", krechts, "; INF[", sep="")
t = (x_quer-mu0)/sqrt(s2/n)
t
p = if(t <= 0) 2*pt(t, n-1) else 2*pt(-t, n-1)
p
if(p <= alpha) print("H1 annehmen") else print("H0 annehmen")
# Hypothesentest mit R Funktion - basierend auf den Datenvektoren (ignorieren, falls eigene Werte verwendet werden)
t.test(data, mu = mu0, alternative = 'two.sided')Einstichprobe linksgerichtet
alpha = 0.005
data = c(-20,-30,-70,-10,-50)
mu0 = -10
# Hypothesentest von Hand - Wenn nur Werte gegeben sind und keine Daten, diese Variablen durch eigene Werte ersetzen
n = length(data)
x_quer = mean(data)
s2 = var(data)
klinks = qt(alpha,df=n-1)
paste("Krit. Bereich: ] -INF;", klinks,"]", sep="")
t = (x_quer-mu0)/sqrt(s2/n)
t
p = pt(t, n-1)
p
if(p <= alpha) print("H1 annehmen") else print("H0 annehmen")
# Hypothesentest mit R Funktion - basierend auf den Datenvektoren (ignorieren, falls eigene Werte verwendet werden)
t.test(data, mu = mu0, alternative = 'less')
Einstichprobe rechtsgerichtet
alpha = 0.005
data = c(-2,3,0,-3,1)
mu0 = 3
# Hypothesentest von Hand - Wenn nur Werte gegeben sind und keine Daten, diese Variablen durch eigene Werte ersetzen
n = length(data)
x_quer = mean(data)
s2 = var(data)
krechts = qt(1-alpha,df=n-1)
paste("Krit. Bereich: [", krechts,";INF[", sep="")
t = (x_quer-mu0)/sqrt(s2/n)
t
p = 1-pt(t, n-1)
p
if(p <= alpha) print("H1 annehmen") else print("H0 annehmen")
# Hypothesentest mit R Funktion - basierend auf den Datenvektoren (ignorieren, falls eigene Werte verwendet werden)
t.test(data, mu = mu0, alternative = 'greater')Parameter
Teststatistik
Einstichprobe ungerichtet
hits = 43
n = 100
pi0 = 0.5
binom.test(x=hits, n=n, p=pi0, alternative='two.sided')Einstichprobe linksseitig
hits = 43
n = 100
pi0 = 0.5
binom.test(x=hits, n=n, p=pi0, alternative='less')Einstichprobe rechtsseitig
Besonderheit p-Wert Berechnung:
hits = 66
n = 100
pi0 = 0.5
binom.test(x=hits, n=n, p=pi0, alternative='greater')Parameterdifferenz unabhängig
Teststatistik
Zweistichprobe unabhängig ungerichtet
alpha = 0.005
data1 = c(-1,-4,-4,-3,-3)
data2 = c(-2,-4,-6)
mu0 = 0
# Hypothesentest von Hand - Wenn nur Werte gegeben sind und keine Daten, diese Variablen durch eigene Werte ersetzen
n1 = length(data1)
n2 = length(data2)
xdiff_quer = mean(data1)-mean(data2)
s2_1 = var(data1)
s2_2 = var(data2)
s2pool = ((n1-1)*s2_1+(n2-1)*s2_2)/(n1+n2-2)
klinks = qt(alpha/2,df=n1+n2-2)
krechts = qt(1-alpha/2,df=n1+n2-2)
paste("Krit. Bereich: ]-INF;", klinks,"] [", krechts, "; INF[", sep="")
t = (xdiff_quer-mu0)/sqrt(s2pool/n1 + s2pool/n2)
t
p = if(t <= 0) 2*pt(t, n1+n2-2) else 2*pt(-t, n1+n2-2)
p
if(p <= alpha) print("H1 annehmen") else print("H0 annehmen")
# Hypothesentest mit R Funktion - basierend auf den Datenvektoren (ignorieren, falls eigene Werte verwendet werden)
t.test(data1, data2, mu = mu0, alternative = 'two.sided', paired = FALSE, var.equal= TRUE)
Zweistichprobe unabhängig linksgerichtet
alpha = 0.005
data1 = c(-1,0,-2,-1,-4)
data2 = c(2,3,1,3,3)
mu0 = 1
# Hypothesentest von Hand - Wenn nur Werte gegeben sind und keine Daten, diese Variablen durch eigene Werte ersetzen
n1 = length(data1)
n2 = length(data2)
xdiff_quer = mean(data1)-mean(data2)
s2_1 = var(data1)
s2_2 = var(data2)
s2pool = ((n1-1)*s2_1+(n2-1)*s2_2)/(n1+n2-2)
klinks = qt(alpha,df=n1+n2-2)
paste("Krit. Bereich: ] -INF;", klinks,"]", sep="")
t = (xdiff_quer-mu0)/sqrt(s2pool/n1 + s2pool/n2)
t
p = pt(t, n1+n2-2)
p
if(p <= alpha) print("H1 annehmen") else print("H0 annehmen")
# Hypothesentest mit R Funktion - basierend auf den Datenvektoren (ignorieren, falls eigene Werte verwendet werden)
t.test(data1, data2, mu = mu0, alternative = 'less', paired = FALSE, var.equal= TRUE)
Zweistichprobe unabhängig rechtsgerichtet
alpha = 0.005
data1 = c(100,200,100,200)
data2 = c(102,202,102,202,152)
mu0 = -2
# Hypothesentest von Hand - Wenn nur Werte gegeben sind und keine Daten, diese Variablen durch eigene Werte ersetzen
n1 = length(data1)
n2 = length(data2)
xdiff_quer = mean(data1)-mean(data2)
s2_1 = var(data1)
s2_2 = var(data2)
s2pool = ((n1-1)*s2_1+(n2-1)*s2_2)/(n1+n2-2)
krechts = qt(1-alpha,df=n1+n2-2)
paste("Krit. Bereich: [", krechts,";INF[", sep="")
t = (xdiff_quer-mu0)/sqrt(s2pool/n1 + s2pool/n2)
t
p = 1-pt(t, n1+n2-2)
p
if(p <= alpha) print("H1 annehmen") else print("H0 annehmen")
# Hypothesentest mit R Funktion - basierend auf den Datenvektoren (ignorieren, falls eigene Werte verwendet werden)
t.test(data1, data2, mu = mu0, alternative = 'greater', paired = FALSE, var.equal= TRUE)Parameterdifferenz abhängig
Teststatistik
Zweistichprobe abhängig ungerichtet
alpha = 0.005
data1 = c(-0.3,-0.4,0.2,0.5,0.7)
data2 = c(-0.3,0.3,0.4,0,0)
mu0 = 0
# Hypothesentest von Hand - Wenn nur Werte gegeben sind und keine Daten, diese Variablen durch eigene Werte ersetzen
n = length(data1)
xdiff_quer = mean(data1)-mean(data2)
s2diff = var(data1-data2)
klinks = qt(alpha/2,df=n-1)
krechts = qt(1-alpha/2,df=n-1)
paste("Krit. Bereich: ]-INF;", klinks,"] [", krechts, "; INF[", sep="")
t = (xdiff_quer-mu0)/sqrt(s2diff/n)
t
p = if(t <= 0) 2*pt(t, n-1) else 2*pt(-t, n-1)
p
if(p <= alpha) print("H1 annehmen") else print("H0 annehmen")
# Hypothesentest mit R Funktion - basierend auf den Datenvektoren (ignorieren, falls eigene Werte verwendet werden)
t.test(data1, data2, mu = mu0, alternative = 'two.sided', paired = TRUE, var.equal= TRUE)Zweistichprobe abhängig linksgerichtet
alpha = 0.005
data1 = c(-10,-20,-20,-15,-8)
data2 = c(-20,-50,-70,-80,-90)
mu0 = 10
# Hypothesentest von Hand - Wenn nur Werte gegeben sind und keine Daten, diese Variablen durch eigene Werte ersetzen
n = length(data1)
xdiff_quer = mean(data1)-mean(data2)
s2diff = var(data1-data2)
klinks = qt(alpha,df=n-1)
paste("Krit. Bereich: ] -INF;", klinks,"]", sep="")
t = (xdiff_quer-mu0)/sqrt(s2diff/n)
t
p = pt(t, n-1)
p
if(p <= alpha) print("H1 annehmen") else print("H0 annehmen")
# Hypothesentest mit R Funktion - basierend auf den Datenvektoren (ignorieren, falls eigene Werte verwendet werden)
t.test(data1, data2, mu = mu0, alternative = 'less', paired = TRUE, var.equal= TRUE)Zweistichprobe abhängig rechtsgerichtet
alpha = 0.005
data1 = c(11,35,14,12,2)
data2 = c(10,40,30,10,15)
mu0 = 0
# Hypothesentest von Hand - Wenn nur Werte gegeben sind und keine Daten, diese Variablen durch eigene Werte ersetzen
n = length(data1)
xdiff_quer = mean(data1)-mean(data2)
s2diff = var(data1-data2)
krechts = qt(1-alpha,df=n-1)
paste("Krit. Bereich: [", krechts,";INF[", sep="")
t = (xdiff_quer-mu0)/sqrt(s2diff/n)
t
p = 1-pt(t, n-1)
p
if(p <= alpha) print("H1 annehmen") else print("H0 annehmen")
# Hypothesentest mit R Funktion - basierend auf den Datenvektoren (ignorieren, falls eigene Werte verwendet werden)
t.test(data1, data2, mu = mu0, alternative = 'greater', paired = TRUE, var.equal= TRUE)Effektstärke und Power
Cohen’s (delta)
Unabhängige Stichproben:
data1 = c(0,0,-1)
data2 = c(2,0,1)
# Cohens Delta von Hand
n1 = length(data1)
n2 = length(data2)
xdiff_quer = mean(data1)-mean(data2)
s2_1 = var(data1)
s2_2 = var(data2)
s2pool = ((n1-1)*s2_1+(n2-1)*s2_2)/(n1+n2-2)
xdiff_quer/sqrt(s2pool)
# Cohens Delta mit R Funktion
library(effsize)
cohen.d(data1, data2)Abhängige Stichproben - unkorrigiert:
Abhängige Stichproben - korrigiert:
data1 = c(-10,-20,-20,-15,-80)
data2 = c(-20,-50,-70,-80,-90)
# Cohens Delta mit R Funktion
library(effsize)
cohen.d(data1, data2, paired=TRUE)Größen:
| 0.2 | 0.5 | 0.8 | |
|---|---|---|---|
| Interpretation | kleiner Effekt | mittlerer Effekt | großer Effekt |
Konfidenzintervall für Cohen’s
library(MBESS)
d_est = -0.54
n1 = 18
n2 = 18
ci.smd(smd=d_est,n.1=n1,n.2=n2,conf.level = 0.95)Stichprobenplanung für Cohens’s (Anzahl pro Gruppe)
library(MBESS)
d_guess = 0.5
conf.level = 0.95
width = 0.29
ss.aipe.smd(d_guess, conf.level, width)Power
Wahrscheinlichkeit, dass sich die Teststatistik im kritischen Bereich realisiert, falls die gilt.
- Je größer das Signifikanzniveau, desto größer die Power.
- Je größer die Stichprobe, desto größer die Power.
- Je größer der wahre Effekt, desto größer die Power.
4 Faktoren wirken aufeinander: Power (), Signifikanzniveau (), Effekt () und Stichprobengröße (n). 3 dieser Werte bestimmen jeweils den 4.
Power von Hypothesentest berechnen
Für die Berechnung der Power brauchen wir: Signifikanzniveau (), (kleinst annehmbaren) Effekt () und Stichprobengröße (n).
library(pwr)
n = 1000 # Anzahl pro Gruppe
effect = -0.2
alpha = 0.005
type = 'one.sample' # oder 'two.sample' oder 'paired'
alternative = 'less' # oder 'greater' oder 'two.sided'
pwr.t.test(n=n,d=effect,sig.level=alpha, type=type, alternative=alternative)Stichprobenplanung für Hypothesentest
Für die Planung der Stichprobengröße brauchen wir: Gewünschte Power (), Signifikanzniveau (), Effekt ()
(n ist die Anzahl an Personen pro Gruppe)
library(pwr)
desired_power = 0.8
effect = -0.2
alpha = 0.005
type = 'one.sample' # oder 'two.sample' oder 'paired' - Typ des Hypothesentests
alternative = 'less' # oder 'greater' oder 'two.sided' - Richtung der H1
pwr.t.test(power=desired_power,d=effect,sig.level=alpha, type=type, alternative=alternative)False Discovery Rate
- Es werden N Studien betrachtet.
- Alle führen statistische Hypothesentests mit dem Signifikanzniveau durch
- ist der Anteil der Studien, in denen die wahr ist. (Basisrate)
- Alle Hypothesentests haben eine Power von
Anzahl falsch positiver Entscheidungen
Anzahl richtig positiver Entscheidungen
False Discovery Rate
R Code
alpha = 0.005
power = 0.95
baserate = 0.6
FDR = (alpha*baserate)/((alpha*baserate)+(power)*(1-baserate))
FDR
# Anzahl der false positives und right positives unter Angabe eines N
N = 10
fp = alpha*baserate*N
fp
rp = power*(1-baserate)*N
rpEinflussgrößen
- FDR umso niedriger ist, je kleiner das Signifikanzniveau ist.
- FDR umso niedriger ist, je höher die Power ist.
- FDR umso höher ist, je höher die Basisrate ist.
Annahmen Inferenzstatistik
Relative Häufigkeit einer Messwertausprägung einer diskreten Variable in einer Population.
- Annahmen: keine
- Verfahren:
- Intervallschätzung für
- Hypothesentests: Binomialtest
Mittelwert einer metrischen Variable in einer Population
- Annahmen:
- Das Histogramm der interessierenden Variable in der Population kann durch die Dichtefunktion einer Normalverteilung approximiert werden.
- Verfahren:
- Intervallschätzung für
- Hypothesentests: Einstichproben t-Test
Differenz der Mittelwerte einer metrischen Variable in zwei Population. (unabhängig)
- Annahmen:
- Das Histogramm der interessierenden Variable kann in beiden Populationen durch die Dichtefunktion einer Normalverteilung approximiert werden. *Die empirische Varianz der interessierenden Variable ist in beiden Populationen gleich groß.
- Verfahren:
- Intervallschätzung: Konfidenzintervall für bei unabhängigen Stichproben
- Hypothesentests: Zweistichproben t-Test für unabhängige Stichproben
Differenz der Mittelwerte einer metrischen Variable in zwei Population. (abhängig)
- Annahmen:
- Das Histogramm der interessierenden Variable kann in beiden Populationen durch die Dichtefunktion einer Normalverteilung approximiert werden.
- Verfahren:
- Intervallschätzung: Konfidenzintervall für bei abhängigen Stichproben
- Hypothesentests: Zweistichproben t-Test für abhängige Stichproben
Bei großen Stichproben können Verletzungen der Annahmen vernachlässigt werden!
.