Multiples Testen und flexible Stichproben

Allgemeine Fragen rund um Statistik mit Stata.

Multiples Testen und flexible Stichproben

Beitragvon rob7one » Fr 24. Jan 2020, 18:31

Guten Tag liebe Community,

im Rahmen einer Seminarbeit muss ich eine Aufgabenstellung lösen, welche ich nicht nachvollziehen kann. Wahrscheinlich liegt das schlicht und ergreifend daran, dass meine Statistikkenntnisse zu begrenzt sind. Ich hoffe jemand hier im Forum ist so nett und kann mir etwas Licht in Dunkle bringen, denn wie man es von Studenten üblicherweise kennt, ist der Zeitpunkt für Abgabe nicht mehr weit. Ich mache es nicht spannender als nötig, hier die Aufgabe:

Kurzer Hinweis: Für mich ist in erster Linie Aufzählung 3. der Aufgabenstellung von Bedeutung. Wenn es also isoliert zu lösen ist, würde es mir ausreichen nur diesen Punkt zu lösen.

Thema: Multiples Testen und flexible Stichproben

Stellen Sie sich folgende Situation vor: Es gibt ein beobachtbares stetiges Merkmale Xi ohne Einfluss auf eine abhängige Variable Y. Stellen Sie sich beispielsweise eine Maschine vor, die korrekt im Mittel 8mm lange Stifte produziert, aber eine Streuung hat. Stellen sie sich vor, dass ein Forscher selbst die Stichprobe sammelt und jeweils selbst bestimmen kann, wann das Sammeln von Daten für eine Stichprobe beendet wird. Es gibt nur eine minimale und eine maximale Größe der Stichprobe. Der Forscher möchte unbedingt einen statistisch signifikanten Unterschied finden und beendet dann die Erhebung, wenn er eine statistisch signifikante Abweichung von 8 gefunden hat.

1. Als ersten Schritt simulieren Sie den normalen t-Test und interpretieren Ihre Ergebnisse in Bezug auf den alpha- und beta-Fehler.

2. Als zweiten Schritt implementieren Sie dann obigen Prozess und analysieren dessen Eigenschaften, insbesondere wie der alpha-Fehler abhängt von der minimalen Stichprobengröße, von der Streuung der Maschine und vom Signifikanzniveau.

3. Zeigen Sie auch, wie die Verteilung der Stichprobengrößen aussieht, die vom Forscher über viele Stichproben geliefert werden würde.

4. Recherchieren Sie auch zum Thema der „pre-registered studies“ und diskutieren Sie dies im Kontext Ihrer Beobachtungen.

Das folgende Programm hilft Ihnen bei der Lösung der Aufgabe:

clear all
set seed 765856

/* ============================================================================
SCHRITT 1: T-Test
============================================================================ */
capture program drop sim01
program sim01, rclass
// Programm hat 3 Parameter
// n = Stichprobengröße
// beta = wahrer durchschnittlicher Wert
// sd = Standardabweichung des Prozesses
// alpha = gewünschtes Signifikanzniveau
// n = Stichprobengröße
args n beta sd alpha
drop _all
// ==== Stichprobe erzeugen
set obs `n'
gen x = rnormal(`beta',`sd') // wahrer Mittelwert = beta, Standardabweichung=1
ttest x==8
return scalar se = r(se)
return scalar p = r(p)
return scalar diff = r(mu_1)
if r(p) < `alpha' {
return scalar rejt = 1
}
else {
return scalar rejt = 0
}
end

// Beispiel
// ------------------------------------------------------------
// beta = wahrer durchschnittlicher Wert = 8.2 sowie 8.0
// sd = Standardabweichung des Prozesses = 0.3
// alpha = gewünschtes Signifikanzniveau = 0.05
// n = Stichprobengröße = 60

sim01 60 8.0 0.3 0.1
return li
sim01 60 8.0 0.3 0.05
return li
sim01 60 8.2 0.3 0.05
return li

simulate se=r(se) p=r(p) rejt=r(rejt) diff=r(diff), reps(5000) nodots: ///
sim01 60 8.0 0.3 0.1
sum se p rejt
// Wahrscheinlichkeit für Ablehnung der Hypothese ist um die 10% wenn es genau 8 ist,
// also gleich dem alpha
simulate se=r(se) p=r(p) rejt=r(rejt) diff=r(diff), reps(5000) nodots: ///
sim01 60 8.0 0.3 0.05
sum se p rejt
// Wahrscheinlichkeit für Ablehnung der Hypothese ist um die 5% wenn es genau 8 ist,
// also gleich dem alpha
simulate se=r(se) p=r(p) rejt=r(rejt) diff=r(diff), reps(5000) nodots: ///
sim01 60 8.2 0.3 0.05
sum se p rejt
// Wahrscheinlichkeit für Ablehnung der Hypothese ist deutlich höher als also,
// weil ein Effekt da ist
// umgekehrt ist nun wenn ein Effekt da ist von 8-8.2 die Wahrscheinlichkeit
// es nicht abzulehnen sehr klein


/* ============================================================================
SCHRITT 2: Mehrfaches Testen
============================================================================ */

capture program drop sim02
program sim02, rclass
// Programm hat 3 Parameter
// beta = wahrer durchschnittlicher Wert
// sd = Standardabweichung des Prozesses
// alpha = gewünschtes Signifikanzniveau
// min = minimale Stichprobe
// wir nehmen Stichprobe von 200 an
args beta sd alpha min
drop _all
// ==== Stichprobe erzeugen
set obs 200
gen id = _n // nummeriere alle Beobachtungen aufsteigend
gen x = rnormal(`beta',`sd') // wahrer Mittelwert = beta, Standardabweichung=1
gen p = .
gen se = .
gen rejt = .
// ==== jetzt arbeitet der Mitarbeiter die Stichprobe nacheinander ab und
// testet jeweils ob der Mittelwert von 8 abweicht, beginnt ab n=10
forvalues i=`min'(1)200 { // Setze für i nacheinander alle Werte von 10 bis 200 ein
ttest x==8 if id<=`i' // test für die ersten i Werte
replace se = r(se) if id==`i'
replace p = r(p) if id==`i'
}
replace rejt = p < `alpha'
// schau ob und wo der Test das erste Mal signifikant war
gsort -rejt id
return scalar rejt = (rejt[1]==1)
if rejt[1]==1 {
return scalar step = id[1]
}
else {
return scalar step = 250 // gibt Position 250 zurück wenn es nie signifikant war
}

end

sim02 8.0 0.3 0.05 10
return li

simulate rejt=r(rejt) step=r(step) , reps(1000): sim02 8.0 0.3 0.05 30
sum rejt
hist step, width(10)
/*
Der Mittelwert von rejt zeigt Ihnen an, wie oft fälschlicher eine signifikante
Stichprobe vom Mitarbeiter präsentiert wird, also wie oft der sagt, dass die
Maschine nicht =8 ist. Das ist der neue alpha-Fehler.
Das Historgramm zeigt an, nach wieviel Schritten das etwa der Fall ist. Der
Wert bei 250 zeigt an, wie oft eben nichts signifikant ist
*/

// verändern Sie doch mal die minimale Stichprobe
simulate rejt=r(rejt) step=r(step) , reps(1000): sim02 8.0 0.3 0.05 10
sum rejt
hist step, width(10)
// verändern Sie doch mal die minimale die Streuung
simulate rejt=r(rejt) step=r(step) , reps(1000): sim02 8.0 0.5 0.05 30
sum rejt
hist step, width(10)
// verändern Sie doch mal die minimale das Signifikanzniveau
simulate rejt=r(rejt) step=r(step) , reps(1000): sim02 8.0 0.5 0.10 30
sum rejt
hist step, width(10)
rob7one
 
Beiträge: 1
Registriert: Fr 24. Jan 2020, 18:04
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Multiples Testen und flexible Stichproben

Beitragvon Staxa » So 26. Jan 2020, 13:10

Was ist nun genau die Aufgabe und woher kommt der gezeigte Code? Mit Verlaub, wohl niemand wird das jetzt alles durchlesen und Bugs suchen. Bitte eine knappe, kompakte Frage. Zudem finde ich die Aufgabenstellung für Personen, die anscheinend bisher kaum Statistik hatten sehr anspruchsvoll und auch der gezeigte Code ist deutlich über Anfängerniveau.
Stata für Anfänger: www.statabook.com
Staxa
 
Beiträge: 680
Registriert: Di 27. Feb 2018, 12:56
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post


Zurück zu Statistik allgemein

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste

cron