Logistic Regression Jonathan Harrington Bitte lost.txt und lost2.txt laden – siehe Befehle in logistic.txt.

Slides:



Advertisements
Ähnliche Präsentationen
Spektrale Analysen in EMU-R: eine Einführung
Advertisements

Normalverteilte Zufallsvariablen
Aufgabe Analyse (Friedman-Test) von letzter Stunde wiederholen
Aufgabe Analyse (Friedman-Test) von letzter Stunde wiederholen
Formant-Analysen von Vokalen
Logistic Regression Jonathan Harrington Befehle: logistic.txt.
Generalised linear mixed models (GLMM) und die logistische Regression
Spektrale Analysen in EMU-R: eine Einführung Jonathan Harrington.
Mixed models Jonathan Harrington Die R-Befehle: mixed.txt
Die Varianzanalyse Jonathan Harrington.
Mehrfache und polynomiale Regression Jonathan Harrington Kriteria für die Durchführung einer Regression pfad = "Das Verzeichnis, wo die Daten gespeichert.
Mixed Models Jonathan Harrington library(ez) library(lme4)
Die t-Verteilung Jonathan Harrington.
Mehrfache und polynomiale Regression
Mixed models Jonathan Harrington
Logistische Regression und die Analyse von Proportionen Jonathan Harrington library(lme4) library(lattice) library(multcomp) source(file.path(pfadu, "phoc.txt"))
Kovarianz, Korrelation, (lineare) Regression
Kovarianz, Korrelation, (lineare) Regression
Logistic Regression Jonathan Harrington Befehle: logistic.txt.
Logistische Regression und die Analyse von Proportionen Jonathan Harrington library(lme4) library(lattice) library(multcomp) source(file.path(pfadu, "phoc.txt"))
Logistische Regression und die Analyse von Proportionen
Spektrale Analysen in EMU-R: eine Einführung
Logistische Regression und psychometrische Kurven
Die t-Verteilung (fortgesetzt)
Wann ist eine Regression zulässig? siehe siehe auch: UCLA Statistics Dept. Denise.
Parametrisierung von Spektra
Mehrfache und polynomiale Regression
Mehrfache und polynomiale Regression Jonathan Harrington Kriteria für die Durchführung einer Regression library(MASS) # ydata.txt und epg.txt in einem.
2 und Logistic Regression Jonathan Harrington Die Analyse von Proportionen: Befehle: proportion.txt Bitte lvoc.txt und lost.txt laden (siehe proportion.txt)
Die Analyse von Proportionen: c2 und Logistic Regression
4. Anwendung der logistic Regression auf die Berechung einer perzeptiven Grenzen zwischen Kategorien Experiment. Anhand der Sprachsynthese wurde ein F2-
Kovarianz, Korrelation, (lineare) Regression
Kovarianz, Korrelation, (lineare) Regression Jonathan Harrington BITTE NOCH EINMAL dframes.zip (Webseite 4.1) herunterladen und in pfad auspacken.
Logistische Regression und die Analyse von Proportionen Jonathan Harrington.
Forschungsstatistik II
Forschungsstatistik II
Hypothesen testen: Grundidee
Was steht in einer ANOVA - Tabelle?
Nachholung der Vorlesung vom Freitag
Kolmogorov-Smirnov-Test. A. N. Kolmogorov Geboren in Tambov, Russland. Begründer der modernen Wahrscheinlichkeitstheorie.
Klausur am :00 bis 13:00 Hörsaal Loefflerstraße und Hörsaal Makarenkostraße.
Tutorium
Tutorium
Unser zehntes Tutorium Materialien unter:
Vorlesung: ANOVA I
Vorlesung: ANOVA II.
Dummy-Variablen Gleicher Lohn bei gleicher Qualifikation: Frauen verdienen im Durchschnitt zwar weniger als Männer, aber ist die Ursache dafür in der Diskriminierung.
Wiederholung: Einfache Regressionsgleichung
Histogramm/empirische Verteilung Verteilungen
Logistische Regression
Die t-Verteilung und die Prüfstatistik
Globale Interpolations- und Prädiktionsverfahren
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Varianzanalyse mit Messwiederholungen
Die t-Verteilung Jonathan Harrington. Standard error of the mean (SE) ist die Standardabweichung von Mittelwerten Ich werfe 5 Würfel und berechne den.
Die t-Verteilung und die Prüfstatistik
Einige Kriterien für die Durchführung einer Varianzanalyse Jonathan Harrington.
Kapitel 3 Lineare Regression: Schätzverfahren
Kovarianz, Korrelation, (lineare) Regression
Die einfache/multiple lineare Regression
Statistiken je nach Messniveau
Die Varianzanalyse Jonathan Harrington library(ggplot2) library(ez)
Signifikanz – was ist das überhaupt?
Kovarianz, Korrelation, (lineare) Regression
Die Varianzanalyse Jonathan Harrington library(lattice) library(ez)
Die Varianzanalyse Jonathan Harrington library(ggplot2) library(dplyr)
Kovarianz, Korrelation, (lineare) Regression
Logistische Regression und psychometrische Kurven
Kovarianz, Korrelation, (lineare) Regression
 Präsentation transkript:

Logistic Regression Jonathan Harrington Bitte lost.txt und lost2.txt laden – siehe Befehle in logistic.txt

1. Logistic Regression: allgemeine Einführung Dalgaard, P. (2002) Introductory Statistics with R. Insbesondere Kap. 11 D. Cook, P. Dixon, W. M. Duckworth, M.S. Kaiser, K. Koehler, W. Q. Meeker and W. R. Stephenson. Binary Response and Logistic Regression Analysis. 6/Logistic%20Regression%20Analysis.doc Literatur Baayen, R.H. Analyzing Linguistic Data: A practical introduction to Statistics. S Johnson, Keith (in press). Quantitative Methods in Linguistics. Blackwell. Kapitel 5. Verzani, J. (2005). Using R for Introductory Statistics (Ebook ueber die LMU UB). Kapitel 12

1. Logistic Regression: allgemeine Einführung Mit logistic Regression wird eine Regressionslinie an Proportionen angepasst. Aus verschiedenen Gründen kann jedoch die lineare (least-squares) Regression nicht auf Proportionen angewandt werden. Vor allem liegen Proportionen zwischen 0 und 1 während lineare Regression keine solchen Grenzen kennt (und daher könnte ein lineares Regressionsmodell Proportionen unter 0 oder über 1 vorhersagen). Außerdem wird in der linearen Regression eine konstante Varianz angenommen; jedoch kann bewiesen werden, dass je höher der Proportionsdurchschnitt, umso größer die Varianz.

Diese (und andere) Probleme können überwunden werden: 1. wenn log-odds statt Proportionen modelliert werden 2. Durch Einsetzung von 'maximum likelihood' anstatt 'least squares'. 1. Logistic Regression: allgemeine Einführung y = mx + b logodds(y) = mx + b Least-squares Regression Logistic Regression Es wird nicht angenommen, dass die Werte Stichproben aus einer Normalverteilung sind. Ein Vorteil von logistic Regression:

Einige Daten high low In 1950 produzierten 30 Sprecher /lo:st/ und 5 /l ɔ st/. jahr = as.numeric(rownames(lost)) jahr = jahr lost

Log-odds pq=1-pOdds = p/qLog-Odds = log(p/q) log(4) = bedeutet 4:1 (wie im Pferderennen). Die Wahrscheinlichkeit vom Erfolg (p) ist 4 Mal so groß wie Scheitern (q) p: Proportion 'Erfolg'. lo:st l ɔ st 328 n 40 p 0.8 (prop. lOst)(prop. lo:st)

Log-odds also log (p/q) als Funktion von p Log-odds haben Werte zwischen ± Log-odds

2. Anwendung der logistic Regression in R: glm() Das Ziel: nach der Anwendung von logistic Regression geben wir einen beliebigen Jahrgang ein, und das Modell soll uns die Proportion von /lo:st/ vorhersagen. zB Eingabe 1962, Proportion (lo:st) = ? Jahr ist daher in diesem Fall die unabhängige Variable, Proportion von /lo:st/ die abhängige Variable. Mit logistic Regression ist die abhängige Variable immer ein kategorialer Wert von 2 Möglichkeiten: ja oder nein, rot oder grün, 0 oder 1, weiblich oder männlich, wach oder eingeschlafen, /lo:st/ oder /l ɔ st/, Erfolg oder Scheitern, usw.

g = glm(lost ~ jahr, binomial) Ergebnis: ein Log- Odd pro Jahr unabhängige Variable (der Jahrgang) bedeutet: logistic Regression ('binomial' weil wie in der binomialen Verteilung wir mit 2 Werten (ja/nein, Erfolg/Scheitern zu tun haben). wird modelliert durch Abhängige Variable Eine 2-spaltige Matrix: Anzahl von 'ja' und 'nein' (hier /lo:st/ und /lOst/) lost high low

Da die Ausgabe der Regression in log-odds ist, müssen wir die Proportionen ebenfalls umwandeln, wenn wir die Regressionslinie sehen wollen. Die vorhergesagten Werte überlagern text(jahr, predict(g), "x", col=3) Eine Abbildung der Daten in diesem Raum: # Proportion von /lo:st/ berechnen p = lost[,1]/apply(lost, 1, sum) # log-odds lodd = log(p/(1-p)) plot(jahr, lodd, type="b") # Regressionslinie überlagern abline(g, col=2) 3. Abbildung der Regressionslinie

Vorhersage: Wert für 1962 abline(h=m * 12 + k, lty=2, col="blue") abline(v= 12) m * x + k coef(g) (Intercept) jahr k = coef(g)[1]m = coef(g)[2]

Wir können durch die Transformation (2) die Regressionslinie auch in einem Raum von Jahr x Proportionen abbilden. Von Proportionen in log-odds Von log-odds zurück in Proportionen L = log(p/(1-p)) p = exp(L)/(1+exp(L)) [1] [1] 0.8 Abbildung der Regression (1) (2) p = 0.8

curve(exp(m*x + k)/(1+ exp(m*x+k)), xlim=c(0, 60), add=T, col=2) # Regression überlagern # Proportionen von /lo:st/ berechnen p = lost[,1]/apply(lost, 1, sum) plot(jahr,p) # Abbildung Jahr x Proportionen Die Regression coef(g) (Intercept) jahr k = coef(g)[1]m = coef(g)[2] Abbildung: Jahr x Proportionen

die vorhergesagten Werte liegen auf der Kurve: vorher = predict(g) text(jahr, exp(vorher)/(1+exp(vorher)), "x", col=3) Abbildung Jahr x Proportionen 1962exp(m*12 + k)/(1+ exp(m*12+k))

Lineare Regression: R 2 oder adjusted R 2 und ein F-test Logistic Regression: G 2 und ein 2 -test. G 2 = Null deviance – residual deviance Für ein signifikantes Ergebnis wollen wir daher, dass Null deviance hoch und Residual deviance klein ist. wenn dieser Wert 0 wäre, dann wären alle Proportionen in allen Jahren gleich (und die Regressionslinie wäre horizontal) je höher dieser Wert, umso unwahrscheinlicher ist es, dass die Werte überhaupt durch die Regression modelliert werden können. Signifikanz-Test Was ist die Wahrscheinlichkeit, dass die Proportion von /lo:st- l ɔ st/ durch den Jahrgang vorhergesagt werden kann?

[1] G 2 = Null deviance - residual deviance summary(g) Null deviance: on 5 degrees of freedom Residual deviance: on 4 degrees of freedom … Der Test mit anova() ist ob G 2 signifikant von 0 abweicht: anova(g, test="Chisq") Df Deviance Resid. Df Resid. Dev P(>|Chi|) NULL jahr e-15 Eine Analyse der logistischen Regression mit Proportion als abhängige Variable und Jahr als unabhängige Variable zeigte, dass die Proportionen einem Trend folgen ( 2 (1)=61.2, p < 0.001) g = glm(lost ~ jahr, binomial)

logistische Regression dd = read.delim(paste(pfad, "kj.txt", sep="/")) lneu = read.table(paste(pfad, "lneu.txt", sep="/")) Bitte kj.txt und lneu.txt herunterladen und diese Befehle aus logbefehle2.txt eingeben

g = glm(var ~ Faktor, binomial) Ergebnis: ein Log-Odd pro Jahr Abhängige Variable Eine 2-spaltige Matrix Anzahl von 'ja' oder 'nein' high low Oder ein Vektor high low high low... Faktor Trend Analyse nimmt der high/low Anteil mit zunehmenden Jahrgang ab? Kategoriale Analyse Unterscheiden sich männlich und weiblich in der Anteil von high/low? Logistische Regression

Kategoriale Analyse (Ein Faktor) dd = read.delim(paste(pfad, "kj.txt", sep="/")) head(dd) names(dd) 1. Tabelle 2. Barplot 3. Modell: logistische Regression 4. Signifikanz tab = with(dd, table(str, age)) Frage: Wird die Verwendung von /str/ vs. /Str/ vom Alter beeinflusst? barplot(tab, beside=T, legend=T) anova(g, test="Chisq") g = glm(str ~ age, binomial, data=dd)Kategorial 5. Ergebnis Die str/Str Verteilung wird signifikant vom Alter beinflusst ( [2] = 17.4, p < 0.001)

Trend Analyse (ein numerischer Faktor) lneu = read.table(paste(pfad, "lneu.txt", sep="/")) head(lneu) names(lneu) 1. Tabelle 2. Jahr x Proportion Abbildung 3. Modell: logistische Regression 4. Signifikanz Frage: Wird die Verwendung von high vs. low vom Jahrgang beeinflusst? 5. Ergebnis p = tab[1,]/apply(tab, 1, sum)zeit = as.numeric(colnames(tab)) tab = with(lneu, table(Vowel, Jahr)) g = glm(Vowel ~ Jahr, binomial, data=lneu) anova(g, test="Chisq") Numerisch Die high/low Verteilung wird signifikant vom Jahrgang beinflusst ( [1] = 61.1, p < 0.001) plot(zeit, p, type="b", xlab="Jahr (Re. 1950)", ylab="Proportion HIGH")

Zwei Faktoren. high low M W } } (a) Gibt es einen Trend? Also weniger high in späteren Jahren? (b) Ist die Proportion high/low in M und W unterschiedlich verteilt? Interaktion: Jahr x Geschlecht Faktor: Jahr Faktor: Geschlecht Ist der Trend derselbe für M und W? beide = paste(G, Jahr, sep=".") tab = table(beide, Vowel)

Zuerst eine Abbildung… temp = Vowel == "high" interaction.plot(Jahr, G, temp) Nimmt die Proportion von high in späteren Jahren ab? (Die Unterschiede zwischen m und w ignorieren). Ja Nein Vielleicht Unterscheiden sich m und w in der Proportion von high? (Die Unterschiede in den Jahrgängen ignorieren). Ja Nein Vielleicht attach(lneu)

Coefficients: (Intercept) Jahr G logodds(lo:st) = * Jahr * G mehrg = glm(Vowel ~ Jahr + G, binomial, data=lneu) anova(mehrg, test="Chisq") Df Deviance Resid.Df Resid. Dev P(>|Chi|) NULL J e-15 G e-04 M und W unterscheiden sich in der Proportion von high/low, 2 (1) = 12.82, p < Die Proportion von high nimmt in späteren Jahren ab, 2 (1) = 61.12, p < mehrg

Mit 2 oder mehr Variablen soll auch geprüft werden, ob sie miteinander interagieren. Eine Interaktion zwischen den unabhängigen Variablen – in diesem Fall Geschlecht und Jahrgang – liegt vor, wenn sie eine unterschiedliche Wirkung auf die abhängige Variable ausüben wie in 1 und 2, aber nicht in 3 und 4 Die Interaktion zwischen 2 Variablen prop(high) prop(high) 1234 m w

Wenn eine Interaktion vorliegt, dann können signifikante Ergebnisse in einer der unabhängigen Variablen nicht uneingeschränkt akzeptiert werden. zB wenn eine Interaktion vorkommt, gibt es vielleicht eine Wirkung von Jahrgang auf die Proportion von high/low nur in Männern aber nicht in Frauen usw. Die Interaktion zwischen 2 Variablen dies scheint aber hier nicht der Fall zu sein.

Die Interaktion zwischen 2 unabhängigen Variablen, A und B, kann in R mit A:B geprüft werden. Daher in diesem Fall g = glm(Vowel ~ Jahr + G + Jahr:G, binomial, data=lneu) Eine Abkürzung dafür (und mit genau demselben Ergebnis) g = glm(Vowel ~ Jahr * G, binomial, data=lneu) Die Interaktion zwischen 2 Variablen anova(g, test="Chisq") Df Deviance Resid. Df Resid. Dev P(>|Chi|) NULL Jahr e-15 *** G *** Jahr:G d.h. die Interaktion ist nicht signifikant und J:G kann aus dem Regressionsmodell weggelassen werden.

library(MASS) stepAIC(g) Dies wird auch durch stepAIC() bestätigt: AIC wird kleiner wenn wir Jahr:G weglassen Start: AIC= Vowel ~ Jahr * G Df Deviance AIC - Jahr:G daher bleiben wir bei: Call: glm(formula = Vowel ~ Jahr + G, family = binomial, data = lneu)

pfad = "Pfad wo Sie kj.txt gespeichert haben" kj = read.delim(paste(pfad, "kj.txt", sep="/")) Inwiefern wird die Wahl zwischen 'str' und 'Str' durch Alter und Herkunft (age und region) Alter und soziale Klasse (age, class) Alter und Geschlecht (age, gender) beeinflusst?