De regressieanalyse uitvoeren
Met de summary()
functie krijg je uitgebreide informatie over het zojuist getrainde model. Hierbij kijken we eerst naar het gedeelte dat onder de tekst coëfficiënts staat.
summary(model1)
##
## Call:
## lm(formula = TevredenheidKlant ~ AfstandKlant, data = Projecten)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.3339 -0.4396 -0.1447 0.5578 1.5831
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.524811 0.089066 28.348 < 2e-16 ***
## AfstandKlant -0.003409 0.000964 -3.536 0.000622 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.6238 on 98 degrees of freedom
## Multiple R-squared: 0.1132, Adjusted R-squared: 0.1041
## F-statistic: 12.51 on 1 and 98 DF, p-value: 0.0006216
Bij Intercept
en Afstand.Klant
zie je dezelfde waarden als in het geschatte model staan. Dit zijn de coëfficiënten. Dit interpreteer je als: "Voor iedere stijging van x
, stijgt de waarde y
als aangegeven in de betreffende coëfficiënt".
Het regressiemodel analyseren kan op verschillende manieren. Je ziet dat de output van de
summary()
functie veel informatie geeft. Ieder stuk informatie is bruikbaar. Als je dieper in de wereld van statistiek duikt, zal je steeds meer onderdelen van de output herkennen en kunnen lezen. Voor deze handleiding houden we het in ieder geval nog even simpel en kijken we alleen naar de coëfficiënten, de significantie en de Adjusted R squared.
Significantie
Achter de rijen staan 3 sterren (***
) weergegeven. De sterren geven aan dat de betreffende variabele significant is, dit wil zeggen dat het voor deze regressie van belang is dat deze variabele wordt gebruikt. In statistische termen: "De variabele X reageert significant op variabele Y". Een aanduiding met één ster is al genoeg om aan te tonen dat de variabele significant is. Des te meer sterren achter de rij staan, des te meer significantie de variabele heeft. Als er achter de betreffende variabele geen sterren staan, is de variabele niet significant en voegt het dus niet veel toe aan het voorspellingsmodel. De variabele is dan niet verklarend genoeg in de regressie.
Voorspellingskracht van de regressie / Adjusted R-squared
In het resultaat vind je ook de Adjusted R-squared. Deze geeft de voorspellingskracht van het geschatte model aan. Het percentage dat het geschatte model juist voorspelt wordt achter de Adjusted R-squared weergegeven in decimalen. Een Adjusted R-squared van 1 betekent dus dat 100% van de voorspellingen die met het geschatte model gedaan worden juist zijn. Een Adjusted R-squared van 0,5 betekend dat 50% van de voorspellingen die met het geschatte model gedaan worden juist zijn.
Het is aan de gebruiker zelf om te beoordelen, aan de hand van Adjusted R-squared, of het geschatte model goed genoeg is. Er zijn verschillende interpretaties over de hoogte van de Adjusted R-squared. Bij het huidige voorbeeld is de Adjusted R-squared 0.1041
. Dit betekent dat in 10,41% van de gevallen het geschatte model de tevredenheid van de klant juist voorspelt.
We trainen een volgende lineair voorspellingsmodel. Hier wordt er naar een voorspellingsmodel gezocht om de opbrengst van het project te voorspellen met het aantal uren dat er in is gestoken. Hiervoor wordt de volgende code gebruikt:
model2 <- lm(OpbrengstProject~UrenProject, Projecten)
Door code model2()
in te voeren, komt het volgende geschatte model tevoorschijn:
model2
##
## Call:
## lm(formula = OpbrengstProject ~ UrenProject, data = Projecten)
##
## Coefficients:
## (Intercept) UrenProject
## 0 40
Hierin is x het aantal uren dat er in het project wordt gestoken. Met de summary(model2)
komen de extra gegevens van het model tevoorschijn.
summary(model2)
## Warning in summary.lm(model2): essentially perfect fit: summary may be
## unreliable
##
## Call:
## lm(formula = OpbrengstProject ~ UrenProject, data = Projecten)
##
## Residuals:
## Min 1Q Median 3Q Max
## -9.831e-12 4.410e-14 1.541e-13 2.764e-13 1.693e-12
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.000e+00 4.127e-13 0.000e+00 1
## UrenProject 4.000e+01 1.930e-15 2.072e+16 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.321e-12 on 98 degrees of freedom
## Multiple R-squared: 1, Adjusted R-squared: 1
## F-statistic: 4.294e+32 on 1 and 98 DF, p-value: < 2.2e-16
Daarin is te zien dat alleen de variabele UrenProject
significant is (Intercept kan net zo goed worden weggehaald omdat deze 0 is). Verder is te zien dat de Adjusted R-squared gelijk aan 1 is. Dat wil zeggen dat met het geschatte model 100% betrouwbaar is. Dit is logisch want blijkbaar rekent het bedrijf 40 per uur en stijgt de opbrengst met 40 voor elk uur dat er in het project gestoken wordt.
Perfecte lineaire regressie Aan de waarschuwing die R geeft kun je zien dat het model de waarde van Y perfect voorspelt. Dit klopt omdat in dit geval de Y variabele gebouwd is op de X variabele. Deze situatie kom je zelden tegen maar geeft de bevestiging dat als een variabele een andere variabele perfect voorspelt, het model dit gewoon laat zien.