hallo zusammen,
im anschluss an unsere gestrige diskussion, in der es darum ging, was genau denn nun die “estimates” der ß-koeffizienten ausdrücken, versuche ich mal, etwas licht ins dunkel zu bringen.
also los: verdeutlichen wir uns das ganze mal anhand eines beispiels minimaler komplexität. dazu nehmen wir mal echte daten (nämlich Wiechmann in prep a … siehe “research”; da ist dann n “abstract” zur studie)
sagen wir, wir interessieren uns für die produktion nicht-obligatorischer relativpronomina und wir vermuten, dass die produktion von “that” abhängig ist, vom typ des subjektes des RC
gegeben sind nun: counts der 2 faktoren (relativizer = absent/present & RC.subject = lexical/pronominal)
wir haben n=324 relevante datenpunkte, die sich so verteilen

der x^2 test unten deutet schon an, dass da offensichtlich ein starker zusammenhang besteht (goodbye H0!)
wir können nun auf der grundlage des tables das chancenverhältnis (also das odds ratio) berechnen:
dabei gilt:
A = relativizer omitted (absent) bei lexikalischem subjekt
B = relativizer omitted (absent) bei pronominalem subjekt
odds(A) = p(A)/(1-p(A)) # odds definiert über probabilities
odds ratio = odds(A) / odds(B)
wir können das nun direkt über die kontingenztafel berechnen:
odds(A) = 9/84 # d.h., die chance, dass wir omission bei lexikalischem subjekt haben, ist 9 zu 84
odds(B) = 145/86 # d.h., die chance, dass wir omission bei pronominalem subjekt haben, ist 145 zu 86
wir können das ganze in ein oder zwei schritten ausrechen; letzteres sieht dann so aus:
odds ratio = (9/84) / (145/86)
und das ist equivalent zu
odds ratio = (9*86) / (145*84) # klammerung ist natuerlich unwichtig hier
daraus ergibt sich dann ein wert für das odds ratio von 0.063
in R kann man das übrigens bequem und schnell rechnen, wenn man aus “vcd” die funktion “oddsratio” anwendet:
oddsratio(table, log=F) # bei log = T bekämen wir den natürlichen logarithmus dieses wertes, der als assoziationsmaß oft benutzt wird; aber wir wählen den wert “FALSE”
was sagt und das jetzt?
der wert 0.063 sagt uns, dass die chance, relativizer omission mit lexikalischen subjekten 0.063 mal so hoch ist, wie die chance, relativizer omission mit pronominalen subjekten zu haben.
aber so denkt ja kein mensch; hätten wir die frage bloß umgekehrt gestellt; dann wär alles recht intuitiv:
na gut: tauschen wir halt die spalten für lexical und pronominal (drehen also die perspektive um). dann bekommen wir [ (145*84)/(9*84) = ] 15.73 und das sagt nun, dass die chance, relativizer omission mit pronominalen subjekten 15.73 mal so hoch ist, wie die chance, relativizer omission mit lexikalischen subjekten zu haben.
so weit, so gut
aber was hat das nun mit den koeffizienten in unserem log. reg. model zu tun
um das gaaanz klar zu machen habe ich unsere dependent var, relativizer omission mal umkodiert, so dass
omission = 1 bedeutet, da wurde der relativizer weggelassen und
omission = 0 bedeutet, da wurde der relativizer nicht weggelassen
wir fitten das mal mit “glm” und kriegen diesen output

wir sehen da also einen geschätzten ß-koeffizienten für RC.subjectprn (also pronominal) von 2.75
wenden wir darauf die exponentialfunktion an [in R mit exp(coefficients(model)) , oder meinetwegen auch einfach exp(2.7560)], bekommen wir obigen wert von
exp(coefficient) = 15.73 = odds ratio (aus der perspektive: pronominal zu lexical subject); das bedeutet nun, dass die chance auf relativizer omission fast 16 mal größer ist, wenn das RC-subjekt pronominal ist (ggü. dem fall, dass es lexikalisch ist).
daraus folgt, dass unsere koeffizienten im modell als log(odds ratios) ausgedrückt werden # und nicht als log(odds), bis auf den intercept: da ist es tatsächlich ein ausdruck der odds, aber dazu naechstes mal mehr
ok, hier könnten wir aufhören. aber oft wird dafür argumentiert, die koeffizienten noch weiter zurückzuwandeln, um “changes in predicted probabilities” zu bekommen
kann man ja machen (das manuelle berechnen sollte ja nun klar sein [ p = odds/(1+odds) ], einfacher gehts mit der R-funktion “inv.logit” aus der library “gtools”; lädt man die, kann nun anwenden:
inv.logit(coefficients(model)) und bekommt
für RC.subjectprn einen wert von 0.9402501
und hier wirds haarig - finde ich-, denn nun muessen wir uns ja fragen, was der wert uns nun genau sagen will…
ist die wahrscheinlichkeit für relativizer omission nun um 94% größer, wenn wir es mit pronominalen subjekten zu tun haben, als wenn wir es mit lexikalischen subjekten zu tun haben? … oder gegenüber dem default (also, ich meine, ohne wissen um den faktor)? …oder wie?
und wenn ja, muss man sich nun nicht fragen, ob das tatsächlich leichter zu interpretieren ist als ein odds ratio?
vielleicht wird das klarer, wenn wir uns mal die modellvorhersagen anschauen; dazu koennen wir die function “predict” verwenden (eigentlich predict.glm … aber das peilt R automatisch)
na jut,… dann wollen wir mal:
als erstes berechnen wir die vorhersagen in logits, in der hoffnung, so schneller irgendwelche werte wiederzuerkennen.
predicted.logits = predict(model, type”link”) # type= link spezifiziert hier, dass die werte in logits ausgedrückt werden, denn das ist ja unsere link-funktion
dann plotten wir den kram mal mit
plot(predicted.logits~RC.subject)
und so sieht das dann aus:

wir sehen auf dem plot die werte -2.23 (für die variante RCsubject=lexical) und 0.52 (für die variante RCsubject=pronominal)
wir koennen das sehen, wenn wir den vektor “predicted.logits” callen; dort wird jeder zelle (factor-level combination) einer der beiden werte zugeordnet; d.h. wir bekommen 324 schätzungen (= sample size); da wir nur einen binaeren faktor im modell haben, bekommen wir auch nur 2 typen von werten, die mit den jeweiligen factor-levels korrespondieren.
die einzelnen vorhersagen koennen wir auch mal plotten mit
plot(predicted.probability, ylim=c(0,1), ylab=”pred. probability for r-omission”, xlab=”observations in data set”)
das sie dann so aus:

das vergleichen wir nun mit:
predicted.probabilities = predict(model, type=”response”) # type= response spezifiziert hier, dass die werte in wahrscheinlichkeiten ausgedrückt werden, denn wir wollen wissen, wie sich P(Y=1) in abhängigkeit von RC.subject einschätzen laesst. dann mal sehen:
plot(predicted.probabilities~RC.subject) # und das ergibt dann

die werte dort sind:
0.627 für den fall, dass das RC-subjekt pronominal ist und
0.097 für den fall, dass das RC-subjekt lexikalisch ist
aber das ist nun irgendwie auch n bischen lame, denn das haette ich auch im kopf mit hilfe der kontingenztafel ausgerechnete haben können:

naja…
aber zurück zu dem in (changes in) Pr überführte ß-koeffizienten. der hatte nun aber ja einen wert von 0.9402501. bedeutet das nun, dass die wahrscheinlichkeit für r-omission bei pronominalen subjekten auf 94% geschätzt wurde? das sieht hier ja ganz so aus.
aber das passt aber nicht wirklich zu der “changes in probability”-idee …
zwischenstand: da bleib ich lieber bei den odds ratios
best,
daniel
PS: hier noch ein paar kommentare zu den estimates; speziel den zurückgewandelten logits:
wir wissen ja … :
- logistic slope (= ß-) coefficients can be interpreted as the effect of a one unit change in the X variable on the predicted logits (with the other variables in the model held constant)
- so the estimate indicates how a one unit change in X effects the log of the odds (when the other variables in the models are held constant)
daraus folgt:
- odds ratios in LR can be interpreted as the effect of a one unit change in X in the predicted odds ratio (with the other variables in the model held constant)
- wir bekommen also: odds (if the corresponding variable is incremented by 1) / odds (if the corresponding variable is NOT incremented)
- und das entspricht: P(event| x + 1) / (1 - P(event| x + 1)) / P(event| x) / (1 - P(event| x))
der P wert, den wir aus der anwendung von inv.logit(coefficients) bekommen entspricht nun Odds Ratio / 1 + odds ratio = (15.79/1+15.79 = 0.94) # inv.logit ist in library(gtools)