Απλή γραμμική παλινδρόμηση με την R
Ας δούμε ένα απλό παράδειγμα παλινδρόμησης
$$ y = \beta_0 + \beta_1 x + \epsilon $$
> x <- c(1.5, 3.3, 4.1, 4.4, 6.3, 7.7, 8.2, 8.9, 10.1, 11.2, 12.3, 13.1, 13.6, 14.4, 15.9, 17.5, 17.9) > y <- c(4.7, 3.8, 7.6, 10.8, 7.2, 11.4, 12.6, 10.8, 17.1, 15.5, 15.3, 15.5, 19.3, 24.1, 28.5, 21.5, 27.2) > lm(y~x) Call: lm(formula = y ~ x) Coefficients: (Intercept) x 1.166 1.368
Η συνάρτηση lm επεξεργάζεται τα στοιχεία x,y και αποδίδει το αποτέλεσμα ως σταθερό όρο και κλίση.
Μπορείτε να επιλέξετε ή όχι τη χρήση του σταθερού όρου ως εξής:
> lm(y~0+x) Call: lm(formula = y ~ 0 + x) Coefficients: x 1.462 > lm(y~1+x) Call: lm(formula = y ~ 1 + x) Coefficients: (Intercept) x 1.166 1.368
Μπορείτε επίσης να πάρετε περισσότερο αναλυτικά τα αποτελέσματα με τη χρήση της συνάρτησης summary:
> summary(lm(y~x)) Call: lm(formula = y ~ x) Residuals: Min 1Q Median 3Q Max -3.6027 -2.5397 -0.2984 1.5502 5.5857 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 1.1664 1.5318 0.761 0.458 x 1.3678 0.1373 9.964 5.24e-08 *** --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 2.776 on 15 degrees of freedom Multiple R-squared: 0.8687, Adjusted R-squared: 0.86 F-statistic: 99.28 on 1 and 15 DF, p-value: 5.241e-08
Ολόκληρη η γραμμική παλινδρόμηση μπορεί να αποθηκευθεί σε μια μια μεταβλητή και να αναλυθεί αργότερα με ποικίλους τρόπους. Η αποθήκευση του γραμμικού μοντέλου σε μια μεταβλητή γίνεται πολύ απλά ως:
> mod <- lm(y~x)
Έτσι είναι δυνατή η γραφή:
> summary(mod) Call: lm(formula = y ~ x) Residuals: Min 1Q Median 3Q Max -3.6027 -2.5397 -0.2984 1.5502 5.5857 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 1.1664 1.5318 0.761 0.458 x 1.3678 0.1373 9.964 5.24e-08 *** --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 2.776 on 15 degrees of freedom Multiple R-squared: 0.8687, Adjusted R-squared: 0.86 F-statistic: 99.28 on 1 and 15 DF, p-value: 5.241e-08
Το γράφημα διασποράς και η ευθεία της παλινδρόμησης μπορούν να γίνουν έτσι:
> plot(x,y, ylim=c(0,25)) > abline(mod)
σχολιασμοί, εξωτερικοί σύνδεσμοι, βοήθεια, ψηφοφορίες, αρχεία, κτλ.
Εκπαιδευτικό υλικό από τον
Αθανάσιο Σταυρακούδη
σας παρέχετε κάτω από την άδεια
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 License.
Σας παρακαλώ να ενημερωθείτε για κάποιους επιπλέον περιορισμούς
http://stavrakoudis.econ.uoi.gr/stavrakoudis/?iid=401.