Test für multiple Gruppen

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

Moderatoren: EDi, jogo

Antworten
zinbu
Beiträge: 22
Registriert: Fr Mai 08, 2020 10:38 am

Test für multiple Gruppen

Beitrag von zinbu »

Hallo zusammen,

ich suche nach einer eleganten Lösung um in meinem Datensatz Fishers Exact Tests für verschiedene Werte durchzuführen und nicht alles einzeln von Hand machen zu müssen.

Ich habe einen Datensatz mit einer Variablen für verschiedene "Krankheiten" "A bis F" und einer Variablen für Kontrollen ja/nein "x" oder" y".
In etwa so:

Code: Alles auswählen

x <- matrix(1:10, nrow=5, ncol=2,dimnames=list(c("A","B","C","D","F"), c("x","y")))

Ich möchte nun für jede Krankheit herausfinden ob diese bei Kontrollen häufiger oder seltener ist, im Vergleich zu allen anderen Probanden. Zunächst soll also zb für Krankheit "A" die Tabelle gebildet werden:
x y
A vorhanden 1 6
A nicht vorhanden 14 34
und dann der Test durchgeführt werden.

Bis jetzt versuche ich das umständlich indem ich aus den Daten kleinere Gruppen bilde und dann die p-Werte wieder von Hand in die Tabelle eintrage. Habt ihr vielleicht einen eleganteren Weg dafür?

LG
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Test für multiple Gruppen

Beitrag von bigben »

Schau mal, ob das so für Dich passt:

Code: Alles auswählen

x <- matrix(1:10, nrow=5, ncol=2,dimnames=list(c("A","B","C","D","F"), c("x","y")))

gesamt_x <- sum(x[,"x"])
gesamt_y <- sum(x[,"y"])

for(zeile in 1:nrow(x)){
  tabelle <- matrix(c(x[zeile, "x"], gesamt_x - x[zeile, "x"],
                      x[zeile, "y"], gesamt_y - x[zeile, "y"]), nrow = 2)
  
  cat("Zeile "); cat(zeile); cat(":\n")
  print(tabelle)
  cat("\np = "); cat(fisher.test(tabelle)$p.value)
  cat("\nOR = "); cat(fisher.test(tabelle)$estimate)
  cat("\n\n\n\n")  
}
LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
zinbu
Beiträge: 22
Registriert: Fr Mai 08, 2020 10:38 am

Re: Test für multiple Gruppen

Beitrag von zinbu »

ja cool danke dir, Bernhard!

Das hilft mir weiter :)
Antworten