Seite 2 von 2

Re: Items zu ordinalem Sum-Score, jedoch nicht mehr für Regression geeignet?

Verfasst: Di Feb 04, 2020 8:34 am
von bigben
Nachtrag: Stammt Deine Funktion polr aus dem Package MASS? Wahrscheinlich schon. Was ergibt denn

Code: Alles auswählen

polr(ER03 ~ EM_sum, data=ER, Hess=TRUE)$df.freedom
Sollte man nicht aus den residual degrees of freedom und der Residual deviance einen Test basteln können?

(Wobei ich eigentlich immer noch gedanklich bei der Spearman-Korrelation stecke. KISS - keep it simple, stupid)

LG,
Bernhard

Re: Items zu ordinalem Sum-Score, jedoch nicht mehr für Regression geeignet?

Verfasst: Mi Feb 05, 2020 6:01 pm
von RRechnende
Freiheitsgrade habe ich (eigentlich) 180. Ja, polr ist vom Paket MASS. Ich habe den R-Input mit den Freiheitsgraden gerade mal ausprobiert. Output ist NULL


Ach, die Spearman-Korrelation... Das hatte ich natürlich auch ausprobiert. Dadurch, dass ich

Code: Alles auswählen

ER$ER03 = ordered(ER$ER03)
die Variable als ordinal skaliert definierte, geht bei mir leider die Spearman-Korrelation nicht, obwohl diese ja eigentlich auch für ordinale Variablen in Ordnung wäre. Da ich dann hier nicht mehr weiter kam, habe ich mich für die ordinal logistische Regression entschieden. Ist das eine falsche Vorgehensweise?

R-Input:

Code: Alles auswählen

cor.test(ER$ER03, ER$EM_sum, method = "spearman")
R-Output:

Code: Alles auswählen

> cor.test(ER$ER03, ER$EM_sum, method = "spearman")
Fehler in cor.test.default(ER$ER03, ER$EM_sum, method = "spearman") : 
  'x' muss ein numerischer Vektor sein
> 
Wenn ich die Normalverteilung ausgeben lasse, sehen alle drei Kurven gleich aus, bzw. legen sich übereinander und sind eins zu eins gleich. Es kommt eine Fehlermeldung, weil hier
col="violet", , lty=2,
etwas fehlt?
bigben hat geschrieben: Di Feb 04, 2020 8:15 am

Code: Alles auswählen

curve(dnorm(x), from = -5, to = 5, col="blue")
curve(dt(x, 50), from = -5, to = 5, col="red", add = TRUE)
curve(dt(x, 100), from = -5, to = 5, col="violet", , lty=2, add = TRUE)
legend("topright", fill = c("blue", "red", "violet"), 
       legend = c("Normal", "t mit df = 50", "t mit df = 100"))
Also kann ich auch einfach den t-Wert berichten. Da war ich mir ja unsicher. Denke nicht, dass mich der Prof dafür umbringen wird und wahrscheinlich weiss er selber nicht, wie das anders sein sollte :mrgreen: Und wegen Noten: Es ist eine unbenotete Studienleistung, also eigentlich krass, dass ich überhaupt so viel Zeit da rein stecke. Aber ich möchte es nun auch genau wissen... Lerne das nämlich nicht für nichts :)

Re: Items zu ordinalem Sum-Score, jedoch nicht mehr für Regression geeignet?

Verfasst: Mi Feb 05, 2020 7:27 pm
von bigben
Nein, falsch ist das nicht, nur viel komplizierter als eine Korrelation . Das ordered wäre mit einem as.numeric ja auch wieder rückgängig zu machen. Wenn es um die Signifikanz geht würde ich nur korrelieren, wenn es um die Vorhersage von Wahrscheinlichkeiten geht, regredieren. Oder regredieren um das zu lernen ;-)

LG,
Bernhard

Re: Items zu ordinalem Sum-Score, jedoch nicht mehr für Regression geeignet?

Verfasst: Mi Feb 05, 2020 9:02 pm
von RRechnende
Da ich nun eigentlich alles fertig habe und nur noch darüber nachgedacht habe, wie ich nun den ausgegebenen T-Wert berichten soll (dieser Teil des Berichtes ist auch schon geschrieben), belasse ich es nun bei der ordinalen logistischen Regression und werde auch den von EDi erklärten Weg nutzen, um (für mein Gewissen) einen runden Schluss zu ziehen bei der Berichtung, also den (überbewerteten) p-Wert dennoch einfügen.

Der Output der Spearman's Rangkorrelation zeige ich euch dennoch auch nochmal (da es mit as.numeric nun wirklich auch geklappt hätte, danke dafür! Manchmal sieht man vor lauter Bäumen den Wald nicht, wobei so richtig wäre das dann auch wieder nicht, oder? Wieso kann R eine ordinalskalierte Variabel in einer Spearman Korrelation nicht als solche annehmen? Irgendwie verwirrt mich bei solchen Dingen R gerne immer mal wieder...)

Code: Alles auswählen

Spearman's rank correlation rho

data:  ER$EM_sum and ER$ER03
S = 464048, p-value < 2.2e-16
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.5742037 
Ich danke euch herzlich für eure Hilfe!!

Re: Items zu ordinalem Sum-Score, jedoch nicht mehr für Regression geeignet?

Verfasst: Mi Feb 05, 2020 9:31 pm
von bigben
RRechnende hat geschrieben: Mi Feb 05, 2020 9:02 pmWieso kann R eine ordinalskalierte Variabel in einer Spearman Korrelation nicht als solche annehmen? Irgendwie verwirrt mich bei solchen Dingen R gerne immer mal wieder...)
Ich halte das auch für blöd gemacht und bin selbst mehr als einmal darüber gestolpert. Hat ja keiner gesagt, dass sich an R nichts verbessern ließe. Wenn es einen wirklich stören sollte, dann kannst Du Dir eine eigene Funktion dafür schreiben. Sowas in der Art

Code: Alles auswählen

spearman.test <- function(x, y) cor.test(as.numeric(x), as.numeric(y), method="spearman")
sollte funktionieren :mrgreen:

Lohnt sich aber nicht, sich daran zu gewöhnen - bestimmt wird das Hadleyverse demnächst um das Package tidycor erweitert, mit dem dann dann ganz aufgeräumt Korrelationen rechnen kann. :roll: Da werden dann 23 präzise Funktionen definiert (z. B. nf_spearman wenn man ein numeric mit einem factor korrellieren will) und bei allen wird einheitlich der Korrelationskoeffizient, p-Wert und die CI-Intervallgrenzen als tibble zurückgegeben :!: Natürlich müssen auch beide zu korrellierenden Variablen in einem Tibble stecken, damit man sie mit %>% in die Funktionen hineinpumpen kann.

LG,
Bernhard

Re: Items zu ordinalem Sum-Score, jedoch nicht mehr für Regression geeignet?

Verfasst: So Feb 16, 2020 8:26 pm
von EDi
bigben hat geschrieben: Di Feb 04, 2020 8:15 am
EDi hat geschrieben: Mo Feb 03, 2020 8:27 pmWer p-Werte unbeding braucht :roll: Die bringen sowie keinen Mehrwert...
Na doch, die helfen ganz erheblich wenn man publizieren möchte und gute Noten bekommen möchte.
Ich protestiere! Ich habe sowohl Publikationen als auch Statistik-Kurse die ohne ohne p-Werte gemacht ;)
kannst Du Dir eine eigene Funktion dafür schreiben. Sowas in der Art
Ich würde pearson nehmen und ein rank() dazupacken:

Code: Alles auswählen

set.seed(1)
x <- 1:5
y <- 1:5 + rnorm(5)
xf <- factor(x, ordered = TRUE)

cor(x, y,  method = 'pearson')
cor(x, y, method = 'spearman')
cor(rank(x), rank(y), method = 'pearson')

# with xf
cor(xf, y, method = 'spearman') # fails
cor(as.numeric(xf), y, method = 'spearman')
cor(rank(xf), rank(y), method = 'pearson')