Skip to Tutorial Content

Ihr Feedback:

Grundlagen der induktiven Statistik

Maria Osipenko

12.03.2024

Problemstellung

Ihr Team hat ein neues Projekt: es soll eine Smartphone-App entwickelt werden, die Ihre Kunden herunterladen und nutzen können. (clicke auf den Rechteck um das Bild zu vergrössern).

Herausforderung

Ihre Chefin hat gerade das Projekt den Investoren vorgestellt. Doch ohne vorherige Erfolgsanalyse wollen sie das Projekt nicht finanzieren. Sie verlangen eine fundierte Schätzung des erwarteten Appnutzer-Anteils anhand einer Stichprobe. Und als wäre es noch nicht genug abverlangt, wollen sie dass

der Umfang der Stichprobe so gewählt wird, dass

  • die Schätzpräzision von \(1\%\)
  • auf dem Sicherheitsniveau von \(95\%\)

gewährleistet wird.

Ihre Chefin ist ausser sich: ‘Was denn für eine Schätzpräzision?! Wenn wir eine Umfrage durchführen, dann können wir doch aufs Genaueste den Anteil und die durchschnittliche Zahlungsbereitschaft ausrechnen! Oder etwa nicht?!’

Kannst du deiner Chefin helfen, die Belänge der Investoren zu verstehen?

Deine Mission

Umfragen sind teuer! Wie lieferst du deiner Chefin die Antwort auf die Frage, wie groß der minimale Stichprobenumfang sein soll, damit die verlangte Schätzpräzision auf dem Sicherheitniveau von 95% gegeben ist und die Investoren zufrieden sind?

Deine Zwischenschritte:

  • erkläre deiner Chefin, warum der Anteil der potentiellen Appnutzer aus der Umfrage womöglich nicht ganz genau mit dem Anteil der potenziellen Appnutzer in der gesamten Kundschaft übereinstimmt.
  • bringe in Erfahrung, wie die Verteilung des entsprechenden Schätzers für den Anteilswert aussieht und ob man darauf basierend den benötigten Stichprobenumfang für die verlangete Genauigkeit ermitteln kann.

Problemstellung

Wie groß soll der minimale Stichprobenumfang sein, damit die verlangte Schätzpräzision von \(1\%\) auf dem Sicherheitniveau von \(95\%\) gewähleistet wird und die Investoren zufrieden sind?

Stichprobe als Zufallsvorgang

Wenn für eine Kundenumfrage die Teilnehmer zufällig und mit gleicher Wahrscheinlichkeit ausgewählt werden, stellt dieser Vorgang eine Zufallsstichprobe dar.

Aus dem Lehrbuch…

  • Eine Stichprobe dient der Informationsgewinnung über das Verhalten eines Merkmals in der Grundgesamtheit.

    • \((X_1,\ldots,X_n)\) bezeichnen eine Zufallsstichprobe vom Umfang \(n\) zu \(X\), falls \(X_i, i=1,\ldots,n\) unabhängig sind und der gleichen Verteilung wie \(X\) folgen.

    • Die beobachteten Realisationen \(x_1,\ldots, x_n\) der Zufallsvariablen \((X_1,\ldots,X_n)\) heißen Stichprobenrealisationen.

  • Eine Schätzung hängt stets von einer konkreten Stichproberealisation ab und variiert, falls eine erneute Stichprobe gezogen wird.

Schätzung auf Basis einer Stichprobe

  • \((X_1,\ldots,X_n)\) bezeichnen eine Zufallsstichprobe vom Umfang \(n\) zu \(X\), falls \(X_i, i=1,\ldots,n\) unabhängig sind und der gleichen Verteilung wie \(X\) folgen.

  • Die beobachteten Realisationen \(x_1,\ldots, x_n\) der Zufallsvariablen \((X_1,\ldots,X_n)\) heißen Stichprobenrealisationen.

  • Eine Schätzung hängt stets von einer konkreten Stichproberealisation ab und variiert, falls eine erneute Stichprobe gezogen wird.

Deine Herangehensweise

Das klingt erstmal sehr abstrakt… In der Animation kannst du nachvollziehen, was bei einer Stichprobenziehung passiert (clicke auf den Rechteck um das Bild zu vergrössern):

Um die Konstruktion einer Stichprobe selber besser zu verstehen, versuchst du probeweise eine (simulierte) Stichprobe aus der Kundendatenbank zu ziehen und einen Schätzwert für das durchschnittliche Kundenalter zu auf deren Basis erstellen.

(Kundenalter ist zwar im System hintelegt, d.h. du hast hier eine Grundgesamtheit aller Kunden und kannst das duchschnittliche Alter in der Grundgessamtheit bestimmen (Durchschnitt aller Kunden). Dies erlaubt dir jedoch den Vorgang einer Stichprobenziehung zu simulieren und die geschätzten Werte mit dem wahren durchschnittlichen Alter aller Kunden zu vergleichen.

Deine Experimente

Jetzt simulierst du die Stichprobenerhebung:

  • wählst zufällig \(n=20\) Kunden aus (das sind deine Umfragewerte -Stichprobenwerte)

  • berechnest das durchschnittliche Alter dieser ausgewählten Kunden

  • vergleichst deinen Schätzwert mit dem echten Durchschnitt der Grundgesamtheit

Wiederhole die Schritte mehrere Male und beobachte, was passiert (Siehe die interaktive Datenbank-App \(\downarrow\)).

Nun erhöhe den Stichprobenumfang und wiederhole die Schritte wieder. Werden die Schätzergebnisse genauer?

Interaktive Datenbank-App

Stichprobenumfang n:
Ziehung der Stichprobe:

Zufallsauswahl von n Kunden

Das mittlere Alter in der Stichprobe


Das mittlere Alter in der Grundgesamtheit


Schätzwerte aus verschiedenen Ziehungen

Quiz

Coding

In der Tabelle kunden, Spalte alter sind die Daten aller Kunden enthalten. Programmiere die Berechnung des durchschnittlichen Alters.

Kundentabelle:

Modifiziere die folgenden Code-Zeilen um das durchschnittliche Kundenalter und dessen Standardabweichung zu berechnen (du kannst die relevante Spalte in der Tabelle als kunden$alter ansprechen ):

mean(NA)
sd(NA)
mean(kunden$alter)
sd(kunden$alter)

Nun ziehe eine Stichprobe von \(n=20\) Kunden mit sample(x=kunden$alter, size=20, replace=TRUE) und berechne den Mittelwert der Stichprobenwerte.

mean(NA)
mean(sample(x=kunden$alter, size=20, replace=TRUE))

Du kannst die Code-Zeile oben mehrfach ausführen lassen, damit du siehst, was passiert, wenn eine neue Stichprobe gezogen wird.

Alternativ, kannst du wiederholte Stichprobeziehung programmieren. Ergänze die vierte Zeile in dem folgenden Code-Fenster:

wiederholungen=100 # Anzahl von gewuenschten Wiedeholungen des Experiments
schaetzwerte<-numeric(wiederholungen) # Platzhalter fuer die Schaetzwerte
for (i in 1:wiederholungen){
  schaetzwert<-mean(NA) # Schätwert aus der aktuellen Ziehung
  schaetzwerte[i]<-schaetzwert # alle die Schätzwerte in einem Vektor
}
plot(schaetzwerte, pch=16, col=2, main = "Schätzwerte aus verschiedenen Stichprobenziehungen", xlab="Ziehung", ylab="Wert", ylim=c(20,40))
abline(h=30)
#Zeile vier:
  schaetzwert<-mean(sample(x=kunden$alter, size=20, replace=TRUE))

Erhöhe den Umfang jeder Stichprobe in der vierte Zeile (z.B. size = 200). Was verändert sich?

Verteilung des Schätzers

Unser Schätzer - das Stichprobenmittel \(\bar{X}=\frac 1n \sum_{i=1}^n X_i\) - ist vor der Stichprobenerhebung eine Zufallsvariable, deren Werte verändern sich je nach Stichproberealisation \(x_1,x_2,\ldots, x_n\). Die Werte schwanken weniger mit zunehmendem Stichprobenumfang \(n\).

Doch wie genau ist da die Beziehung zum Stichprobenumfang?

Die Antwort liefert der zentrale Grenzwertsatz (ZGS).

Wenn die Stichprobenvariablen \(X_1,X_2,\ldots, X_n\) identisch und unabhängig verteilt sind mit einem endlichen Mittelwert \(\mu\) und einer endlichen Varianz \(\sigma^2\), lautet die approximative Verteilung von Stichprobenmittel: \[\bar{X}\stackrel{a}{\sim} N(\mu, \frac{\sigma^2}{n}),\] bzw. in seiner standardisierten Version: \[\frac{\bar X-\mu}{\sigma/\sqrt{n}}\stackrel{a}{\sim}N(0;1).\]

Quiz

Wie das Ganze praktisch funktioniert, kannst du in der interaktiven Datenbank-App unten ausprobieren.

Schätzung auf Basis einer Stichprobe

  • \((X_1,\ldots,X_n)\) bezeichnen eine Zufallsstichprobe vom Umfang \(n\) zu \(X\).

  • Der Schätzer \(\bar{X}=\frac 1n \sum_{i=1}^n X_i\) vor der Stichprobenerhebung eine Zufallsvariable

  • mit der approx. Verteilung: \(\bar{X}\stackrel{a}{\sim} N(\mu, \frac{\sigma^2}{n})\) bzw. standardisiert: \(\frac{\bar X-\mu}{\sigma/\sqrt{n}}\stackrel{a}{\sim}N(0;1).\)

Die eigentliche Aufgabe

Kannst den benötigten Stichprobenumfang \(n\) finden, so dass mit Wahrscheinlichkeit von mindestens \(\color{green} {95\%}\) in deiner Umfrage-Simulation das mittlere Alter der Kunden mit \(\color{red}{Präzision}\) von \(\color{blue}1\) Jahr geschätzt werden kann?

Dies bedeutet \(\mathbb P(\color{red}{|\bar X-\mu|}\leq \color{blue}{1})\geq \color{green}{0,95}\) oder equivalent \(\mathbb P(\color{red}{-\color{blue}1\leq \bar X-\mu\leq \color{blue}1})\geq \color{green}{0,95}\). Benutze \(\frac{\bar X-\mu}{\sigma/\sqrt{n}}\stackrel{a}{\sim}N(0;1)\) und stelle das Ganze nach \(n\) um.

Hinweis \[\begin{align*}&~~~~~~\mathbb P(\color{red}{-\color{blue}1\leq \bar X-\mu\leq \color{blue}1})\geq \color{green}{0,95}\\ &\Leftrightarrow \mathbb P\left({-\frac{\color{blue}1}{\sigma/\sqrt{n}}\leq \frac{\color{red}{\bar X-\mu}}{\sigma/\sqrt{n}}\leq \frac{\color{blue}1}{\sigma/\sqrt{n}}}\right)\geq \color{green}{0,95}\\ &\Leftrightarrow \mathbb P\left({q_{\color{green}{0,025}}\leq \frac{\color{red}{\bar X-\mu}}{\sigma/\sqrt{n}}\leq q_{\color{green}{0,975}}}\right)\geq \color{green}{0,95},\\ &\Leftrightarrow \mathbb P\left({-q_{\color{green}{0,975}}\leq \frac{\color{red}{\bar X-\mu}}{\sigma/\sqrt{n}}\leq q_{\color{green}{0,975}}}\right)\geq \color{green}{0,95},\\ \end{align*}\] wobei \(q_{\alpha}\) ist das \(\alpha\)-Quantil der Standardnormalverteilung. Beachte: \(0,975 = 1-(1-\color{green}{0.95})/2 = (1+\color{green}{0,95})/2\). In diesem Fall, nehmen wir also \(q_{0,975}= 1,96.\) Durch die obere Rechnung gilt \(q_{0,975} \geq \frac{\color{blue}{1}}{\sigma/\sqrt n}\) oder \(n \geq \left(\frac{q_{0,975}\cdot \sigma}{\color{blue}{1}}\right)^2.\)

Beachte…

… dass der Stichprobenumfang von der unbekannten Varianz in der Grundgesamtheit abhängig ist. In der Praxis, benutzt man eine Abschätzung der Varianz. Dabei sollte man einen eher höheren Wert annehmen.

Wenn es um die Schätzung eines Anteilswertes geht, ist es etwas einfacher - die maximale Varianz von so einem Anteil aus der Stichprobe beträgt \(\frac 14\).

Quiz

Coding

Mit Hilfe des Zentralen Grenzwertsatzes wird die Verteilung von von Stichprobenmittel durch die Normalverteilung approximiert: \[\bar X\sim N(\mu,\frac{\sigma^2}{n})\]

Du hast bereits die Parameter der Grundgesamtheit (Mittelwert \(30\) und Varianz \(100\)) aus der Kundentabelle ermittelt. Berechne nun die Wahrscheinlichkeit:

\[\mathbb P(29\leq\bar X\leq 31)\]

mit Hilfe von R-Funktion pnorm() für \(n=20\).*

pnorm(q=31, mean=NA, sd=NA) - pnorm(q=29, mean=NA, sd=NA)
pnorm(q=31, mean=30, sd=sqrt(5)) - pnorm(q=29, mean=30, sd=sqrt(5))

Berechne die Wahrscheinlichkeit

\[\mathbb P(29\leq\bar X\leq 31)\]

mit Hilfe von R-Funktion pnorm() fuer \(n=1000\).

pnorm(q=31, mean=NA, sd=NA) - pnorm(q=29, mean=NA, sd=NA)
pnorm(q=31, mean=30, sd=sqrt(0.1)) - pnorm(q=29, mean=30, sd=sqrt(0.1))

Finde das 95%-Quantil mit Hilfe von R-Funktion qnorm() für \(n=1000\).

Gesucht wird die Zahl: \[\begin{align} &q_{0,95},\\ &\text{so dass }\mathbb P(\bar X\leq q_{0,95}) = 0,95 \end{align}\]

qnorm(p=0.95, mean=NA, sd=NA)
qnorm(p=0.95, mean=30, sd=sqrt(0.1))

Nun kannst du die Formel zur Berechnung des optimalen Stichprobenumfangs, wenn eine bestimmte Genauigkeit genauigk und ein Sicherheitsniveau wniveau vorgegeben sind, implementieren.

Hinweis Beachte: aufgrund des Zentralen Grenzwertsatzes gilt: \(\frac{\bar X-\mu}{\sigma/\sqrt{n}}\stackrel{a}\sim N(0;1)\).
Wenn Vorgaben zu der Genauigkeit genauigk und dem Sicherheitsniveau wniveau existieren, bedeutet dies:
\(\mathbb P(|\bar X-\mu|\leq\) genauigk\()\stackrel{!}\geq\)wniveau,

oder standardisiert:
\(\mathbb P(-\sqrt{n}\)genauigk\(/\sigma\leq\frac{\bar X-\mu}{\sigma/\sqrt{n}}\leq \sqrt{n}\) genauigk\(/\sigma)\stackrel{!}\geq\)wniveau.

Letzteres führt nach Umformung zu:
\(2\Phi(\sqrt{n}\)genauigk\(/\sigma)-1\stackrel{!}\geq\)wniveau

und folglich
\(\sqrt{n}\)genauigk\(/\sigma\stackrel{!}\geq\Phi^{-1}\big((\)wniveau\(+1)/2\big)\).

Dabei bezeichnet \(\Phi(\cdot)\) die Verteilungsfunktion der Standartnormalverteilung und \(\Phi^{-1}(\cdot)\) ist das Quantil der Standardnormalverteilung. Versuch die Berechnungen nachzuvollziehen und stelle das Ergebnis zum Schluss nach \(n\) um.–>


Vervollstaendige die folgende R-Funktion, die als Argumente die verlangte Genauigkeit genauigk, das Wahrscheinlichkeitsniveau wniveau und die Varianz der Grundgesamtheit varianz akzeptiert und das notwendige Stichprobenumfang ausgibt.

Modifiziere die folgenden Code-Zeilen basierend auf deinen Berechnungen:

n_fun<-function(genauigk,wniveau,varianz){
  n<-ceiling(NA)
  return(n)
}
n_fun<-function(genauigk,wniveau,varianz){
  n<-ceiling((qnorm((wniveau+1)/2,0,1)/genauigk)^2*varianz)
  return(n)
}
n_fun(1,0.95,100)

Optimaler Stichprobenumfang

  • Für Sicherheitniveau \(w\), Genauigkeit \(g\) und Standardabweichung (ggfs. Abschätzung) \(\sigma\)

  • \(n \geq \left(\frac{q_{(1+w)/2}\cdot \sigma}{g}\right)^2.\)

Optimaler Stichprobenumfang

Die Antwort muss her!

Nun hast du genug experimentiert, die Chefin drängt, du muss eine Antwort liefern.

Der Schätzer für den Appnutzer-Anteil ist: \(\bar{X}=\frac 1n\sum_{i=1}^n X_i\) mit jedem \[X_i=\begin{cases}1, i-\text{ter Kunde wird die App nutzen},\\ 0, \text{sonst}. \end{cases}\]

Ähnlich wie in unserem Experiment “Kundenalter” ist \(\bar X\) approximativ normalverteilt mit dem Mittelwert \(p\) (das ist der wahre Anteil an Appnutzer in der Grundgesamtheit) und der Varianz von \(\frac{p(1-p)}{n}\). D.h. in deiner hergeleiteten Formel muss du \(\sigma^2\) durch \(p(1-p)\) ersetzen und kannst dann den Stichprobenumfang berechnen, oder?

Das Problem ist: WIR KENNEN \(p\) NICHT! Aber die Lösung ist einfach. Betrachte den Verlauf von \(f(p)=p(1-p)\). Welchen Wert nimmt die Funktion maximal an?

Verwende also die maximal mögliche Varianz für deine Berechnung!

Coding

Benutze deine kreierte Funktion n_fun() um den optimalen Stichprobenumfang fuer Genauigkeit von 0.01, Wahrscheinlichkeit von 0.95 und Varianz von 0.25 zu kalkulieren (modifiziere Zeile #6):

n_fun<-function(genauigk,wniveau,varianz){
  n<-ceiling((qnorm((wniveau+1)/2,0,1)/genauigk)^2*varianz)
  return(n)
}

n_fun(genauigk=NA,wniveau=NA,varianz=NA)
n_fun<-function(genauigk,wniveau,varianz){
  n<-ceiling((qnorm((wniveau+1)/2,0,1)/genauigk)^2*varianz)
  return(n)
}

n_fun(genauigk=0.01,wniveau=0.95,varianz=0.25)

Lösung verifizieren

Hier kannst du deine Lösung eintippen und sehen, ob sie korrekt ist (Spiele das Video bis zum Ende ab, dann kannst du die Lösung eintippen. Zum Einreichen drück ENTER):

Zusammenfassung