Schätzung der Regressionsparameter
Aus MM*Stat
Grundbegriffe
Schätzung der Regressionsparameter
Für die Schätzung der Regressionsparameter müssen zwei Bedingungen erfüllt sein.
1. Bedingung
Die Abweichungen der Regresswerte von den Beobachtungswerten sollen im Mittel gleich Null sein, d.h.
Diese Bedingung wird aber von einer unendlichen Menge von Regressionsgeraden, die alle durch den Schwerpunkt der Punktwolke verlaufen, erfüllt.
Diese Bedingung für sich allein genommen führt also zu keiner eindeutigen Regressionsgeraden.
<R output="display">
pdf(rpdf, width=7, height=7) par(mar=c(2,2,2,1)) par(bg="white") c = 1.4 X = c(1.47212467127845, 1.43803816908291, 1.39816119472708, 1.35265431871237, 1.30170078116712, 1.24550575400328, 1.18429551476157, 1.11831653547164, 1.04783449019622, 0.973133185255426, 0.894513416438906, 0.812291757807323, 0.726799286960364, 0.638380251904096, 0.547390684885741, 0.454196968777484, 0.359174361781949, 0.262705486399871, 0.165178788744325, 0.06698697440533, -0.03147457283696, -0.12980938308319, -0.227621496759157, -0.324517059005263, -0.42010590559103, -0.514003133968743, -0.605830653140166, -0.695218706095549, -0.781807358694595, -0.865247948994213, -0.945204491187104, -1.02135502849802, -1.09339292959007, -1.16102812326088, -1.22398826645696, -1.28201984090304, -1.33488917393073, -1.38238337939581, -1.42431121489567, -1.46050385183491, -1.49081555523854, -1.51512427057529, -1.53333211522811, -1.54536577263291, -1.55117678749854, -1.5507417609191, -1.54406244459308, -1.5311657337699, -1.51210355895223, -1.48695267679019, -1.4558143610094, -1.41881399461743, -1.37610056503069, -1.3278460641547, -1.27424479583335, -1.21551259345594, -1.15188595087228, -1.08362107011542, -1.01099282976651, -0.934293678115755, -0.853832455576358, -0.7699331510932, -0.682933597553698, -0.593184111454005, -0.501046082298121, -0.406890517409916, -0.311096548017573, -0.214049902625953, -0.116141353824037, -0.0177651447816395, 0.0806825982286982, 0.178805460892388, 0.276208337073337, 0.372499019766904, 0.467289780379078, 0.560198929972681, 0.650852356194005, 0.73888502969122, 0.823942473958736, 0.905682192688981, 0.983775048884155, 1.05790659017475, 1.12777831500824, 1.19310887460953, 1.2536352058731, 1.30911359062536, 1.35932063699166, 1.40405417891654, 1.44313409021509, 1.47640300987754, 1.50372697570645, 1.52499596373525, 1.54012433125592, 1.54905116167191, 1.55174050978779, 1.54818154654791, 1.53838860264111, 1.52240111079614, 1.50028344699998, 1.47212467127845) Y = c(1.47212467127845, 1.50028344699998, 1.52240111079614, 1.53838860264111, 1.54818154654791, 1.55174050978779, 1.54905116167191, 1.54012433125592, 1.52499596373525, 1.50372697570645, 1.47640300987754, 1.44313409021509, 1.40405417891654, 1.35932063699166, 1.30911359062536, 1.2536352058731, 1.19310887460953, 1.12777831500824, 1.05790659017475, 0.983775048884155, 0.905682192688982, 0.823942473958736, 0.73888502969122, 0.650852356194005, 0.560198929972681, 0.467289780379077, 0.372499019766904, 0.276208337073337, 0.178805460892388, 0.0806825982286976, -0.0177651447816391, -0.116141353824037, -0.214049902625953, -0.311096548017574, -0.406890517409916, -0.501046082298121, -0.593184111454004, -0.682933597553698, -0.7699331510932, -0.853832455576358, -0.934293678115755, -1.01099282976651, -1.08362107011542, -1.15188595087228, -1.21551259345594, -1.27424479583335, -1.3278460641547, -1.37610056503069, -1.41881399461743, -1.4558143610094, -1.48695267679019, -1.51210355895223, -1.5311657337699, -1.54406244459308, -1.5507417609191, -1.55117678749854, -1.54536577263291, -1.53333211522811, -1.51512427057529, -1.49081555523854, -1.46050385183491, -1.42431121489567, -1.38238337939581, -1.33488917393073, -1.28201984090304, -1.22398826645696, -1.16102812326088, -1.09339292959007, -1.02135502849802, -0.945204491187104, -0.865247948994213, -0.781807358694595, -0.695218706095549, -0.605830653140167, -0.514003133968742, -0.42010590559103, -0.324517059005264, -0.227621496759157, -0.12980938308319, -0.03147457283696, 0.0669869744053296, 0.165178788744326, 0.262705486399871, 0.359174361781949, 0.454196968777483, 0.547390684885742, 0.638380251904096, 0.726799286960364, 0.812291757807323, 0.894513416438907, 0.973133185255426, 1.04783449019622, 1.11831653547164, 1.18429551476157, 1.24550575400328, 1.30170078116712, 1.35265431871237, 1.39816119472708, 1.43803816908291, 1.47212467127845) plot(X, Y, type='n', lwd=2, xaxt="n", yaxt="n", xlim=c(-3,3), ylim=c(-3,3), axes=F, xlab="", ylab="") polygon(X, Y, col="lightblue") arrows(-3, -3, -3, 3, angle=20, length=0.2) arrows(-3, -3, 3, -3, angle=20, length=0.2) mtext(expression(bar("x")), side=1, line=0, at=0, cex=c) mtext(expression(bar("y")), side=2, line=0, at=0, las=2, cex=c) mtext("X", side=1, line=0, at=3, cex=c) mtext("Y", side=2, line=0, at=3, las=2, cex=c) set.seed(1) points(rnorm(20,0,0.25), rnorm(20,0,0.25), cex=0.5, pch=19) points(rnorm(10,-1,0.2), rnorm(10,-1,0.2), cex=0.5, pch=19) points(rnorm(20,1,0.2), rnorm(20,1,0.2), cex=0.5, pch=19) points(rnorm(20,-0.23,0.2), rnorm(20,-0.23,0.2), cex=0.5, pch=19) points(rnorm(20,0.23,0.2), rnorm(20,0.23,0.2), cex=0.5, pch=19) points(rnorm(20,0.6,0.1), rnorm(20,0.6,0.1), cex=0.5, pch=19) points(rnorm(20,-0.4,0.1), rnorm(20,-0.5,0.1), cex=0.5, pch=19) lines(c(0,0), c(-3,3), lwd=2) lines(c(-3,3), c(0,0), lwd=2) lines(c(-1,1), c(-3,3)) lines(c(-2,2), c(-3,3)) lines(c(-3,3), c(-3,3)) lines(c(-3,4), c(-2.2,3)) </R> |
2. Bedingung
Es wird eine Regressionsgerade gesucht, für die die Streuung (Varianz) der Residuen
ein Minimum im Vergleich zu allen anderen Regressionsgeraden ist.
Aus der Erfüllung der 1. Bedingung folgt:
Die folgende Grafik veranschaulicht die 2. Bedingung:
<R output="display">
pdf(rpdf, width=7, height=7) par(font=2) par(mar=c(2,1,2,1)+0.1) c=1.6 d="yellow" plot(-100, -100, lty=0, col="red", lwd=0, xaxt="n", yaxt="n", xlim=c(0,6), ylim=c(0,6), xlab="", ylab="", axes=F) arrows(0, 0, 0, 6.2, code = 2, xpd = TRUE, angle=20, length=0.15) arrows(0, 0, 6.2, 0, code = 2, xpd = TRUE, angle=20, length=0.15) lines(c(0,6), c(1, 3.4), lwd=2, col="green") mtext("X", side=1, line=0, at=6.3, cex=c) mtext("Y", side=2, line=0, at=6.3, las=2, cex=c) rect(1, 0.6, 1.8, 1.4, col=d) points(1, 1.4, pch=16) text(0.85, 1.55, expression(bold(hat(y["1"]))), cex=c) points(1, 0.6, pch=16) text(0.85, 0.55, expression(bold(y["1"])), cex=c) rect(1.82, 1.92, 2.3, 2.4, col=d) points(2.3, 1.92, pch=16) text(2.45, 1.84, expression(bold(hat(y["2"]))), cex=c) points(2.3, 2.4, pch=16) text(2.45, 2.45, expression(bold(y["2"])), cex=c) rect(2.7, 1.5, 3.28, 2.08, col=d) points(2.7, 2.08, pch=16) text(2.85, 2.33, expression(bold(hat(y["3"]))), cex=c) points(2.7, 1.5, pch=16) text(2.85, 1.35, expression(bold(y["3"])), cex=c) rect(3, 2.6, 4, 3.6, col=d) points(4, 2.6, pch=16) text(4.15, 2.5, expression(bold(hat(y["4"]))), cex=c) points(4, 3.6, pch=16) text(4.15, 3.6, expression(bold(y["4"])), cex=c) rect(4.7, 3.2, 5.5, 4, col=d) points(5.5, 3.2, pch=16) text(5.65, 3.10, expression(bold(hat(y["5"]))), cex=c) points(5.5, 4, pch=16) text(5.65, 4.2, expression(bold(y["5"])), cex=c) </R> |
Die in der Grafik dargestellten Quadrate (sie entsprechen den quadrierten Residuen) sollen minimiert werden.
Daraus ergibt sich der Name der dafür angewandten Methode - die Methode der kleinsten Quadrate (KQ).
Methode der kleinsten Quadrate
Die Methode der kleinsten Quadrate (KQ) hat die Minimierung der Summe der quadratischen Abweichungen (Residual Sum of Squares - RSS) der Regresswerte von den Beobachtungswerten zum Ziel.
Die zu minimierende Funktion ist eine Gleichung mit zwei Unbekannten und . Für das Erreichen eines Minimums müssen die ersten partiellen Ableitungen verschwinden, d.h. sie werden Null gesetzt.
Mit Hilfe der Hesse-Matrix lässt sich überprüfen, ob es sich um ein Minimum handelt
Diese ist positiv-definit und somit handelt es sich bei den Extremwerten um Minima.
Die erste Ableitung führt zu den beiden Normalgleichungen, mit deren Hilfe sich die geschätzten Regressionsparameter und durch die Auflösung der Gleichungen nach bzw. berechnen lassen:
Die Auflösung der Normalgleichungen mit Hilfe der Cramer'schen Regel liefert:
Werden die ursprünglichen Normalgleichungen durch dividiert, erhält man im Ergebnis vereinfachte Formeln zur Berechnung der Regressionsparameter:
Für die Konstante ergibt sich:
Für den linearen Regressionskoeffizienten ergibt sich:
Zusatzinformationen
- Die Varianz von muss größer sein als Null:
- Wie schon aus den vereinfachten Normalgleichungen zu ersehen, gilt
- Für wird , d.h. der Punkt liegt auf der Regressionsgeraden
- Werden die Ergebnisse aus der Korrelationsanalyse mit denen der Regressionsanalyse verknüpft, lässt sich der lineare Regressionskoeffizient auch wie folgt berechnen:
- Eine lineare Regression von auf entspricht nicht der linearen Regression von auf !
Beispiele
Losgröße und Arbeitszeit
- Losgröße
- Arbeitszeit
Produktionsdurchläufe im Unternehmen
1 | 30 | 73 | 2,190 | 900 | 5,329 | 70 | 3 |
2 | 20 | 50 | 1,000 | 400 | 2,500 | 50 | 0 |
3 | 60 | 128 | 7,680 | 3,600 | 16,384 | 130 | -2 |
4 | 80 | 170 | 1,360 | 6,400 | 28,900 | 170 | 0 |
5 | 40 | 87 | 3,480 | 1,600 | 7,569 | 90 | -3 |
6 | 50 | 108 | 5,400 | 2,500 | 11,664 | 110 | -2 |
7 | 60 | 135 | 8,100 | 3,600 | 18,225 | 130 | 5 |
8 | 30 | 69 | 2,070 | 900 | 4,761 | 70 | -1 |
9 | 70 | 148 | 10,360 | 4,900 | 21,904 | 150 | -2 |
10 | 60 | 132 | 72,920 | 3,600 | 17,424 | 130 | 2 |
500 | 1,100 | 61,800 | 28,400 | 134,660 | 1,100 | 0 |
Berechnung der Hilfsgrößen (Mittelwerte, Varianzen und Standardabweichungen):
Für die Kovarianz und den Korrelationskoeffizienten ergibt sich:
Damit lassen sich die Regressionsparameter und berechnen:
Es ergibt sich folgende Regressionsgleichung:
<R output="display">
pdf(rpdf, width=14, height=7) x = c(30,20,60,80,40,50,60,30,70,60) y = c(73,50,128,170,87,108,135,69,148,132) model = lm(y~x) par(mfrow=c(1,2)) plot(x, y, xlab=paste("Losgr", "\u00F6", "\u00DF", "e", sep=""), ylab="Arbeitszeit", pch=8, yaxt="n", main="Lineare Regression") axis(2, at=c(50,100,150)) abline(10, 2, col="green", lwd=2) plot(x, model$resid, xlab=paste("Losgr", "\u00F6", "\u00DF", "e", sep=""), ylab="Residuen", pch=8, xlim=c(20,80), ylim=c(-8, 8), yaxt="n", main="Plot der Residuen") axis(2, at=seq(-8, 8, by=1)) abline(0, 0, col="green", lwd=2) </R> |
Haushaltsnettoeinkommen und Konsumausgaben
Von 10 Zwei-Personen-Haushalten wurden jeweils das monatliche Haushaltsnettoeinkommen sowie die Konsumausgaben ermittelt:
Haushalt | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
HH-Nettoeinkommen in Euro () | 3500 | 5000 | 4300 | 6100 | 1000 | 4800 | 2900 | 2400 | 5600 | 4100 |
Konsumausgaben in Euro () | 2000 | 3500 | 3100 | 3900 | 900 | 3000 | 2100 | 1900 | 2900 | 2100 |
Anhand der Punktwolke im folgenden Scatterplot ist bereits zu erkennen, dass das Haushaltsnettoeinkommen einen positiven Einfluss auf die Konsumausgaben bei den 10 Zwei-Personen-Haushalten ausübt, der offensichtlich mittels einer linearen Regressionsfunktion geschätzt werden kann.
<R output="display">
pdf(rpdf, width=7, height=7) x = c(3500,5000,4300,6100,1000,4800,2900,2400,5600,4100) y = c(2000,3500,3100,3900,900,3000,2100,1900,2900,2100) model = lm(y~x) plot(x, y, xlab="Einkommen*E3", ylab="Konsum*E2", col="red", cex=2, pch=20, xaxt="n", yaxt="n") axis(1, at=seq(1000,6000,by=1000), label=seq(1,6,by=1)) axis(2, at=seq(1000,4000,by=500), label=seq(10,40,by=5), las=2)
s=c(2000,3000,1500,300, 6000) color=c("blue", "yellow", "green", "orange", "brown") for (i in 1:length(s)) abline(s[i], (mean(y)-s[i])/(mean(x)), lwd=2, col=color[i]) </R> |
Gesucht ist die lineare Regressionsfunktion der Konsumausgaben in Abhängigkeit vom HH-Nettoeinkommen.
Für die Schätzung der Regressionsparameter sind einige Zwischenberechnungen notwendig
HH | |||||
1 | 3500 | 2000 | 7000000 | 12250000 | 4000000 |
2 | 5000 | 3500 | 17500000 | 25000000 | 12250000 |
3 | 4300 | 3100 | 13330000 | 18490000 | 9610000 |
4 | 6100 | 3900 | 23790000 | 37210000 | 15210000 |
5 | 1000 | 900 | 900000 | 1000000 | 810000 |
6 | 4800 | 3000 | 14400000 | 23040000 | 9000000 |
7 | 2900 | 2100 | 6090000 | 8410000 | 4410000 |
8 | 2400 | 1900 | 4560000 | 5760000 | 3610000 |
9 | 5600 | 2900 | 16240000 | 31360000 | 8410000 |
10 | 4100 | 2100 | 8610000 | 16810000 | 4410000 |
Summe | 39700 | 25400 | 112420000 | 179330000 | 71720000 |
Gemäß der angegebenen Formeln lassen sich die Regressionsparameter und wie folgt errechnen:
Damit ergibt sich die folgende lineare Regressionsfunktion:
(Konsumausgaben = 423,13 + 0,5332 Haushaltsnettoeinkommen)
Die Regressionsgerade lässt sich im Scatterplot darstellen:
<R output="display">
pdf(rpdf, width=7, height=7) x = c(3500,5000,4300,6100,1000,4800,2900,2400,5600,4100) y = c(2000,3500,3100,3900,900,3000,2100,1900,2900,2100) model = lm(y~x) plot(x, y, xlab="Einkommen*E3", ylab="Konsum*E2", col="red", cex=2, pch=20, xaxt="n", yaxt="n") axis(1, at=seq(1000,6000,by=1000), label=seq(1,6,by=1)) axis(2, at=seq(1000,4000,by=500), label=seq(10,40,by=5), las=2) abline(423.12969, 0.53322, lwd=2, col="black") </R> |
Der Anstieg der Geraden entspricht der Konsumquote:
Mit jeder Mark mehr Einkommen erhöhen sich im Mittel der beobachteten 10 Zwei-Personen-Haushalte die Konsumausgaben um 0,53 Euro.
Nach Berechnung der Standardabweichung von bzw. sowie der Kovarianz zwischen und lässt sich der Korrelationskoeffizient wie folgt ermitteln:
Er weist auf einen starken Zusammenhang zwischen Konsumausgaben und HH-Nettoeinkommen hin.
Die Güte der Anpassung der Regressionsfunktion an die Daten lässt sich mit Hilfe des Bestimmtheitsmaßes ermitteln. Es ist der Anteil der durch die Regressionsfunktion erklärten Varianz an der Gesamtvarianz der Konsumausgaben (Y):
Das Bestimmtheitsmaß zeigt, dass 86% der Varianz der Konsumausgaben durch die lineare Abhängigkeit vom Haushaltsnettoeinkommen bei den 10 Zwei-Personen-Haushalten erklärt werden kann.