Wilcox-Test mit for und if

Allgemeine Statistik mit R, die Test-Methode ist noch nicht bekannt, ich habe noch keinen Plan!

Moderatoren: EDi, jogo

Antworten
kevin

Wilcox-Test mit for und if

Beitrag von kevin »

Hallo zusammen,
erstmal möchte ich mich bedanken für mein letztes Thema, in dem mir super nett geholfen wurde ich herzlich aufgenommen wurde. Großes Lob an dieses Forum!!!
Doch nun zu meiner Frage:
Ich habe folgenden Code bekommen, und kann ihn leider nicht interpretieren bzw verstehen, was da genau gemacht wird und was mir diese Ergebnisse sagen:

Code: Alles auswählen

wilcox.test(xy_ja$Dosis,xy_nein$Dosis)
for(i in 1:1000){
  if(i==1){t.test<-data.frame()}  
  t<-wilcox.test(sample(xy_ja$Dosis,100),sample(xy_nein$Dosis,100))
  t.test[1,i]<-t$p.value
  if (i==1000){print(length(t.test[t.test[1,]<0.05])/1000)}
Gruß
Zuletzt geändert von kevin am Fr Sep 01, 2017 9:04 am, insgesamt 1-mal geändert.
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Wilcox-Test mit for und if

Beitrag von EDi »

Sieht mir aus wie ein nicht-parametrischer bootstrap, wobei ich zwei Sachen nicht verstehe:

* Warum ist das N bei 200 (beim boostrap sollte das dem originalem N entsprechen)
* Warum wird der p-Wert verglichen (normalerweise wir die TestStatistik der bootstraps genommem um den p-Wert zu berechnen. Im Falle hier wäre das die Mittelwertsdifferenz).

Vielleicht ist es aber auch eine Art power simulation? - Aber wieso dann der Bootstrap???
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Wilcox-Test mit for und if

Beitrag von bigben »

Ich würde sagen, dass da jemand herausfinden möchte, ob für eine bestimmte Testsituation der Rangsummentest oder der t-Test häufiger signifikant wird. Wer auch immer das geschrieben hat, hat einen fürchterlichen Programmierstil ( :!: t.test<-data.frame() und dann der ganze Kram in der for-Schleife, der nicht in die for-Schleife gehört).

Übersetzt heißt der Code: Wenn man 1000mal Stichproben von der Größe 100 von der Neigung der Ja- und Nein-Gruppe vergleich, welcher von beiden Tests wird dann häufiger signifikant.

Bei Normalverteilung würde man dem t-Test die größere Power zutrauen, je stärker die Abweichung von der Normalverteilung ist, umso weniger muss das gelten. Wie auch immer, danach sollte man den Test jedenfalls nicht auswählen.

Was sagt uns das? Sei vorsichtig, was Du von der Person lernst, die Dir diesen Code gegeben hat.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Wilcox-Test mit for und if

Beitrag von jogo »

Der Programmierstil des Codes, den Du da erhalten hast, ist unterirdisch.
Ich habe mal versucht, den ersten Teil etwas kantiger (siehe footer von Bernhard) zu progammieren:

Code: Alles auswählen

wilcox.test(daten_ja$Neigung, daten_nein$Neigung)
N <- 1000
w.Test.p <- replicate(N, wilcox.test(sample(daten_ja$Neigung,100), sample(daten_nein$Neigung,100)$p.value) )
mean(w.Test.p < 0.05)

#ttest
# ...
und der zweite Teil ist dann nicht viel anders:

Code: Alles auswählen

#ttest
t.test(daten_ja$Neigung, daten_nein$Neigung)
N <- 1000
t.Test.p <- replicate(N, t.test(sample(daten_ja$Neigung,100), sample(daten_nein$Neigung,100)$p.value) )
mean(t.Test.p < 0.05)
Gruß, Jörg
Antworten