Hoe de kleinste kwadratenmethode in r te gebruiken


De kleinste kwadratenmethode is een methode die we kunnen gebruiken om de regressielijn te vinden die het beste bij een gegeven set gegevens past.

Om de kleinste kwadratenmethode te gebruiken om een regressielijn in R te passen, kunnen we de functie lm() gebruiken.

Deze functie gebruikt de volgende basissyntaxis:

 model <- lm(response ~ predictor, data=df)

Het volgende voorbeeld laat zien hoe u deze functie in R kunt gebruiken.

Voorbeeld: kleinste kwadratenmethode in R

Stel dat we het volgende gegevensframe in R hebben dat het aantal gestudeerde uren en de bijbehorende examenscore voor 15 studenten in een klas weergeeft:

 #create data frame
df <- data. frame (hours=c(1, 2, 4, 5, 5, 6, 6, 7, 8, 10, 11, 11, 12, 12, 14),
                 score=c(64, 66, 76, 73, 74, 81, 83, 82, 80, 88, 84, 82, 91, 93, 89))

#view first six rows of data frame
head(df)

  hours score
1 1 64
2 2 66
3 4 76
4 5 73
5 5 74
6 6 81

We kunnen de functie lm() gebruiken om de kleinste kwadratenmethode te gebruiken om een regressielijn aan deze gegevens te koppelen:

 #use method of least squares to fit regression line
model <- lm(score ~ hours, data=df)

#view regression model summary
summary(model)

Call:
lm(formula = score ~ hours, data = df)

Residuals:
   Min 1Q Median 3Q Max 
-5,140 -3,219 -1,193 2,816 5,772 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 65,334 2,106 31,023 1.41e-13 ***
hours 1.982 0.248 7.995 2.25e-06 ***
---
Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 3.641 on 13 degrees of freedom
Multiple R-squared: 0.831, Adjusted R-squared: 0.818 
F-statistic: 63.91 on 1 and 13 DF, p-value: 2.253e-06

Uit de waarden in de kolom Geschat resultaat kunnen we de volgende aangepaste regressielijn schrijven:

Examenscore = 65.334 + 1.982 (uren)

Zo interpreteert u elke coëfficiënt in het model:

  • Intercept : Voor een student die 0 uur studeert, is de verwachte examenscore 65.334 .
  • uren : Voor elk bijkomend uur dat gestudeerd wordt, stijgt de verwachte examenscore met 1.982 .

We kunnen deze vergelijking gebruiken om een schatting te maken van het examencijfer dat een student zal ontvangen op basis van de bestudeerde uren.

Als een student bijvoorbeeld 5 uur studeert, schatten we dat zijn examenscore 75,244 zou zijn:

Examenscore = 65.334 + 1.982(5) = 75.244

Ten slotte kunnen we een spreidingsdiagram maken van de originele gegevens met de passende regressielijn over de grafiek heen:

 #create scatter plot of data
plot(df$hours, df$score, pch=16, col=' steelblue ')

#add fitted regression line to scatter plot
abline(model)

De blauwe cirkels vertegenwoordigen de gegevens en de zwarte lijn vertegenwoordigt de gepaste regressielijn.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in R kunt uitvoeren:

Hoe maak je een restplot in R
Hoe te testen op multicollineariteit in R
Hoe u curve-fitting uitvoert in R

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert