mehrfache und polynomiale regression
DESCRIPTION
Mehrfache und polynomiale Regression. Kriteria für die Durchführung einer Regression. Jonathan Harrington. Bitte die ersten 4 Zeilen von Einige Befehle dazu: txt unter 5. Mehrfache und polynomiale Regression durchführen wie folgt:. library(MASS) - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Mehrfache und polynomiale Regression](https://reader036.vdocuments.pub/reader036/viewer/2022070105/568146bb550346895db3eb68/html5/thumbnails/1.jpg)
Mehrfache und polynomiale Regression
Jonathan Harrington
Kriteria für die Durchführung einer Regression
library(MASS)# ydata.txt und epg.txt in einem Verzeichnis speichernpfad = "Name von diesem Verzeichnis, zB c:/meinedaten"ydata = read.table(paste(pfad, "ydata.txt", sep="/"), header=T)edat = read.table(paste(pfad, "epg.txt", sep="/"))
Bitte die ersten 4 Zeilen von Einige Befehle dazu: txtunter 5. Mehrfache und polynomiale Regressiondurchführen wie folgt:
Bitte die ersten 4 Zeilen von Einige Befehle dazu: txtunter 5. Mehrfache und polynomiale Regressiondurchführen wie folgt:
![Page 2: Mehrfache und polynomiale Regression](https://reader036.vdocuments.pub/reader036/viewer/2022070105/568146bb550346895db3eb68/html5/thumbnails/2.jpg)
Mehrfache Regression
kbxy ^Einfache Regression
kxbxby 2211^
In diesem Fall: 2 Regressoren (x1, x2) , 2 Neigungen (b1, b2), ein Intercept, k
und eine Ebene im 3D-Raum
![Page 3: Mehrfache und polynomiale Regression](https://reader036.vdocuments.pub/reader036/viewer/2022070105/568146bb550346895db3eb68/html5/thumbnails/3.jpg)
Es können auch mehrere Regressoren sein…
kxbxbxbxby nn ...332211^
Eine Hyper-Ebene in einem n-dimensionalen Raum
n verschiedene Neigungen, ein Intercept
Mehrfache Regression
![Page 4: Mehrfache und polynomiale Regression](https://reader036.vdocuments.pub/reader036/viewer/2022070105/568146bb550346895db3eb68/html5/thumbnails/4.jpg)
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)
Untere LippeZungendorsum
![Page 5: Mehrfache und polynomiale Regression](https://reader036.vdocuments.pub/reader036/viewer/2022070105/568146bb550346895db3eb68/html5/thumbnails/5.jpg)
Wir wollen versuchen, den F2-Wert aus diesen artikulatorischen Parametern vorherzusagen.
Einige informellen VorhersagenF2 steigt wenn:
DORSY steigt
DORSX nach vorne
LIPY
LIPX
steigt/fällt
nach vorne/hinten
nach unten(die Lippen werden offener)
nach hinten
(Lippen sind nicht so gerundet)
nach oben/unten
nach vorne/hinten
![Page 6: Mehrfache und polynomiale Regression](https://reader036.vdocuments.pub/reader036/viewer/2022070105/568146bb550346895db3eb68/html5/thumbnails/6.jpg)
F2 = b1DORSX +b2DORSY + b3LIPX + b4 LIPY + k^
Ein mehrfaches Regressionsmodell
Mehrfache Regression in R
Festlegung von b1, b2, b3, b4, 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
^
![Page 7: Mehrfache und polynomiale Regression](https://reader036.vdocuments.pub/reader036/viewer/2022070105/568146bb550346895db3eb68/html5/thumbnails/7.jpg)
pairs(ydata)
F2
0.8 1.0 1.2 1.4 -1.8 -1.6 -1.4
1450
1600
1750
0.8
1.1
1.4
DORSY
DORSX
3.4
3.8
4.2
-1.8
-1.5
LIPY
1450 1600 1750 3.4 3.8 4.2 -1.4 -1.0 -0.6
-1.4
-1.0
-0.6
LIPX
hoch
tief
vorne
hinten*
oben
untenhinten
vorne
* Richtung Glottis
![Page 8: Mehrfache und polynomiale Regression](https://reader036.vdocuments.pub/reader036/viewer/2022070105/568146bb550346895db3eb68/html5/thumbnails/8.jpg)
F2 = b1DORSX +b2DORSY + b3LIPX + b4 LIPY + k^
regm = lm(F2 ~ DORSX+DORSY+LIPX+LIPY)
coef(regm)Koeffiziente
![Page 9: Mehrfache und polynomiale Regression](https://reader036.vdocuments.pub/reader036/viewer/2022070105/568146bb550346895db3eb68/html5/thumbnails/9.jpg)
summary(regm)
Coefficients: Estimate Std. Error t value Pr(>|t|)(Intercept) 1355.05 822.63 1.647 0.113DORSX -38.33 157.21 -0.244 0.810DORSY 63.08 254.27 0.248 0.806LIPX -67.36 110.90 -0.607 0.550LIPY -164.08 205.04 -0.800 0.432
Residual standard error: 83 on 23 degrees of freedomMultiple 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 Regression aus diesen artikulatorischen Parametern modelliert werden:
Adjusted R2 = 0.29, F[4, 23] = 3.7, p < 0.05.
![Page 10: Mehrfache und polynomiale Regression](https://reader036.vdocuments.pub/reader036/viewer/2022070105/568146bb550346895db3eb68/html5/thumbnails/10.jpg)
Adjusted R2
R2: (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 R2 für die Anzahl der Regressoren kompensiert werden, wenn wir - wie in diesem Fall –Regressionslinien mit unterschiedlichen Anzahlen von Regressoren miteinander vergleichen wollen.
R2 wird mit einer zunehmenden Anzahl von Regressoren größer.
![Page 11: Mehrfache und polynomiale Regression](https://reader036.vdocuments.pub/reader036/viewer/2022070105/568146bb550346895db3eb68/html5/thumbnails/11.jpg)
Adjusted R2
1
1)1(1 2
kn
nRAdjusted R2 =
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 R2
![Page 12: Mehrfache und polynomiale Regression](https://reader036.vdocuments.pub/reader036/viewer/2022070105/568146bb550346895db3eb68/html5/thumbnails/12.jpg)
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 R2)
library(MASS)
stepAIC(regm)
![Page 13: Mehrfache und polynomiale Regression](https://reader036.vdocuments.pub/reader036/viewer/2022070105/568146bb550346895db3eb68/html5/thumbnails/13.jpg)
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<none> 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).
![Page 14: Mehrfache und polynomiale Regression](https://reader036.vdocuments.pub/reader036/viewer/2022070105/568146bb550346895db3eb68/html5/thumbnails/14.jpg)
Step: AIC= 250.02 F2 ~ LIPX + LIPY + DORSY
Df Sum of Sq RSS AIC- DORSY 1 1311 160172 248- LIPY 1 4241 163102 249<none> 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…
![Page 15: Mehrfache und polynomiale Regression](https://reader036.vdocuments.pub/reader036/viewer/2022070105/568146bb550346895db3eb68/html5/thumbnails/15.jpg)
Step: AIC= 248.25 F2 ~ LIPX + LIPY Df Sum of Sq RSS AIC<none> 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
![Page 16: Mehrfache und polynomiale Regression](https://reader036.vdocuments.pub/reader036/viewer/2022070105/568146bb550346895db3eb68/html5/thumbnails/16.jpg)
Dieses Modell F2 ~ LIPX + LIPY müsste auch den höchsten adjusted R2 haben. Prüfen, zB:
summary(regm) summary(lip.lm)
Adjusted R-squared: 0.3383Adjusted R-squared: 0.2884
Also wird die Variation in F2 in [y] am meisten durch die horizontale und vertikale Position der Unterlippe erklärt.
lip.lm = lm(F2 ~ LIPX+ LIPY)
![Page 17: Mehrfache und polynomiale Regression](https://reader036.vdocuments.pub/reader036/viewer/2022070105/568146bb550346895db3eb68/html5/thumbnails/17.jpg)
3D-Abbildung3D-Abbildung
Funktion reg3.txt aus der Webseite in R kopieren (mit cut-and-paste)
lip.lm = lm(F2 ~ LIPX+ LIPY) m = function(x, y, k){k[1] + k[2] * x + k[3] * y}
reg3(lip.lm, m)
Regression Modell
Koeffiziente
k = coef(lip.lm)
Eingeschätze Werte
k[1] + k[2] * LIPX + k[3] * LIPYpredict(lip.lm) oder
![Page 18: Mehrfache und polynomiale Regression](https://reader036.vdocuments.pub/reader036/viewer/2022070105/568146bb550346895db3eb68/html5/thumbnails/18.jpg)
3D-Abbildung3D-Abbildung
Zusätzliche Argumente
reg3(lip.lm, m, theta = 120, phi = 25, col="lightblue", expand=.75, ticktype="detailed" , xlab="LIPX", ylab="LIPY", zlab="F2 (Hz)")
xlim, ylim
pcol: Farbe für Punkte
pch: Plotsymbol für die Punkte
![Page 19: Mehrfache und polynomiale Regression](https://reader036.vdocuments.pub/reader036/viewer/2022070105/568146bb550346895db3eb68/html5/thumbnails/19.jpg)
Polynomiale Regression
kbxy ^
ein Regressor, 2 Koeffiziente
kxbxby 221
^
ein Regressor ein Koeffizient
bestimmt die Krümmung;
b2 ist negativ b2 ist positiv
b2 ist näher an 0
![Page 20: Mehrfache und polynomiale Regression](https://reader036.vdocuments.pub/reader036/viewer/2022070105/568146bb550346895db3eb68/html5/thumbnails/20.jpg)
kxbxbxbxbxby nn 1
44
33
221 ...^
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).
![Page 21: Mehrfache und polynomiale Regression](https://reader036.vdocuments.pub/reader036/viewer/2022070105/568146bb550346895db3eb68/html5/thumbnails/21.jpg)
detach(ydata)
attach(edat)
plot(COG, F2)
0.5 1.0 1.5 2.0 2.5 3.0
1000
1500
2000
2500
COG
F2
pfad = "Das Verzeichnis, wo die Daten gespeichert ist"
edat = read.table(paste(pfad, "epg.txt", sep="/"))
![Page 22: Mehrfache und polynomiale Regression](https://reader036.vdocuments.pub/reader036/viewer/2022070105/568146bb550346895db3eb68/html5/thumbnails/22.jpg)
kCOGbCOGbF 2212
^
regp = lm(F2 ~ COG + I(COG^2))
k = coef(regp)
(Intercept) COG I(COG^2) -294.3732 2047.8403 -393.5154
294.3732 393.5 2047.82 2 COGCOGF^
plot(COG, F2)
Die Parabel überlagern
curve(k[1] + k[2]*x + k[3]*x^2, add=T)
![Page 23: Mehrfache und polynomiale Regression](https://reader036.vdocuments.pub/reader036/viewer/2022070105/568146bb550346895db3eb68/html5/thumbnails/23.jpg)
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 freedomMultiple 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 COG2 der Parabel scheinen notwendig zu sein, um die F2-COG Beziehungen zu modellieren.
![Page 24: Mehrfache und polynomiale Regression](https://reader036.vdocuments.pub/reader036/viewer/2022070105/568146bb550346895db3eb68/html5/thumbnails/24.jpg)
mit stepAIC() kann wieder festgestellt werden, ob wir den COG2 Parameter wirklich benötigen:
stepAIC(regp)
Start: AIC= 480.69 F2 ~ COG + I(COG^2)
Df Sum of Sq RSS AIC<none> 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 COG2 aus dem Modell weggelassen werden).
![Page 25: Mehrfache und polynomiale Regression](https://reader036.vdocuments.pub/reader036/viewer/2022070105/568146bb550346895db3eb68/html5/thumbnails/25.jpg)
epg = read.table(paste(pfad, "epg.txt", sep="/"))
epg.txt in pfad speichern
3. Bedingungen für die Durchführung einer Regression
siehe vor allem http://www.duke.edu/~rnau/testing.htm und Verzani Kap. 10)
attach(epg)
![Page 26: Mehrfache und polynomiale Regression](https://reader036.vdocuments.pub/reader036/viewer/2022070105/568146bb550346895db3eb68/html5/thumbnails/26.jpg)
Die wichtigsten Kriterien:
(a) von einer Normalverteilung nicht signifikant abweichen.
(c) keine Autokorrelation aufweisen.
(b) 'homoscedasticity' oder eine konstante Varianz aufweisen.
(d) ggf. Ausreißer entfernen
Die Residuals sollen:
![Page 27: Mehrfache und polynomiale Regression](https://reader036.vdocuments.pub/reader036/viewer/2022070105/568146bb550346895db3eb68/html5/thumbnails/27.jpg)
(a) Sind die Residuals normalverteilt?
regp = lm(F2 ~ COG + I(COG^2))
shapiro.test(resid(regp))
data: resid(regp) W = 0.9606, p-value = 0.1285
![Page 28: Mehrfache und polynomiale Regression](https://reader036.vdocuments.pub/reader036/viewer/2022070105/568146bb550346895db3eb68/html5/thumbnails/28.jpg)
(b) Haben die Residuals eine konstante Varianz?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(regp))
abline(h=0, lty=2)
![Page 29: Mehrfache und polynomiale Regression](https://reader036.vdocuments.pub/reader036/viewer/2022070105/568146bb550346895db3eb68/html5/thumbnails/29.jpg)
(c) Keine Autokorrelation
16460 16470 16480 16490 16500
-600
00
4000
times
data
[, k
]Ein gutes Beispiel von autokorrelierten Daten: ein stimmfahtes Sprachsignal
Autokorrelation ist wenn die Werte eines Signals mit sich selbst korreliert sind
![Page 30: Mehrfache und polynomiale Regression](https://reader036.vdocuments.pub/reader036/viewer/2022070105/568146bb550346895db3eb68/html5/thumbnails/30.jpg)
acf(resid(regp))
95% Vertrauensintervall um 0
Wenn die meisten ACF-Werte innerhalb der blauen Linien liegen, gibt es keine Autokorrelation.
Insbesondere die Werte bei lag 1 und 2 beobachten: diese sollten vor allem innerhalb des Vertauensintervalls liegen.
Die Residuals sollen keine Autokorrelation aufweisen
![Page 31: Mehrfache und polynomiale Regression](https://reader036.vdocuments.pub/reader036/viewer/2022070105/568146bb550346895db3eb68/html5/thumbnails/31.jpg)
(d) 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(regp, 4)
plot(regp, 4)
![Page 32: Mehrfache und polynomiale Regression](https://reader036.vdocuments.pub/reader036/viewer/2022070105/568146bb550346895db3eb68/html5/thumbnails/32.jpg)
plot(COG, F2, cex = 10*sqrt(cooks.distance(regp)))text(COG, F2, as.character(1:length(F2)))
Die Cookes-Entfernungen und daher Ausreißer könnten auch mit einem sogenannten 'bubble plot' (siehe Verzani) abgebildet werden