Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Regression (zweiter Teil) Jonathan Harrington. 1. Regression und die Locus-Theorie 2. Voraussetzungen für die Durchführung einer Regression 3. Mehrfache.

Ähnliche Präsentationen


Präsentation zum Thema: "Regression (zweiter Teil) Jonathan Harrington. 1. Regression und die Locus-Theorie 2. Voraussetzungen für die Durchführung einer Regression 3. Mehrfache."—  Präsentation transkript:

1 Regression (zweiter Teil) Jonathan Harrington

2 1. Regression und die Locus-Theorie 2. Voraussetzungen für die Durchführung einer Regression 3. Mehrfache (multiple) Regression: zwei oder mehrere Regressoren Neigungen von Regressionslinien miteinander vergleichen 4. Polynomiale Regression

3 /g/ vor hinteren Vokalen: keine einheitliche Locus-Frequenz F2-Transitionenen und die Locus-Theorie Die F2-Transitionen, die die Artikulationsstelle auditiv vermitteln, sind durch eine Kombination vom Locus und der Vokalzielposition voraussagbar Frequenz Dauer i b F2-Lokus /b/ ca. 700 Hz d /d/ ca. 1800 Hz g /g/ vor vorderen Vokalen: 3000 Hz

4

5 In der gesprochenen Sprache weichen F2-Onsets (F2- Offsets) von der theoretischen Locusfrequenz ab, teilweise wegen antizipatorischer oder perzeveratorischer V-auf-K Koartikulation. F2 (Hz) di: o: d d d 050150250 500 1000 2000 Time (ms) i: o:

6 Max. V auf K Koartikulation Dauer 500 2000 Dauer 500 2000 800 b I b b b Keine V-auf-K Koartikulation F2-Locus und V-auf-K Koartikulation daher ist der F2 Target vom F2 Onset nicht vorhersagbar F2 Target ist vom F2 Onset vorhersagbar Kein Locus Locus ist vom Vokal unabhängig

7 (Regressionlinie im Raum von F2 Target x F2 Onset) Die Neigung liegt zwischen 0 und 1 Je steiler (näher an 1) die Neigung, umso bedeutender die V auf K Koartikulation Locusgleichung 050015002500 0 500 1500 2500 bIbbIbb b F2(Onset)=Locus, Regressionsneigung = 0 Dauer 500 2000 800 F2 Onset b I b b b F2 Target 050015002500 0 500 1500 2500 bIbbIb b b F2(Target) = F2(Onset) Regressionsneigung =1 Dauer 500 2000 F2 Target F2 Onset

8 V-auf-K Koartikulation in /dV/ im Vgl. zu /Vd/ Ein Sprecher (australisch Englisch) erzeugte /dVd/ Silben, fuer verschiedene Vokale. In welchen Reihenfolgen, initiale /dV/, oder finale /Vd/, ist die V-auf-K Koartikulation wahrscheinlich am bedeutendsten: initial oder final?

9 F2 (Hz) o: d d 050150250 500 1000 2000 Dauer (ms) V-target = 600 Hz, F2in=1800 Hz, F2off=1300 Hz

10 /dV//Vd/ F2-Target F2-Onset F2-Offset Welche Regressionslinie müsste steiler sein? dV Vd 0100200300400 500 1500 time (ms) 1 -400-300-200-1000 500 1500 time (ms) 1 F2-verschiedene Vokale

11 pfad = "Das Verzeichnis, wo die Daten gespeichert ist" fdat = read.table(paste(pfad, "dform.txt", sep="/"), header=T) attach(fdat) names(fdat) "lab" "F2targ" "F2in" "F2fin" F2 /dVd/-Daten einlesen plot(F2targ, F2in, type="n", xlab="F2-targ", ylab="F2-initial") text(F2targ, F2in, lab) Regressionslinie berechnen ^ regin = lm(F2in ~ F2targ)

12 überlagerte Regressionslinie abline(regin) Dasselbe für F2-Offset ^ regfin = lm(F2fin ~ F2targ) Koeffiziente F2-Initial: coef(regin) (Intercept) F2targ 1220.2502132 0.2710194 coef(regfin) Intercept) F2targ 829.4801710 0.4641336 Koeffiziente F2-Final:

13 Nebenbei: Vorhersage-Intervall lmint(F2targ, F2in, level=.95) Die Wahrscheinlichkeit, dass Werte innerhalb der blauen Linie fallen = 95% pfad = "Das Verzeichnis, wo die Daten gespeichert ist" source(paste(pfad, "lmint.S", sep="/")) möglicher Ausreißer

14 Die Neigungen vergleichen Hilfeseite: siehe Slope.test.pdf in unserer Webseite. pfad = "Das Verzeichnis, wo die Daten gespeichert ist" source(paste(pfad, "Slope.test.S", sep="/")) args(Slope.test) # siehe unten, Hilfseite function (...)… bedeutet: beliebig viele Argumente. jedes Argument soll eine zweispaltige Matrix sein. Die y-Werte (F2in oder F2fin) in Spalte 1, die x-Werte (F2-targ) in Spalte 2. Slope.test(mat1, mat2) die Regressionslinie für die Daten in mat1 wird berechnet; die Regressionslinie für die Daten in mat2 wird berechnet; die Neigungen dieser beiden R-Linien werden statistisch miteinander verglichen.

15 $separate r-sq F ratio df df prob. line fits data intercept slope first.out 0.8632720 69.45167 1 11 0.9999956 1220.2502 0.2710194 first.out 0.7437726 31.93061 1 11 0.9998513 829.4802 0.4641336 $combined F ratio Probability of them being DIFFERENT df df intercept 5.971148 0.9773694 1 23 slope 4.778655 0.9602575 1 22 Die Neigungen der Regressionslinien unterscheiden sich F=4.78, df = 1, 22, p < 0.05 oder F(1,22) = 4.78, p < 0.05 onset = cbind(F2in, F2targ) offset = cbind(F2fin, F2targ) Slope.test(onset, offset) # 2-spaltige Matrix der F2in-Werte # 2-spaltige Matrix der F2fin-Werte Da sich die Regressionslinien signifikant unterscheiden, ist die V-auf-K Koartikulation unterschiedlich in /Vd/ im Vergleich zu /dV/.

16 2. Voraussetzung für die Durchführung der Regression siehe vor allem http://www.duke.edu/~rnau/testing.htm und E-Buch in der LMU Autor = Verzani Kap. 10)http://www.duke.edu/~rnau/testing.htm

17 qqnorm(resid(regin)) qqline(resid(regin)) plot(regin, 2) 2.1. Folgen die 'residuals' einer Normalverteilung? oder (siehe regression.ppt, vorige Woche) shapiro.test(resid(regin)) Shapiro-Wilk normality test data: resid(regin) W = 0.9274, p-value = 0.3148 Zusätzlicher Test Die Verteilung der residuals weicht nicht signifikant von einer Normalverteilung ab Die Werte sollen nicht allzusehr von der geraden Linie abweichen

18 2.2. Ist Linearität erkennbar? Sind wir sicher, dass die y/x Werte wirklich mit einer Linie modelliert werden können? oder vielleicht nicht besser mit einer Parabel?

19 oderplot(predict(regin), resid(regin))plot(regin, 1) Die Werte in einer Abbildung der residuals als Funktion der eingeschätzen Werte, y, sollten mehr oder weniger auf einer randomisierten Weise um die Linie residuals = 0 verteilt sein. 2.2. Test für Linearität ^

20 2. 3. Keine Autokorrelation (die aufeinanderfolgenden Werte in der x oder y- Achse müssen voneinander unabhängig sein). Ein gutes Beispiel von autokorrelierten Daten: ein stimmfahfes Sprachsignal Man soll überhaupt sehr vorsichtig sein, eine Regression auf Daten mit einer Zeit-Achse anzuwenden (da Werte als Funktion der Zeit sich oft wiederholen, also sie sind oft miteinander korreliert).

21 2. 3. Test für Autokorrelation Die Autokorrelation der residuals berechnen acf(resid(regin)) Autokorrelation lag k inwiefern sind die ersten n-k Werte des Signals mit den letzten n-k Werte korreliert? zB Autokorrelation lag 1 bei einem 4-Punkt Signal: die ersten 3 Werte werden mit den letzten 3 Werte verglichen Autokorrelation lag 0: kann ignoriert werden: sie hat immer den Wert 1. Alle anderen lag-Werte variieren zwischen -1 und 1

22 95% Vertrauensintervall um 0 n = length(F2targ) 2/sqrt(n) Insbesondere die Werte bei lag 1 und 2 beobachten: diese sollten in jedem Fall innerhalb des Vertauensintervalls liegen. Wenn die meisten ACF-Werte innerhalb der blauen Linien liegen, gibt es keine Autokorrelation. 2. 3. Test für Autokorrelation 0246810 -0.5 0.0 0.5 1.0 Lag ACF

23 2. 4. Konstante Varianz oder 'homoscedasticity' der Residuals? Insbesondere sollten die residuals nicht wesentlich größer am Anfang/Ende sein, sondern auf eine randomisierte Weise um die 0 Linie verteilt sein. plot(resid(regin))

24 2.5. Ausreißer Ein einziger Ausreißer vor allem vom Mittelpunkt weit entfernt kann die Regressionslinie deutlich beeinflussen. Ausreißer die eventuell (aber nicht unbedingt) die Regressionslinie stark beeinflussen, können mit dem sog. Cookes Distance aufgedeckt werden plot(regin, 4) Die Werte 1 und 12 sind vielleicht solche Ausreißer, also onset[c(1,12),]

25 plot(F2targ, F2in, cex = 10*sqrt(cooks.distance(regin))) text(F2targ, F2in, as.character(1:length(F2in))) Die Cookes-Entfernungen und daher Ausreißer könnten auch mit einem sogenannten 'bubble plot' (siehe Verzani) abgebildet werden 2.5. Ausreißer Ausreißer

26 Man könnte dann prüfen, ob sich die Regressionlinien signifikant mit/ohne Ausreißer unterscheiden: onsetohne = onset[-c(1,12),] Slope.test(onset, onsetohne) $combined F ratio Probability of them being DIFFERENT df df intercept 0.38475966 0.45825958 1 21 slope 0.01596279 0.09927878 1 20 detach(fdat) 2.5. Ausreißer

27 3. Mehrfache Regression

28 Mehrfache Regression ^ Einfache Regression ^ x1x1 x2x2 y Und eine gerade Linie in einem 3D-Raum In diesem Fall: 2 Regressors (x 1, x 2 ), 2 Neigungen (b 1, b 2 ), ein Intercept, k

29 Es können auch mehrere Regressoren sein… ^ Eine gerade Linie in einem n-dimensionalen Raum n verschiedene Neigungen, ein Intercept Mehrfache Regression

30 Einige Daten pfad = "Das Verzeichnis, wo die Daten gespeichert ist" ydata = read.table(paste(pfad, "ydata.txt", sep="/"), header=T) attach(ydata) names(ydata) [1] "F2" "DORSY" "DORSX" "LIPY" "LIPX" [y] Vokale, alle Werte zum zeitlichen Mittelpunkt DORSX, DORSY (horizontale und vertikale Position des Zungendorsums) LIPX, LIPY (horizontale Verlagerung und vertikale Position der Unterlippe)

31 Wir wollen versuchen, den F2-Wert aus diesen artikulatorischen Parametern vorherzusagen. Einige informellen Vorhersagen F2 steigt wenn: DORSYsteigt DORSXnach vorne LIPY LIPX steigt/fällt nach vorne/hinten fällt (die Lippen werden offener) nach hinten (Lippen sind nicht so gerundet) steigt/fällt nach vorne/hinten

32 F2 = b 1 DORSX +b 2 DORSY + b 3 LIPX + b 4 LIPY + k ^ Ein mehrfaches Regressionsmodell Mehrfache Regression in R Festlegung von b 1, b 2, b 3, b 4, k Sind alle diese Parameter notwendig? Wenn nicht, welches Parameter oder Parameterkombination hat die deutlichste lineare Beziehung zu F2? hat die Bedeutung F2 = ein Gewicht mal die horizontale Position der Zunge + ein anderes Gewicht mal die vertikale Position der Zunge + …. + ein Intercept ^

33 pairs(ydata) hoch tief vorne hinten* oben unten hinten vorne * Richtung Glottis

34 F2 = b 1 DORSX +b 2 DORSY + b 3 LIPX + b 4 LIPY + k ^ regm = lm(F2 ~ DORSX+DORSY+LIPX+LIPY) coef(regm) Normalverteilung der Residuals? plot(regm, 2) shapiro.test(resid(regm)) usw. wie für einfache Regression Koeffiziente

35 summary(regm) Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 1355.05 822.63 1.647 0.113 DORSX -38.33 157.21 -0.244 0.810 DORSY 63.08 254.27 0.248 0.806 LIPX -67.36 110.90 -0.607 0.550 LIPY -164.08 205.04 -0.800 0.432 Residual standard error: 83 on 23 degrees of freedom Multiple R-Squared: 0.3939, Adjusted R-squared: 0.2884 F-statistic: 3.736 on 4 and 23 DF, p-value: 0.01747 F2 kann mit einer multidimensionalen Regressionslinie aus diesen artikulatorischen Parametern modelliert werden: Adjusted R 2 = 0.29, F (4, 23) = 3.74, p < 0.05.

36 Adjusted R 2 R 2 : (siehe vorige Vorlesung) ist die Proportion der Varianz, die durch die Regressionslinie erklärt werden kann (variiert zwischen 0 und 1; 1 bedeutet alle Werte liegen auf der Linie) Daher muss in der Berechnung von R 2 für die Anzahl der Regressoren kompensiert werden, wenn wir - wie in diesem Fall –Regressionslinien mit unterschiedlichen Anzahlen von Regressoren miteinander vergleichen wollen. R 2 wird mit einer zunehmenden Anzahl von Regressoren größer.

37 Adjusted R 2 Adjusted R 2 = n ist die Anzahl der Stichproben, k ist die Anzahl der Regressoren. 1-(1-0.3939) * ( (n-1)/(n-4-1) ) n = length(F2) [1] 0.2884913 Für diesen Fall kann auch negativ sein ist weniger als R 2

38 Modell-Prüfung durch AIC (Akaike's Information Criterion) Mit der stepAIC() Funktion in library(MASS) wird geprüft, ob für die Regression wirklich alle (in diesem Fall 4) Regressoren benötigt werden. Je kleiner AIC, umso nützlicher die Kombination für die Regression (umso höher adjusted R 2 ) library(MASS) stepAIC(regm)

39 Start: AIC= 251.95 F2 ~ DORSX + DORSY + LIPX + LIPY Df Sum of Sq RSS AIC - DORSX 1 410 158861 250 - DORSY 1 424 158875 250 - LIPX 1 2541 160993 250 - LIPY 1 4412 162863 251 158451 252 sortiert nach AIC. Dies ist der AIC-Wert, wenn aus diesem Modell DORSX weggelassen wäre. Daher wird im nächsten Modell DORSX weggelassen. Vor allem ist dieser AIC Wert weniger als AIC mit allen Parametern (= 251.95).

40 Step: AIC= 250.02 F2 ~ LIPX + LIPY + DORSY Df Sum of Sq RSS AIC - DORSY 1 1311 160172 248 - LIPY 1 4241 163102 249 158861 250 - LIPX 1 16377 175238 251 AIC ist am kleinsten, wenn aus diesem Modell DORSY weggelassen wird. Und dieser Wert ohne DORSY ist kleiner als derjenige mit LIPX+LIPY+DORSY zusammen. Daher wird DORSY weggelassen…

41 Step: AIC= 248.25 F2 ~ LIPX + LIPY Df Sum of Sq RSS AIC 160172 248 - LIPX 1 25225 185397 250 - LIPY 1 50955 211127 254 Wenn wir entweder LIPX oder LIPY weggelassen, dann wird AIC höher im Vergleich zu AIC mit beiden Parametern zusammen. Daher bleiben wir bei F2 ~ LIPX + LIPY

42 Dieses Modell F2 ~ LIPX + LIPY müsste auch den höchsten adjusted R 2 haben. Prüfen, zB: summary(regm)summary(lm(F2~LIPX+LIPY)) Adjusted R-squared: 0.3383 Adjusted R-squared: 0.2884 Also wird die Variation in F2 in [y] am meisten durch die horizontale und vertikale Position der Unterlippe erklärt.

43 4. Polynomiale Regression ^ ein Regressor, 2 Koeffiziente ^ ein Regressor ein Koeffizient bestimmt die Krümmung; b 2 ist negativ b 2 ist positiv b 2 ist näher an 0

44 ^ ein Regressor, n Koeffiziente In allen Fällen handelt es sich um Abbildung/Beziehungen im 2D-Raum (da wir mit einem Regressor zu tun haben).

45 detach(ydata) attach(edat) plot(COG, F2) pfad = "Das Verzeichnis, wo die Daten gespeichert ist" edat = read.table(paste(pfad, "epg.txt", sep="/"))

46 ^ regp = lm(F2 ~ COG + I(COG^2)) coef(regp) (Intercept) COG I(COG^2) -294.3732 2047.8403 -393.5154 ^ plot(COG, F2) Die Parabel überlagern curve(-294.3732+2047.8403*x -393.5154*x^2, add=T)

47 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) -294.37 139.95 -2.103 0.0415 * COG 2047.84 192.83 10.620 1.81e-13 *** I(COG^2) -393.52 54.17 -7.264 6.10e-09 *** --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Residual standard error: 202.1 on 42 degrees of freedom Multiple R-Squared: 0.9092, Adjusted R-squared: 0.9049 F-statistic: 210.4 on 2 and 42 DF, p-value: < 2.2e-16 summary(regp) Beide Komponente, COG und COG 2 der Parabel scheinen notwendig zu sein, um die F2-COG Beziehungen zu modellieren.

48 mit stepAIC() kann wieder festgestellt werden, ob wir den COG 2 Parameter wirklich benötigen: stepAIC(regp) Start: AIC= 480.69 F2 ~ COG + I(COG^2) Df Sum of Sq RSS AIC 1715550 481 - I(COG^2) 1 2155469 3871019 515 - COG 1 4606873 6322423 537 Call: lm(formula = F2 ~ COG + I(COG^2)) Coefficients: (Intercept) COG I(COG^2) -294.4 2047.8 -393.5 Scheinbar ja (da AIC höher wird, wenn entweder COG oder COG 2 aus dem Modell weggelassen werden).


Herunterladen ppt "Regression (zweiter Teil) Jonathan Harrington. 1. Regression und die Locus-Theorie 2. Voraussetzungen für die Durchführung einer Regression 3. Mehrfache."

Ähnliche Präsentationen


Google-Anzeigen