Güte der Regression
Aus MM*Stat
Grundbegriffe
Güte (Bestimmtheit) der Regression
Ist die Regressionsfunktion ermittelt, interessiert im Folgenden, wie gut die Regressionsfunktion an die Beobachtungswerte angepasst ist, wie gut sie diese repräsentiert.
Das Bestimmtheitsmaß ist eine für diese Untersuchung geeignete Maßzahl. Die Berechnung des Bestimmtheitsmaßes beruht auf der Aufspaltung der Varianz der abhängigen Variablen .
Gemäß dem Ziel der Regression ist die Güte der Anpassung umso höher, je kleiner die Summe der quadratischen Abweichungen ist.
Für die Varianz von gilt:
Die Abweichung eines Beobachtungswertes vom Mittelwert lässt sich zerlegen in die Abweichung des Beobachtungswertes vom Regresswert und die Abweichung des Regresswertes vom Mittelwert.
Die Grafik veranschaulicht diese Zerlegung.
<R output="display">
pdf(rpdf, width=7, height=7) par(font=2) par(mar=c(2,1,2,1)+0.1) c=1.4 plot(2.5, 3, pch=4, col="red", lwd=2, xaxt="n", yaxt="n", xlim=c(0,6), ylim=c(0,4.5), xlab="", ylab="", axes=F, cex=2) arrows(0, 0, 0, 4.7, 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=3, col="green") mtext("X", side=1, line=0, at=6.3, cex=c) mtext("Y", side=2, line=0, at=4.8, las=2, cex=c) arrows(2.5, 2, 2.5, 3, code=3, angle=20, length=0.1) arrows(2.5, 1.6, 2.5, 2, code=3, angle=20, length=0.1) arrows(3.55, 1.6, 3.55, 3, code=3, angle=20, length=0.1) lines(c(0, 4), c(3, 3)) lines(c(0, 2.5), c(2, 2)) lines(c(0, 5), c(1.6, 1.6)) mtext(expression(bold(y["i"])), side=2, line=0, at=3, las=2, cex=c) mtext(expression(bold(hat(y)["i"])), side=2, line=0, at=2, las=2, cex=c) mtext(expression(bold(bar(y))), side=2, line=0, at=1.6, las=2, cex=c) mtext(expression(bold(X["i"])), side=1, line=0, at=2.5, cex=c) points(c(2.5,0,0,0), c(0,1.6,2,3), pch=15, cex=0.8) text(5.5, 3.7, expression(bold(hat(y) * "=" * b["0"] * "+" * b["1"]*x)), cex=c) text(2, 2.5, expression(bold(y["i"] * "-" * hat(y)[i] * "=" * hat(u)["i"])), cex=c) text(3.9, 2.1, expression(bold(y["i"] * "-" * bar(y))), cex=c) text(2.8, 1.8, expression(bold(hat(y)["i"] * "-" * bar(y))), cex=c) </R> |
Analog lässt sich auch die Summe der quadratischen Abweichungen zerlegen:
Werden beide Seiten der Gleichung durch dividiert, ergibt sich:
Die Gesamtvarianz von ist gleich der Summe aus der Varianz der Residuen (nicht erklärter Teil der Varianz von ) und dem durch die Regressionsfunktion erklärten Teil der Varianz von .
Es folgt:
- Je größer die durch das Modell erklärte Varianz ist, desto besser ist die Güte der Regressionsfunktion.
- Je größer dagegen die Varianz der Residuen ist, desto größer ist der Einfluss anderer, nicht durch die Regressionsfunktion erklärter Einflüsse.
Bestimmtheitsmaß
Das Bestimmtheitsmaß ist definiert als Anteil der durch die Regressionsfunktion erklärten Varianz von an der Gesamtvarianz von :
Alternative Möglichkeiten zur Berechnung des Bestimmtheitsmaßes sind:
Zusatzinformationen
- Wertebereich des Bestimmtheitsmaßes:
- Je größer der Wert des Bestimmtheitsmaßes, desto besser ist die Anpassung der Regressionsfunktion an die Beobachtungswerte.
- Liegen alle Beobachtungswerte auf der Regressionsgeraden, nimmt das Bestimmtheitsmaß den Wert 1 an. Die Gesamtvarianz von wird durch die Abhängigkeit von erklärt. Es liegt eine vollständige funktionale Abhängigkeit vor.
- Bei einem Bestimmtheitsmaß von 0 ist die Gesamtvarianz von identisch mit der nicht erklärten Varianz (Varianz der Residuen). Das Merkmal hat keinen Einfluss auf das Merkmal .
- Für eine lineare Regressionsfunktion entspricht das Bestimmtheitsmaß dem Quadrat des Korrelationskoeffizienten: .
Beispiele
Autotypen
Von 74 verschiedenen Autotypen wurden unter anderem folgende Merkmale erhoben:
- | price | |
- | mpg (miles per gallon) | |
- | headroom (in inches) | |
- | rear seat clearance (distance from front seat back to the rear seat, in inches) | |
- | trunk space (in cubic feet) | |
- | weight (in pound) | |
- | length (in inches) | |
- | turning diameter (clearance required to make a U-turn, in feet) | |
- | displacement (in cubic inches) |
Die Abhängigkeit des Wendekreises von der Länge des Fahrzeugs lässt sich grafisch in Form eines Scatterplots veranschaulichen.
Jedes Fahrzeug wird in dem Scatterplot durch einen Punkt () dargestellt. Zusätzlich ist in dem Plot die Regressionsgerade (schwarz) eingezeichnet.
<R output="display">
pdf(rpdf, width=14, height=7) par(mar=c(5, 4, 4, 2) + 0.1) par(mfrow=c(1,2)) x = c(186, 173, 168, 189, 174, 177, 196, 222, 218, 170, 200, 207, 200, 221, 204, 204, 163, 212, 193, 200, 179, 197, 170, 165, 170, 184, 163, 206, 216, 220, 161, 147, 179, 172, 149, 233, 230, 201, 154, 169, 221, 217, 212, 198, 195, 220, 198, 198, 218, 200, 180, 206, 192, 170, 157, 165, 182, 201, 214, 198, 201, 199, 203, 179, 142, 164, 174, 165, 175, 155, 155, 156, 172, 193) y = c(40, 40, 35, 37, 36, 34, 40, 43, 43, 34, 42, 43, 42, 44, 43, 45, 34, 43, 41, 41, 40, 43, 35, 32, 34, 38, 35, 46, 48, 46, 36, 33, 42, 36, 34, 51, 48, 41, 33, 39, 48, 45, 44, 41, 43, 43, 42, 42, 42, 43, 40, 43, 38, 37, 37, 36, 38, 44, 42, 42, 45, 40, 43, 41, 34, 36, 36, 35, 36, 35, 35, 36, 36, 37) plot(c(0,0), xlim=c(135, 245), ylim=c(31, 52), xlab="length", ylab="turn - diam", font.lab=2, cex.lab=1.4, las=1); #summary(lm(y~x)) lines(rep(x[53], 2), c(30, 7.1739+0.1735*x[53]), col="blue", lwd=2) lines(c(130, x[53]), rep(y[53], 2), col="cyan", lwd=2) lines(c(130, x[53]), rep(7.1739+0.1735*x[53], 2), col="blue", lwd=2) points(x[-53], y[-53], pch=16, col="red", cex=1.25) abline(7.1739, 0.1735, lwd=3) points(x[53], y[53], pch=19, cex=2, col="green3") text(202, 38, expression(x[53]), cex=1.75) par(mar=rep(0,4)) plot.new() par(cex=1.1) text(0.05, 0.85, "Regressionsfunktion", pos=4) text(0.05, 0.80, "turn-diam = 7.1739 + 0.1735 * length", pos=4) text(0.05, 0.65, "Korrelationskoeffizient r = 0.90", pos=4) text(0.05, 0.50, "SS-Total", pos=4); text(0.33, 0.5, "= 1361.96", pos=4) text(0.05, 0.45, "SS-Residual", pos=4); text(0.33, 0.45, "= 259.06", pos=4) text(0.05, 0.40, "SS-Regression", pos=4); text(0.33, 0.40, "= 1102.90", pos=4) text(0.05, 0.35, "SS-Total", pos=4); text(0.33, 0.35, "= SS-Regression + SS-Residual", pos=4) text(0.05, 0.20, paste("Bestimmtheitsma\u00DF"), pos=4) text(0.40, 0.20, expression(R^2), pos=4) text(0.44, 0.20, paste(" = 0.81"), pos=4) </R> |
Die Regressionsanalyse liefert folgende Ergebnisse:
- Die Regressionskonstante beträgt 7,1739. Eine Interpretation ist für dieses Beispiel nicht sinnvoll; ist vor allem ein Ausgleichsparameter.
- Mit jedem Längenzuwachs um eine Einheit (in diesem Fall ein inch) erhöht sich der Wendekreis um feet.
- Der Korrelationskoeffizient beträgt 0,90 - ein starker Zusammenhang zwischen Wendekreis und Fahrzeuglänge wird impliziert.
- Zur Einschätzung der Güte der Anpassung der Regressionsfunktion an die Daten wird das Bestimmtheitsmaß () verwendet.
- Seine Berechnung beruht auf der Aufspaltung der Varianz der abhängigen Variablen (Wendekreis). Für die Berechnung des Bestimmtheitsmaßes wird die Gesamtvarianz (SS-Total), die nicht erklärte Varianz (SS-Residual) sowie die erklärte Varianz (SS-Regression) ermittelt und in folgende Formel eingesetzt:
- Es ergibt sich ein Bestimmtheitsmaß von 0,81. Die Anpassung der linearen Regressionsfunktion an die Beobachtungswerte ist im Ergebnis recht gut.
- Im Datenpunkt beträgt die Fahrzeuglänge 192 inches, der dazugehörige beobachtete Wendekreis 38 feet. Die ermittelte Regressionsfunktion prognostiziert im Mittel für eine Fahrzeuglänge diesen Ausmaßes einen Wendekreis von 40,49 feet.
Kriminalitätsraten
In den U.S.A. wurden 1985 neben anderen Variablen verschiedene Kriminalitätsraten für 50 Bundesstaaten ermittelt:
- | land area | |
- | population | |
- | murder | |
- | rape | |
- | robbery | |
- | assault | |
- | burglary | |
- | auto-theft | |
- | US states region number | |
- | US states division number |
Die Abhängigkeit der Überfallrate von der Größe der Bevölkerung lässt sich grafisch in Form eines Scatterplots veranschaulichen.
Jeder Bundesstaat wird in dem Scatterplot durch einen Punkt dargestellt. Zusätzlich ist in dem Plot die Regressionsgerade (schwarz) eingezeichnet.
<R output="display">
pdf(rpdf, width=14, height=7) par(mar=c(5, 4, 4, 2) + 0.1) par(mfrow=c(1,2)) x = c(1164, 998, 535, 5822, 968, 3174, 17783, 7562, 11853, 10744, 5499, 11535, 9088, 4775, 4193, 2884, 5029, 685, 708, 1606, 2450, 622, 4392, 5706, 1936, 6255, 3347, 5976, 11366, 3726, 4762, 4021, 2613, 2359, 4481, 3301, 16370, 826, 1005, 509, 3231, 1450, 3187, 1645, 936, 4409, 2687, 26365, 521, 1054) y = c(12.6, 12.1, 7.6, 99.5, 78.3, 70.4, 443.3, 169.4, 106, 145.9, 107.5, 251.1, 346.6, 33.1, 89.1, 28.6, 200.8, 6.5, 17.1, 57.3, 75.1, 105.5, 338.6, 92, 27.3, 53, 60.1, 95.8, 186.1, 72.8, 82, 50.3, 19, 45.6, 140.8, 54.9, 134.1, 22.3, 20.5, 22, 129.1, 66.1, 120.2, 53.1, 188.4, 93.5, 102.5, 206.9, 71.8, 63.3) plot(x, y, pch="", xlab="population * E^3", ylab="robbery * E^2", font.lab=2, cex.lab=1.4, xaxt="n", yaxt="n"); #summary(lm(y~x)) axis(1, at=seq(0,25000,by=5000), label=seq(0,25,by=5)) axis(2, at=seq(0,400,by=100), label=seq(0,4,by=1), las=2) lines(rep(x[37], 2), c(-10, 48.1134+0.0112*x[37]), col="blue", lwd=2) lines(c(-700, x[37]), rep(y[37], 2), col="cyan", lwd=2) lines(c(-700, x[37]), rep(48.1134+0.0112*x[37], 2), col="blue", lwd=2) points(x[-37], y[-37], pch=16, col="red", cex=1.25) abline(48.1134, 0.0112, lwd=3) points(x[37], y[37], pch=19, cex=2, col="green3") text(18000, 125, expression(x[37]), cex=1.75) par(mar=rep(0,4)) plot.new() par(cex=1.1) text(0.05, 0.85, "Regressionsfunktion", pos=4) text(0.05, 0.80, "robbery = 48.1134 + 0.0112 * popul.", pos=4) text(0.05, 0.65, "Korrelationskoeffizient r = 0.62", pos=4) text(0.05, 0.50, "SS-Total", pos=4); text(0.33, 0.5, "= 407495.40", pos=4) text(0.05, 0.45, "SS-Residual", pos=4); text(0.33, 0.45, "= 249210.77", pos=4) text(0.05, 0.40, "SS-Regression", pos=4); text(0.33, 0.40, "= 158284.63", pos=4) text(0.05, 0.35, "SS-Total", pos=4); text(0.33, 0.35, "= SS-Regression + SS-Residual", pos=4) text(0.05, 0.20, paste("Bestimmtheitsma\u00DF"), pos=4) text(0.40, 0.20, expression(R^2), pos=4) text(0.44, 0.20, paste(" = 0.39"), pos=4) </R> |
Die Regressionsanalyse liefert folgende Ergebnisse:
- Die Regressionskonstante beträgt 48,1134. Eine Interpretation ist für dieses Beispiel nicht sinnvoll; ist vor allem ein Ausgleichsparameter.
- Mit jedem Anstieg der Bevölkerung um eine Einheit (in diesem Fall 1.000 Personen) steigt die Überfallrate um .
- Der Korrelationskoeffizient beträgt 0,62 - ein Zusammenhang zwischen Überfallrate und Bevölkerungsgröße wird impliziert.
- Zur Einschätzung der Güte der Anpassung der Regressionsfunktion an die Daten wird das Bestimmtheitsmaß verwendet.
- Seine Berechnung beruht auf der Aufspaltung der Varianz der abhängigen Variablen (Überfallrate).
- Für die Berechnung des Bestimmtheitsmaßes wird die Gesamtvarianz (SS-Total), die nicht erklärte Varianz (SS-Residual) sowie die erklärte Varianz (SS-Regression) ermittelt und in folgende Formel eingesetzt:
Es ergibt sich ein Bestimmtheitsmaß von 0,39. Die Anpassung der linearen Regressionsfunktion an die Beobachtungswerte ist im Ergebnis relativ gering.
Im Datenpunkt beträgt die Größe der Bevölkerung 16370 (Tsd.), die dazugehörige beobachtete Überfallrate 134,1. Die ermittelte Regressionsfunktion prognostiziert im Mittel für eine Bevölkerung dieser Größe eine Überfallrate von 231,66.