Contingency Table

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

Moderatoren: EDi, jogo

Antworten
danilov
Beiträge: 2
Registriert: Mi Sep 16, 2020 9:30 pm

Contingency Table

Beitrag von danilov »

Ich habe zwei reader die jeweils Bewertungen der gleichen Patienten auf einer Ordinalskala von 1-4 vergeben (nicht alle Patienten werden bewertet). Die Daten (Typ int) schauen etwa so aus

Code: Alles auswählen

  
     readerA readerB
1       NA      NA
2       NA      NA
3       NA      NA
4        2       2
5       NA      NA
6       NA      NA
7       NA      NA
8       NA      NA
9       NA      NA
10      NA      NA
11      NA      NA
12      NA      NA
13      NA      NA
14       2       1
15       2       1
16       1       4
17      NA      NA
18       2       3
19       2       2
20      NA      NA
21      NA      NA
22       3       2
23       2       1
24      NA      NA
25      NA      NA
26      NA      NA
27      NA      NA
28      NA      NA
29      NA      NA
30      NA      NA
31      NA      NA
32      NA      NA
33      NA      NA
34      NA      NA
35      NA      NA
36       3       1
37      NA      NA
38      NA      NA
39       2       1
40       3       3
41      NA      NA
42       2       2
43       2       2
44      NA      NA
45       2       2
46      NA      NA
47      NA      NA
48      NA      NA
49      NA      NA
50      NA      NA
51      NA      NA
52      NA      NA
53      NA      NA
54      NA      NA
55      NA      NA
56       3       2
57      NA      NA
58       2       2
59       2       1
60       2       1
61      NA      NA
62      NA      NA
63      NA      NA
64       2       2
65      NA      NA
66      NA      NA
67       1       2
Ich würde das Agreement der Reader gerne mit dem weighted Kappa bestimmen. Dafür benötige ich eine Contingency Tabelle der Daten. Ein

Code: Alles auswählen

table(name_des_datenframes)
liefert mit eine solche Tabelle:

Code: Alles auswählen

       readerB
readerA 1 2 3 4
      1 0 1 0 1
      2 6 7 1 0
      3 1 2 1 0
Ein vcd::Kappa(name_der_contingency_table) bringt aber die Fehlermeldung
Fehler in crossprod(colFreqs, rowFreqs) : nicht passende Argumente
. Ich würde vermuten, weil die Tabelle nicht 4x4 sondern 4x3 ist (weil ReaderA hier keine 4 vergeben hat).
Kann mir jemand helfen das Problem zu lösen?
bigben
Beiträge: 2781
Registriert: Mi Okt 12, 2016 9:09 am

Re: Contingency Table

Beitrag von bigben »

danilov hat geschrieben: Mi Sep 16, 2020 9:43 pmIch würde vermuten, weil die Tabelle nicht 4x4 sondern 4x3 ist (weil ReaderA hier keine 4 vergeben hat).
Kann mir jemand helfen das Problem zu lösen?
Hallo Danilo,

Wenn Du table mit einem Factor fütterst, dann werden laut Voreinstellung immer alle Faktorlevel gezählt und ausgegeben. Etwa so:

Code: Alles auswählen

readerA <- c(1, 2, 1)
readerB <-c(1, 2, 3)


A <- factor(c(1, 2, 1), levels = c(1, 2, 3, 4, 5, 6))
B <- factor(c(1, 1, 1), levels = c(1, 2, 3, 4, 5, 6))

table(A, B)
Das wird dann zu

Code: Alles auswählen

> table(A, B)
   B
A   1 2 3 4 5 6
  1 2 0 0 0 0 0
  2 1 0 0 0 0 0
  3 0 0 0 0 0 0
  4 0 0 0 0 0 0
  5 0 0 0 0 0 0
  6 0 0 0 0 0 0
obwohl ja die meisten dieser Werte gar nicht vorkamen.

HTH,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
danilov
Beiträge: 2
Registriert: Mi Sep 16, 2020 9:30 pm

Re: Contingency Table

Beitrag von danilov »

Vielen Dank, die Konversion der Integer zu Faktoren und das manuelle Hinzufügen der fehlenden Levels hat funktioniert. Jetzt klappt es!
Antworten