Gesamt- und Substichprobe auf Unterschiede testen

T-Test, U-Test, F-Test sowie weitere Tests und Gruppenvergleiche aller Art.

Gesamt- und Substichprobe auf Unterschiede testen

Beitragvon KingLouie » Fr 20. Jul 2018, 11:40

Hallo :)

Ich habe folgendes Problem:
Ich habe eine Gesamtstichprobe (N = 581) und eine Substichprobe (n = 71), bestehend aus den Personen aus der Gesamtstichprobe, die bestimmte Voraussetzungen erfüllen.
Nun würde ich die beiden Stichproben gerne auf Unterschiede testen, z.B. bezüglich Alter, Geschlechtsverteilung, Scores in Fragebögen etc.
Wie kann ich das tun? Denn, wenn ich einfach einen t-Test rechnen möchte, meckert R, dass die Variablen unterschiedliche Länge haben. Gibt es da irgendeine Möglichkeit, dass dies trotzdem funktioniert?

Schon einmal vielen lieben Dank :)
KingLouie
 
Beiträge: 13
Registriert: Do 5. Jul 2018, 09:59
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Gesamt- und Substichprobe auf Unterschiede testen

Beitragvon jogo » Sa 21. Jul 2018, 18:04

Hallo Louie,

kannst Du bitte den Code posten, der zu dem besagten Fehler führt?

Gruß, Jörg
jogo
 
Beiträge: 118
Registriert: Mo 26. Feb 2018, 09:56
Danke gegeben: 3
Danke bekommen: 0 mal in 0 Post

Re: Gesamt- und Substichprobe auf Unterschiede testen

Beitragvon KingLouie » So 22. Jul 2018, 10:38

Hallo Jörg :)

Also mein großer Datensatz heißt "Online_Data" und der kleinere "Lab_Data".

Ich hatte jetzt mal folgenden Befehl versucht, um zu überprüfen, ob die Stichproben sich im Alter unterscheiden:

t.test(Online_Data$age~Lab_Data$age)

Da erhalte ich folgende Meldung:

Error in model.frame.default(formula = Online_Data$age ~ Lab_Data$age) :
Variablenlängen sind unterschiedlich (gefunden für 'Lab_Data$age')

Allerdings ist mir auch aufgefallen, dass der T-Test auf diese Weise evtl. nicht so viel Sinn ergibt, weil ich ja keine "Gruppen-Variable" habe, die zwischen den beiden Stichproben unterscheidet.

Allerdings weiß ich mir gerade nicht anders zu helfen...Vielleicht hat jemand noch eine andere Idee?
KingLouie
 
Beiträge: 13
Registriert: Do 5. Jul 2018, 09:59
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Gesamt- und Substichprobe auf Unterschiede testen

Beitragvon jogo » So 22. Jul 2018, 12:22

Hallo Louie,

KingLouie hat geschrieben:t.test(Online_Data$age~Lab_Data$age)

Allerdings ist mir auch aufgefallen, dass der T-Test auf diese Weise evtl. nicht so viel Sinn ergibt, weil ich ja keine "Gruppen-Variable" habe, die zwischen den beiden Stichproben unterscheidet.
Du bist schon auf der richtigen Spur. Du möchtest wahrscheinlich folgendes:
Code: Alles auswählen
t.test(Online_Data$age, Lab_Data$age)
Manche Funktionen haben mehrere Aufrufkonventionen - je nach dem für welchen Zweck. Hier hilft es, die Dokumentation besonders gründlich zu lesen.
Code: Alles auswählen
?t.test
und sich die Beispiele vorführen zu lassen:
Code: Alles auswählen
example("t.test")


Noch eine Frage interessehalber:
Ist der Dataframe Lab_Data aus dem Dataframe Online_Data hervorgegangen (z.B. per Auswahl einer Teilmenge von Beobachtungen)?

Gruß, Jörg
jogo
 
Beiträge: 118
Registriert: Mo 26. Feb 2018, 09:56
Danke gegeben: 3
Danke bekommen: 0 mal in 0 Post

Re: Gesamt- und Substichprobe auf Unterschiede testen

Beitragvon KingLouie » So 22. Jul 2018, 13:05

Ah, da lag also der Fehler! Manchmal sind es die kleinen Dinge! Vielen Dank :)

Ja, die Lab Sample ist eine Substichprobe der Online Sample.

Dann müsste ich wahrscheinlich noch "paired=T" in den Befehl mit aufnehmen?

EDIT: Paired=T funktioniert nicht: Error in complete.cases(x, y) : nicht alle Argumente haben gleiche Länge
Auch beim Levene-Test, um auf Varianzhomogenität zu testen, habe ich dasselbe Problem:
leveneTest(Online_Data$age~Lab_Data$age)
Error in model.frame.default(form) :
Variablenlängen sind unterschiedlich (gefunden für 'Lab_Data$age')
KingLouie
 
Beiträge: 13
Registriert: Do 5. Jul 2018, 09:59
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Gesamt- und Substichprobe auf Unterschiede testen

Beitragvon jogo » So 22. Jul 2018, 15:03

KingLouie hat geschrieben:Ah, da lag also der Fehler! Manchmal sind es die kleinen Dinge! Vielen Dank :)

Ja, die Lab Sample ist eine Substichprobe der Online Sample.

ok, dann hättest Du
t.test(Online_Data$age ~ Auswahlbedingung)
verwenden können, wobei dann aber die beiden Gruppen entsprechend der Auswahlbedingung (TRUE/FALSE) unterschieden werden.

Dann müsste ich wahrscheinlich noch "paired=T" in den Befehl mit aufnehmen?
bisher sehe ich hierin alleine noch keine Begründung für die Verwendung von paired=TRUE.
Dies ist gegeben z.B. bei vorher/nachher-Vergleichen, wobei die Reihenfolge der Beobachtungsobjekte in beiden Datenreihen gleich sein muss.

EDIT: Paired=T funktioniert nicht: Error in complete.cases(x, y) : nicht alle Argumente haben gleiche Länge
Auch beim Levene-Test, um auf Varianzhomogenität zu testen, habe ich dasselbe Problem:
leveneTest(Online_Data$age~Lab_Data$age)
Error in model.frame.default(form) :
Variablenlängen sind unterschiedlich (gefunden für 'Lab_Data$age')
Aus welchem Paket ist die Funktion leveneTest(),
ist es diese: https://www.rdocumentation.org/packages ... LeveneTest
oder diese https://www.rdocumentation.org/packages ... evene.test
oder diese https://www.rdocumentation.org/packages ... leveneTest :?:

Gruß, Jörg
jogo
 
Beiträge: 118
Registriert: Mo 26. Feb 2018, 09:56
Danke gegeben: 3
Danke bekommen: 0 mal in 0 Post

Re: Gesamt- und Substichprobe auf Unterschiede testen

Beitragvon KingLouie » So 22. Jul 2018, 16:22

ok, dann hättest Du
t.test(Online_Data$age ~ Auswahlbedingung)
verwenden können, wobei dann aber die beiden Gruppen entsprechend der Auswahlbedingung (TRUE/FALSE) unterschieden werden.


Das würde dann aber bedeuten, dass ich keine Personen doppelt zählen kann, z.B. die, die sich sowohl in der Online- als auch in der Labor-Stichprobe befinden? Dann würde ich ja nur die Personen der Online-Stichprobe mit denen der Laborstichprobe vergleichen, die hier nicht beinhaltet sind, richtig?

Ist t.test(Online_Data$age,Lab_Data$age) denn nicht korrekt für meinen Fall?

Ich hatte jetzt den leveneTest() Befehl aus dem car Paket verwendet.
Habe es jetzt mal mit var.test() probiert, das scheint trotz unterschiedlicher Variablenlängen zu funktionieren :)
KingLouie
 
Beiträge: 13
Registriert: Do 5. Jul 2018, 09:59
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Gesamt- und Substichprobe auf Unterschiede testen

Beitragvon jogo » Mo 23. Jul 2018, 09:33

KingLouie hat geschrieben:
ok, dann hättest Du
t.test(Online_Data$age ~ Auswahlbedingung)
verwenden können, wobei dann aber die beiden Gruppen entsprechend der Auswahlbedingung (TRUE/FALSE) unterschieden werden.


Das würde dann aber bedeuten, dass ich keine Personen doppelt zählen kann, z.B. die, die sich sowohl in der Online- als auch in der Labor-Stichprobe befinden? Dann würde ich ja nur die Personen der Online-Stichprobe mit denen der Laborstichprobe vergleichen, die hier nicht beinhaltet sind, richtig?
ja, so ist es.

Ist t.test(Online_Data$age,Lab_Data$age) denn nicht korrekt für meinen Fall?
Das hängt von Deiner Fragestellung ab.

Ich hatte jetzt den leveneTest() Befehl aus dem car Paket verwendet.
also https://www.rdocumentation.org/packages ... leveneTest
Aber auch hier gilt:
man halte sich an die Dokumentation - wenn es verschiedene Aufrufkonventionen gibt:
wird die richtige verwendet und haben die Parameter die passenden Typen?

Habe es jetzt mal mit var.test() probiert, das scheint trotz unterschiedlicher Variablenlängen zu funktionieren :)
Aus der Beschreibung geht hervor, dass es sich um einen F-Test handelt.
https://mars.wiwi.hu-berlin.de/mediawik ... evene-Test

Gruß, Jörg
jogo
 
Beiträge: 118
Registriert: Mo 26. Feb 2018, 09:56
Danke gegeben: 3
Danke bekommen: 0 mal in 0 Post

Re: Gesamt- und Substichprobe auf Unterschiede testen

Beitragvon KingLouie » Mo 23. Jul 2018, 10:20

Das hängt von Deiner Fragestellung ab.


Ich wollte vorweg prüfen, ob es Unterschiede gibt zwischen der Online- und der Laborstichprobe, z.B. im Alter, im Geschlechterverhältnis oder in Fragebogen-Scores. Dafür müsste ich aber die Personen, die sich in beiden Stichproben befinden, doppelt zählen.



Ich denke, das Problem in meinem Fall ist, dass ich keine Gruppenvariable habe, sondern Unterschiede ja durch einen Vergleich zwischen Online_Data$age und Lab_Data$age testen möchte.

Aus der Beschreibung geht hervor, dass es sich um einen F-Test handelt.


Dann müsste man var.test() ja als Alternative verwenden können, wenn es sich bei beiden quasi um F-Tests handelt?


Vielen Dank für Deine Antworten :)
KingLouie
 
Beiträge: 13
Registriert: Do 5. Jul 2018, 09:59
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post


Zurück zu Tests und Gruppenvergleiche

Wer ist online?

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