R Απλή, πολλαπλή γραμμική και σταδιακή παλινδρόμηση (με παράδειγμα)

Πίνακας περιεχομένων:

Anonim

Σε αυτό το σεμινάριο, θα μάθετε

  • Απλή γραμμική παλινδρόμηση
  • Πολλαπλή γραμμική παλινδρόμηση
  • Συνεχείς μεταβλητές
  • Παλινδρόμηση παραγόντων
  • Σταδιακή παλινδρόμηση
  • Μηχανική εκμάθηση
  • Εποπτευόμενη μάθηση
  • Μη επιτηρούμενη μάθηση

Απλή γραμμική παλινδρόμηση

Η γραμμική παλινδρόμηση απαντά σε μια απλή ερώτηση: Μπορείτε να μετρήσετε μια ακριβή σχέση μεταξύ μιας μεταβλητής στόχου και ενός συνόλου προγνωστικών;

Τα απλούστερα πιθανοτικά μοντέλα είναι το μοντέλο ευθείας γραμμής:

που

  • y = Εξαρτημένη μεταβλητή
  • x = Ανεξάρτητη μεταβλητή
  • = στοιχείο τυχαίου σφάλματος
  • = τομή
  • = Συντελεστής x

Εξετάστε την ακόλουθη πλοκή:

Η εξίσωση είναι η τομή. Εάν το x ισούται με το 0, το y θα είναι ίσο με το σημείο τομής, 4.77. είναι η κλίση της γραμμής. Λέει σε ποια αναλογία y διαφέρει όταν x ποικίλει.

Για την εκτίμηση των τιμών βέλτιστη της , μπορείτε να χρησιμοποιήσετε μια μέθοδο που ονομάζεται Τακτική ελαχίστων τετραγώνων (OLS) . Αυτή η μέθοδος προσπαθεί να βρει τις παραμέτρους που ελαχιστοποιούν το άθροισμα των τετραγώνων σφαλμάτων, δηλαδή την κατακόρυφη απόσταση μεταξύ των προβλεπόμενων τιμών y και των πραγματικών τιμών y. Η διαφορά είναι γνωστή ως ο όρος σφάλματος .

Πριν εκτιμήσετε το μοντέλο, μπορείτε να προσδιορίσετε εάν μια γραμμική σχέση μεταξύ y και x είναι εύλογη σχεδιάζοντας ένα scatterplot.

Διάγραμμα διασποράς

Θα χρησιμοποιήσουμε ένα πολύ απλό σύνολο δεδομένων για να εξηγήσουμε την έννοια της απλής γραμμικής παλινδρόμησης. Θα εισαγάγουμε το μέσο ύψος και το βάρος για τις αμερικανικές γυναίκες. Το σύνολο δεδομένων περιέχει 15 παρατηρήσεις. Θέλετε να μετρήσετε εάν τα ύψη συσχετίζονται θετικά με τα βάρη.

library(ggplot2)path <- 'https://raw.githubusercontent.com/guru99-edu/R-Programming/master/women.csv'df <-read.csv(path)ggplot(df,aes(x=height, y = weight))+geom_point()

Παραγωγή:

Το scatterplot προτείνει μια γενική τάση για y να αυξάνεται καθώς το x αυξάνεται. Στο επόμενο βήμα, θα μετρήσετε με πόσες αυξήσεις για κάθε επιπλέον.

Εκτίμηση ελάχιστων τετραγώνων

Σε μια απλή παλινδρόμηση OLS, ο υπολογισμός είναι απλός. Ο στόχος δεν είναι να δείξουμε την παράγωγη σε αυτό το σεμινάριο. Θα γράψετε μόνο τον τύπο.

Θέλετε να εκτιμήσετε:

Ο στόχος της παλινδρόμησης OLS είναι να ελαχιστοποιηθεί η ακόλουθη εξίσωση:

που

είναι η προβλεπόμενη τιμή.

Η λύση

Σημειώστε ότι σημαίνει τη μέση τιμή του x

Η λύση

Στο R, μπορείτε να χρησιμοποιήσετε τη συνάρτηση cov () και var () για εκτίμηση

beta <- cov(df$height, df$weight) / var (df$height)beta

Παραγωγή:

##[1] 3.45
alpha <- mean(df$weight) - beta * mean(df$height)alpha

Παραγωγή:

## [1] -87.51667

Ο συντελεστής beta υπονοεί ότι για κάθε επιπλέον ύψος, το βάρος αυξάνεται κατά 3,45.

Η χειροκίνητη απλή γραμμική εξίσωση δεν είναι ιδανική. Το R παρέχει μια κατάλληλη συνάρτηση για την εκτίμηση αυτών των παραμέτρων. Θα δείτε αυτήν τη λειτουργία σύντομα. Πριν από αυτό, θα παρουσιάσουμε πώς να υπολογίζουμε με το χέρι ένα απλό μοντέλο γραμμικής παλινδρόμησης. Στο ταξίδι σας των επιστημόνων δεδομένων, θα εκτιμήσετε μόλις ή ποτέ ένα απλό γραμμικό μοντέλο. Στις περισσότερες περιπτώσεις, οι εργασίες παλινδρόμησης εκτελούνται σε πολλούς εκτιμητές.

Πολλαπλή γραμμική παλινδρόμηση

Πιο πρακτικές εφαρμογές ανάλυσης παλινδρόμησης χρησιμοποιούν μοντέλα που είναι πιο περίπλοκα από το απλό μοντέλο ευθείας γραμμής. Το πιθανοτικό μοντέλο που περιλαμβάνει περισσότερες από μία ανεξάρτητες μεταβλητές ονομάζεται μοντέλα πολλαπλής παλινδρόμησης . Η γενική μορφή αυτού του μοντέλου είναι:

Στη σημειογραφία matrix, μπορείτε να ξαναγράψετε το μοντέλο:

Η εξαρτημένη μεταβλητή y είναι τώρα συνάρτηση των ανεξάρτητων k μεταβλητών. Η τιμή του συντελεστή .

Εισάγουμε εν συντομία την υπόθεση που κάναμε σχετικά με το τυχαίο σφάλμα του OLS:

  • Μέση τιμή ίση με 0
  • Διακύμανση ίση με
  • Κανονική κατανομή
  • Τα τυχαία λάθη είναι ανεξάρτητα (κατά πιθανότητα)

Πρέπει να επιλύσετε , το διάνυσμα των συντελεστών παλινδρόμησης που ελαχιστοποιούν το άθροισμα των τετραγώνων σφαλμάτων μεταξύ των προβλεπόμενων και των πραγματικών τιμών y.

Η λύση κλειστής μορφής είναι:

με:

  • δείχνει τη μεταφορά του πίνακα X
  • υποδεικνύει την αναστρέψιμη μήτρα

Χρησιμοποιούμε το σύνολο δεδομένων mtcars. Είστε ήδη εξοικειωμένοι με το σύνολο δεδομένων. Στόχος μας είναι να προβλέψουμε το μίλι ανά γαλόνι σε ένα σύνολο χαρακτηριστικών.

Συνεχείς μεταβλητές

Προς το παρόν, θα χρησιμοποιήσετε μόνο τις συνεχείς μεταβλητές και θα αναιρέσετε κατηγορηματικά χαρακτηριστικά. Η μεταβλητή am είναι μια δυαδική μεταβλητή που λαμβάνει την τιμή 1 εάν το κιβώτιο είναι χειροκίνητο και 0 για αυτόματα αυτοκίνητα. Το vs είναι επίσης μια δυαδική μεταβλητή.

library(dplyr)df <- mtcars % > %select(-c(am, vs, cyl, gear, carb))glimpse(df)

Παραγωγή:

## Observations: 32## Variables: 6## $ mpg  21.0, 21.0, 22.8, 21.4, 18.7, 18.1, 14.3, 24.4, 22.8, 19… .## $ disp  160.0, 160.0, 108.0, 258.0, 360.0, 225.0, 360.0, 146.7, 1… ## $ hp  110, 110, 93, 110, 175, 105, 245, 62, 95, 123, 123, 180,… ## $ drat  3.90, 3.90, 3.85, 3.08, 3.15, 2.76, 3.21, 3.69, 3.92, 3.9… ## $ wt  2.620, 2.875, 2.320, 3.215, 3.440, 3.460, 3.570, 3.190, 3… ## $ qsec  16.46, 17.02, 18.61, 19.44, 17.02, 20.22, 15.84, 20.00, 2… 

Μπορείτε να χρησιμοποιήσετε τη συνάρτηση lm () για τον υπολογισμό των παραμέτρων. Η βασική σύνταξη αυτής της συνάρτησης είναι:

lm(formula, data, subset)Arguments:-formula: The equation you want to estimate-data: The dataset used-subset: Estimate the model on a subset of the dataset

Να θυμάστε ότι μια εξίσωση έχει την ακόλουθη μορφή

στο R

  • Το σύμβολο = αντικαθίσταται από ~
  • Κάθε x αντικαθίσταται από το όνομα της μεταβλητής
  • Εάν θέλετε να ρίξετε τη σταθερά, προσθέστε -1 στο τέλος του τύπου

Παράδειγμα:

Θέλετε να εκτιμήσετε το βάρος των ατόμων με βάση το ύψος και τα έσοδά τους. Η εξίσωση είναι

Η εξίσωση στο R γράφεται ως εξής:

y ~ X1 + X2 +… + Xn # Με τομή

Έτσι, για το παράδειγμά μας:

  • Ζυγίστε ~ ύψος + έσοδα

Ο στόχος σας είναι να εκτιμήσετε το μίλι ανά γαλόνι με βάση ένα σύνολο μεταβλητών. Η εξίσωση για εκτίμηση είναι:

Θα εκτιμήσετε την πρώτη γραμμική παλινδρόμηση και θα αποθηκεύσετε το αποτέλεσμα στο αντικείμενο προσαρμογής.

model <- mpg~.disp + hp + drat + wtfit <- lm(model, df)fit

Επεξήγηση κώδικα

  • μοντέλο <- mpg ~ . disp + hp + drat + wt: Αποθηκεύστε το μοντέλο για εκτίμηση
  • lm (μοντέλο, df): Εκτιμήστε το μοντέλο με το πλαίσιο δεδομένων df
#### Call:## lm(formula = model, data = df)#### Coefficients:## (Intercept) disp hp drat wt## 16.53357 0.00872 -0.02060 2.01577 -4.38546## qsec## 0.64015

Η έξοδος δεν παρέχει αρκετές πληροφορίες σχετικά με την ποιότητα της εφαρμογής. Μπορείτε να αποκτήσετε πρόσβαση σε περισσότερες λεπτομέρειες, όπως η σημασία των συντελεστών, ο βαθμός ελευθερίας και το σχήμα των υπολειμμάτων με τη συνάρτηση περίληψης ().

summary(fit)

Παραγωγή:

## return the p-value and coefficient#### Call:## lm(formula = model, data = df)#### Residuals:## Min 1Q Median 3Q Max## -3.5404 -1.6701 -0.4264 1.1320 5.4996#### Coefficients:## Estimate Std. Error t value Pr(>|t|)## (Intercept) 16.53357 10.96423 1.508 0.14362## disp 0.00872 0.01119 0.779 0.44281## hp -0.02060 0.01528 -1.348 0.18936## drat 2.01578 1.30946 1.539 0.13579## wt -4.38546 1.24343 -3.527 0.00158 **## qsec 0.64015 0.45934 1.394 0.17523## ---## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1#### Residual standard error: 2.558 on 26 degrees of freedom## Multiple R-squared: 0.8489, Adjusted R-squared: 0.8199## F-statistic: 29.22 on 5 and 26 DF, p-value: 6.892e-10

Συμπεράσματα από την έξοδο του παραπάνω πίνακα

  • Ο παραπάνω πίνακας αποδεικνύει ότι υπάρχει μια ισχυρή αρνητική σχέση μεταξύ wt και χιλιομέτρων και θετική σχέση με το drat.
  • Μόνο η μεταβλητή wt έχει στατιστική επίδραση στο mpg. Θυμηθείτε, για να ελέγξετε μια υπόθεση στη στατιστική, χρησιμοποιούμε:
    • H0: Χωρίς στατιστικό αντίκτυπο
    • H3: Η πρόβλεψη έχει σημαντική επίδραση στο y
    • Εάν η τιμή p είναι χαμηλότερη από 0,05, δείχνει ότι η μεταβλητή είναι στατιστικά σημαντική
  • Προσαρμοσμένο τετράγωνο R: Η διαφοροποίηση εξηγείται από το μοντέλο. Στο μοντέλο σας, το μοντέλο εξήγησε το 82% της διακύμανσης του y. Το R τετράγωνο είναι πάντα μεταξύ 0 και 1. Όσο υψηλότερο τόσο το καλύτερο

Μπορείτε να εκτελέσετε τη δοκιμή ANOVA για να εκτιμήσετε την επίδραση κάθε δυνατότητας στις παραλλαγές με τη συνάρτηση anova ().

anova(fit)

Παραγωγή:

## Analysis of Variance Table#### Response: mpg## Df Sum Sq Mean Sq F value Pr(>F)## disp 1 808.89 808.89 123.6185 2.23e-11 ***## hp 1 33.67 33.67 5.1449 0.031854 *## drat 1 30.15 30.15 4.6073 0.041340 *## wt 1 70.51 70.51 10.7754 0.002933 **## qsec 1 12.71 12.71 1.9422 0.175233## Residuals 26 170.13 6.54## ---## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Ένας πιο συμβατικός τρόπος για την εκτίμηση της απόδοσης του μοντέλου είναι η εμφάνιση των υπολειμμάτων σε διαφορετικά μέτρα.

Μπορείτε να χρησιμοποιήσετε τη συνάρτηση plot () για να εμφανίσετε τέσσερα γραφήματα:

- Υπόλοιπα έναντι προσαρμοσμένων τιμών

- Κανονική γραφική παράσταση QQ: Θεωρητικό τεταρτημόριο έναντι τυποποιημένων υπολειμμάτων

- Τοποθεσία κλίμακας: Τοποθετημένες τιμές έναντι τετραγωνικών ριζών των τυποποιημένων υπολειμμάτων

- Υπόλοιπα έναντι μόχλευσης: Μόχλευση έναντι τυποποιημένων υπολειμμάτων

Προσθέτετε τον κωδικό par (mfrow = c (2,2)) πριν από την πλοκή (fit). Εάν δεν προσθέσετε αυτήν τη γραμμή κώδικα, το R σας ζητά να πατήσετε την εντολή enter για να εμφανιστεί το επόμενο γράφημα.

par(mfrow=(2,2))

Επεξήγηση κώδικα

  • (mfrow = c (2,2)): επιστρέψτε ένα παράθυρο με τα τέσσερα γραφήματα το ένα δίπλα στο άλλο.
  • Το πρώτο 2 προσθέτει τον αριθμό των σειρών
  • Το δεύτερο 2 προσθέτει τον αριθμό των στηλών.
  • Εάν γράψετε (mfrow = c (3,2)): θα δημιουργήσετε ένα παράθυρο 3 στηλών 2 στηλών
plot(fit)

Παραγωγή:

Ο τύπος lm () επιστρέφει μια λίστα που περιέχει πολλές χρήσιμες πληροφορίες. Μπορείτε να αποκτήσετε πρόσβαση σε αυτά με το κατάλληλο αντικείμενο που έχετε δημιουργήσει, ακολουθούμενο από το σύμβολο $ και τις πληροφορίες που θέλετε να εξαγάγετε.

- συντελεστές: «ταιριάζει συντελεστές $»

- υπολείμματα: "ταιριάζει $ υπόλοιπα"

- προσαρμοσμένη τιμή: "fit $ Feat.values"

Παλινδρόμηση παραγόντων

Στην τελευταία εκτίμηση μοντέλου, παλινδρομείτε mpg μόνο σε συνεχείς μεταβλητές. Είναι απλό να προσθέσετε μεταβλητές συντελεστών στο μοντέλο. Προσθέτετε τη μεταβλητή am στο μοντέλο σας. Είναι σημαντικό να είστε βέβαιοι ότι η μεταβλητή είναι επίπεδο παράγοντα και όχι συνεχής.

df <- mtcars % > %mutate(cyl = factor(cyl),vs = factor(vs),am = factor(am),gear = factor(gear),carb = factor(carb))summary(lm(model, df))

Παραγωγή:

#### Call:## lm(formula = model, data = df)#### Residuals:## Min 1Q Median 3Q Max## -3.5087 -1.3584 -0.0948 0.7745 4.6251#### Coefficients:## Estimate Std. Error t value Pr(>|t|)## (Intercept) 23.87913 20.06582 1.190 0.2525## cyl6 -2.64870 3.04089 -0.871 0.3975## cyl8 -0.33616 7.15954 -0.047 0.9632## disp 0.03555 0.03190 1.114 0.2827## hp -0.07051 0.03943 -1.788 0.0939 .## drat 1.18283 2.48348 0.476 0.6407## wt -4.52978 2.53875 -1.784 0.0946 .## qsec 0.36784 0.93540 0.393 0.6997## vs1 1.93085 2.87126 0.672 0.5115## am1 1.21212 3.21355 0.377 0.7113## gear4 1.11435 3.79952 0.293 0.7733## gear5 2.52840 3.73636 0.677 0.5089## carb2 -0.97935 2.31797 -0.423 0.6787## carb3 2.99964 4.29355 0.699 0.4955## carb4 1.09142 4.44962 0.245 0.8096## carb6 4.47757 6.38406 0.701 0.4938## carb8 7.25041 8.36057 0.867 0.3995## ---## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1#### Residual standard error: 2.833 on 15 degrees of freedom## Multiple R-squared: 0.8931, Adjusted R-squared: 0.779## F-statistic: 7.83 on 16 and 15 DF, p-value: 0.000124

Το R χρησιμοποιεί το πρώτο επίπεδο παράγοντα ως ομάδα βάσης. Πρέπει να συγκρίνετε τους συντελεστές της άλλης ομάδας με την ομάδα βάσης.

Σταδιακή παλινδρόμηση

Το τελευταίο μέρος αυτού του σεμιναρίου ασχολείται με τον αλγόριθμο σταδιακής παλινδρόμησης . Ο σκοπός αυτού του αλγορίθμου είναι να προσθέσει και να αφαιρέσει πιθανούς υποψήφιους στα μοντέλα και να διατηρήσει αυτούς που έχουν σημαντικό αντίκτυπο στην εξαρτημένη μεταβλητή. Αυτός ο αλγόριθμος έχει νόημα όταν το σύνολο δεδομένων περιέχει μια μεγάλη λίστα προβλέψεων. Δεν χρειάζεται να προσθέσετε και να αφαιρέσετε με μη αυτόματο τρόπο τις ανεξάρτητες μεταβλητές. Η σταδιακή παλινδρόμηση είναι σχεδιασμένη για να επιλέγει τους καλύτερους υποψήφιους που ταιριάζουν στο μοντέλο.

Ας δούμε σε δράση πώς λειτουργεί. Χρησιμοποιείτε το σύνολο δεδομένων mtcars με τις συνεχείς μεταβλητές μόνο για παιδαγωγική απεικόνιση. Πριν ξεκινήσετε την ανάλυση, καλό είναι να εντοπίσετε παραλλαγές μεταξύ των δεδομένων με μια μήτρα συσχέτισης. Η βιβλιοθήκη GGally είναι μια επέκταση του ggplot2.

Η βιβλιοθήκη περιλαμβάνει διάφορες συναρτήσεις για την εμφάνιση συνοπτικών στατιστικών, όπως συσχέτιση και κατανομή όλων των μεταβλητών σε μια μήτρα. Θα χρησιμοποιήσουμε τη συνάρτηση ggscatmat, αλλά μπορείτε να ανατρέξετε στο σύντομο χρονογράφημα για περισσότερες πληροφορίες σχετικά με τη βιβλιοθήκη GGally.

Η βασική σύνταξη για το ggscatmat () είναι:

ggscatmat(df, columns = 1:ncol(df), corMethod = "pearson")arguments:-df: A matrix of continuous variables-columns: Pick up the columns to use in the function. By default, all columns are used-corMethod: Define the function to compute the correlation between variable. By default, the algorithm uses the Pearson formula

Εμφανίζετε τη συσχέτιση για όλες τις μεταβλητές σας και αποφασίζετε ποια θα είναι η καλύτερη υποψήφια για το πρώτο βήμα της σταδιακής παλινδρόμησης. Υπάρχουν μερικές ισχυρές συσχετίσεις μεταξύ των μεταβλητών σας και της εξαρτημένης μεταβλητής, mpg.

library(GGally)df <- mtcars % > %select(-c(am, vs, cyl, gear, carb))ggscatmat(df, columns = 1: ncol(df))

Παραγωγή:

Σταδιακή παλινδρόμηση

Η επιλογή μεταβλητών είναι ένα σημαντικό μέρος για να ταιριάζει σε ένα μοντέλο. Η σταδιακή παλινδρόμηση θα εκτελέσει αυτόματα τη διαδικασία αναζήτησης. Για να υπολογίσετε πόσες πιθανές επιλογές υπάρχουν στο σύνολο δεδομένων, υπολογίζετε με το k είναι ο αριθμός των προβλέψεων. Το ποσό των δυνατοτήτων μεγαλώνει με τον αριθμό των ανεξάρτητων μεταβλητών. Γι 'αυτό πρέπει να έχετε μια αυτόματη αναζήτηση.

Πρέπει να εγκαταστήσετε το πακέτο olsrr από το CRAN. Το πακέτο δεν είναι διαθέσιμο ακόμη στο Anaconda. Ως εκ τούτου, το εγκαθιστάτε απευθείας από τη γραμμή εντολών:

install.packages("olsrr")

Μπορείτε να σχεδιάσετε όλα τα υποσύνολα δυνατοτήτων με τα κριτήρια προσαρμογής (π.χ. R-square, Adjusted R-square, Bayesian κριτήρια). Το μοντέλο με τα χαμηλότερα κριτήρια AIC θα είναι το τελικό μοντέλο.

library(olsrr)model <- mpg~.fit <- lm(model, df)test <- ols_all_subset(fit)plot(test)

Επεξήγηση κώδικα

  • mpg ~ .: Κατασκευάστε το μοντέλο για εκτίμηση
  • lm (μοντέλο, df): Εκτελέστε το μοντέλο OLS
  • ols_all_subset (fit): Κατασκευάστε τα γραφήματα με τις σχετικές στατιστικές πληροφορίες
  • plot (test): Σχεδιάστε τα γραφήματα

Παραγωγή:

Τα μοντέλα γραμμικής παλινδρόμησης χρησιμοποιούν το τεστ t για να εκτιμήσουν τη στατιστική επίδραση μιας ανεξάρτητης μεταβλητής στην εξαρτημένη μεταβλητή. Οι ερευνητές έθεσαν το μέγιστο όριο στο 10 τοις εκατό, με τις χαμηλότερες τιμές να δείχνουν μια ισχυρότερη στατιστική σχέση. Η στρατηγική της σταδιακής παλινδρόμησης κατασκευάζεται γύρω από αυτό το τεστ για να προσθέσετε και να αφαιρέσετε πιθανούς υποψηφίους. Ο αλγόριθμος λειτουργεί ως εξής:

  • Βήμα 1: Πραγματοποιήστε παλινδρόμηση κάθε προγνωστικού στο y ξεχωριστά Δηλαδή, παλινδρομήστε το x_1 στο y, το x_2 στο y στο x_n. Αποθηκεύστε την τιμή p και διατηρήστε τον μετρητή με τιμή p χαμηλότερη από ένα καθορισμένο όριο (0,1 από προεπιλογή). Οι προγνωστικοί παράγοντες με σημασία χαμηλότερη από το όριο θα προστεθούν στο τελικό μοντέλο. Εάν καμία μεταβλητή δεν έχει τιμή p χαμηλότερη από το όριο εισαγωγής, τότε ο αλγόριθμος σταματά και έχετε το τελικό μοντέλο με σταθερά μόνο.
  • Βήμα 2: Χρησιμοποιήστε την πρόβλεψη με τη χαμηλότερη τιμή p και προσθέστε ξεχωριστά μία μεταβλητή. Οπισθοχωρείτε μια σταθερά, ο καλύτερος δείκτης πρόβλεψης του πρώτου και ενός τρίτου μεταβλητού. Προσθέτετε στο σταδιακό μοντέλο, τους νέους προγνωστικούς παράγοντες με τιμή χαμηλότερη από το όριο εισόδου. Εάν καμία μεταβλητή δεν έχει τιμή p χαμηλότερη από 0,1, τότε ο αλγόριθμος σταματά και έχετε το τελικό σας μοντέλο με έναν μόνο προγνωστικό παράγοντα. Οπισθοχωρείτε το σταδιακό μοντέλο για να ελέγξετε τη σημασία των βέλτιστων προβλέψεων του βήματος 1. Εάν είναι υψηλότερο από το όριο αφαίρεσης, το διατηρείτε στο σταδιακό μοντέλο. Διαφορετικά, το αποκλείετε.
  • Βήμα 3: Αναπαράγετε το βήμα 2 στο νέο καλύτερο σταδιακό μοντέλο. Ο αλγόριθμος προσθέτει προβλέψεις στο σταδιακό μοντέλο με βάση τις τιμές εισαγωγής και αποκλείει την πρόβλεψη από το σταδιακό μοντέλο εάν δεν ικανοποιεί το κατώφλι εξαίρεσης.
  • Ο αλγόριθμος συνεχίζεται έως ότου καμία μεταβλητή δεν μπορεί να προστεθεί ή να αποκλειστεί.

Μπορείτε να εκτελέσετε τον αλγόριθμο με τη συνάρτηση ols_stepwise () από το πακέτο olsrr.

ols_stepwise(fit, pent = 0.1, prem = 0.3, details = FALSE)

arguments:

-fit: Model to fit. Need to use `lm()`before to run `ols_stepwise()-pent: Threshold of the p-value used to enter a variable into the stepwise model. By default, 0.1-prem: Threshold of the p-value used to exclude a variable into the stepwise model. By default, 0.3-details: Print the details of each step

Πριν από αυτό, θα σας δείξουμε τα βήματα του αλγορίθμου. Ακολουθεί ένας πίνακας με τις εξαρτημένες και ανεξάρτητες μεταβλητές:

Εξαρτημένη μεταβλητή

Ανεξάρτητες μεταβλητές

σ.τ.

διανομή

ιπποδύναμη

drat

β

qsec

Αρχή

Κατ 'αρχάς, ο αλγόριθμος ξεκινά τρέχοντας το μοντέλο σε κάθε ανεξάρτητη μεταβλητή ξεχωριστά. Ο πίνακας δείχνει την τιμή p για κάθε μοντέλο.

## [[1]]## (Intercept) disp## 3.576586e-21 9.380327e-10#### [[2]]## (Intercept) hp## 6.642736e-18 1.787835e-07#### [[3]]## (Intercept) drat## 0.1796390847 0.0000177624#### [[4]]## (Intercept) wt## 8.241799e-19 1.293959e-10#### [[5]## (Intercept) qsec## 0.61385436 0.01708199

Για να μπείτε στο μοντέλο, ο αλγόριθμος διατηρεί τη μεταβλητή με τη χαμηλότερη τιμή p. Από την παραπάνω έξοδο, είναι wt

Βήμα 1

Στο πρώτο βήμα, ο αλγόριθμος τρέχει mpg στο wt και οι άλλες μεταβλητές ανεξάρτητα.

## [[1]]## (Intercept) wt disp## 4.910746e-16 7.430725e-03 6.361981e-02#### [[2]]## (Intercept) wt hp## 2.565459e-20 1.119647e-06 1.451229e-03#### [[3]]## (Intercept) wt drat## 2.737824e-04 1.589075e-06 3.308544e-01#### [[4]]## (Intercept) wt qsec## 7.650466e-04 2.518948e-11 1.499883e-03

Κάθε μεταβλητή είναι πιθανός υποψήφιος για είσοδο στο τελικό μοντέλο. Ωστόσο, ο αλγόριθμος διατηρεί μόνο τη μεταβλητή με την χαμηλότερη τιμή p. Αποδεικνύεται ότι το hp έχει slighlty χαμηλότερη τιμή p από το qsec. Επομένως, το hp μπαίνει στο τελικό μοντέλο

Βήμα 2

Ο αλγόριθμος επαναλαμβάνει το πρώτο βήμα αλλά αυτή τη φορά με δύο ανεξάρτητες μεταβλητές στο τελικό μοντέλο.

## [[1]]## (Intercept) wt hp disp## 1.161936e-16 1.330991e-03 1.097103e-02 9.285070e-01#### [[2]]## (Intercept) wt hp drat## 5.133678e-05 3.642961e-04 1.178415e-03 1.987554e-01#### [[3]]## (Intercept) wt hp qsec## 2.784556e-03 3.217222e-06 2.441762e-01 2.546284e-01

Καμία από τις μεταβλητές που εισήλθαν στο τελικό μοντέλο δεν έχει τιμή p αρκετά χαμηλή. Ο αλγόριθμος σταματά εδώ. έχουμε το τελικό μοντέλο:

#### Call:## lm(formula = mpg ~ wt + hp, data = df)#### Residuals:## Min 1Q Median 3Q Max## -3.941 -1.600 -0.182 1.050 5.854#### Coefficients:## Estimate Std. Error t value Pr(>|t|)## (Intercept) 37.22727 1.59879 23.285 < 2e-16 ***## wt -3.87783 0.63273 -6.129 1.12e-06 ***## hp -0.03177 0.00903 -3.519 0.00145 **## ---## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1#### Residual standard error: 2.593 on 29 degrees of freedom## Multiple R-squared: 0.8268, Adjusted R-squared: 0.8148## F-statistic: 69.21 on 2 and 29 DF, p-value: 9.109e-12 

Μπορείτε να χρησιμοποιήσετε τη συνάρτηση ols_stepwise () για να συγκρίνετε τα αποτελέσματα.

stp_s <-ols_stepwise(fit, details=TRUE)

Παραγωγή:

Ο αλγόριθμος βρήκε μια λύση μετά από 2 βήματα και επέστρεψε την ίδια έξοδο όπως είχαμε πριν.

Στο τέλος, μπορείτε να πείτε ότι τα μοντέλα εξηγούνται από δύο μεταβλητές και μια αναχαίτιση. Το μίλι ανά γαλόνι συσχετίζεται αρνητικά με την ακαθάριστη ιπποδύναμη και το βάρος

## You are selecting variables based on p value… ## 1 variable(s) added… .## Variable Selection Procedure## Dependent Variable: mpg#### Stepwise Selection: Step 1#### Variable wt Entered#### Model Summary## --------------------------------------------------------------## R 0.868 RMSE 3.046## R-Squared 0.753 Coef. Var 15.161## Adj. R-Squared 0.745 MSE 9.277## Pred R-Squared 0.709 MAE 2.341## --------------------------------------------------------------## RMSE: Root Mean Square Error## MSE: Mean Square Error## MAE: Mean Absolute Error## ANOVA## --------------------------------------------------------------------## Sum of## Squares DF Mean Square F Sig.## --------------------------------------------------------------------## Regression 847.725 1 847.725 91.375 0.0000## Residual 278.322 30 9.277## Total 1126.047 31## --------------------------------------------------------------------#### Parameter Estimates## ----------------------------------------------------------------------------------------## model Beta Std. Error Std. Beta t Sig lower upper## ----------------------------------------------------------------------------------------## (Intercept) 37.285 1.878 19.858 0.000 33.450 41.120## wt -5.344 0.559 -0.868 -9.559 0.000 -6.486 -4.203## ----------------------------------------------------------------------------------------## 1 variable(s) added… ## Stepwise Selection: Step 2#### Variable hp Entered#### Model Summary## --------------------------------------------------------------## R 0.909 RMSE 2.593## R-Squared 0.827 Coef. Var 12.909## Adj. R-Squared 0.815 MSE 6.726## Pred R-Squared 0.781 MAE 1.901## --------------------------------------------------------------## RMSE: Root Mean Square Error## MSE: Mean Square Error## MAE: Mean Absolute Error## ANOVA## --------------------------------------------------------------------## Sum of## Squares DF Mean Square F Sig.## --------------------------------------------------------------------## Regression 930.999 2 465.500 69.211 0.0000## Residual 195.048 29 6.726## Total 1126.047 31## --------------------------------------------------------------------#### Parameter Estimates## ----------------------------------------------------------------------------------------## model Beta Std. Error Std. Beta t Sig lower upper## ----------------------------------------------------------------------------------------## (Intercept) 37.227 1.599 23.285 0.000 33.957 40.497## wt -3.878 0.633 -0.630 -6.129 0.000 -5.172 -2.584## hp -0.032 0.009 -0.361 -3.519 0.001 -0.050 -0.013## ----------------------------------------------------------------------------------------## No more variables to be added or removed.

Μηχανική εκμάθηση

Η μηχανική μάθηση γίνεται ευρέως διαδεδομένη στους επιστήμονες δεδομένων και αναπτύσσεται σε εκατοντάδες προϊόντα που χρησιμοποιείτε καθημερινά. Μία από τις πρώτες εφαρμογές ML ήταν το φίλτρο spam .

Ακολουθούν άλλες εφαρμογές της Μηχανικής Μάθησης-

  • Αναγνώριση ανεπιθύμητων ανεπιθύμητων μηνυμάτων στο email
  • Τμηματοποίηση της συμπεριφοράς των πελατών για στοχευμένη διαφήμιση
  • Μείωση δόλιων συναλλαγών με πιστωτική κάρτα
  • Βελτιστοποίηση της ενεργειακής χρήσης στο σπίτι και στο κτίριο γραφείων
  • Αναγνώριση προσώπου

Εποπτευόμενη μάθηση

Στην εποπτευόμενη μάθηση , τα δεδομένα εκπαίδευσης που τροφοδοτείτε στον αλγόριθμο περιλαμβάνουν μια ετικέτα.

Η ταξινόμηση είναι ίσως η πιο χρησιμοποιούμενη τεχνική εποπτευόμενης μάθησης. Ένα από τα πρώτα καθήκοντα ταξινόμησης που αντιμετώπισαν οι ερευνητές ήταν το φίλτρο spam. Ο στόχος της μάθησης είναι να προβλέψει εάν ένα email ταξινομείται ως spam ή ham (καλό email). Το μηχάνημα, μετά το βήμα εκπαίδευσης, μπορεί να εντοπίσει την τάξη του email.

Οι παλινδρομήσεις χρησιμοποιούνται συνήθως στο πεδίο της μηχανικής μάθησης για την πρόβλεψη της συνεχούς αξίας. Η εργασία παλινδρόμησης μπορεί να προβλέψει την τιμή μιας εξαρτημένης μεταβλητής με βάση ένα σύνολο ανεξάρτητων μεταβλητών (που ονομάζονται επίσης προβλέψεις ή παλινδρόμηση). Για παράδειγμα, οι γραμμικές παλινδρομήσεις μπορούν να προβλέψουν μια τιμή μετοχής, πρόγνωση καιρού, πωλήσεις και ούτω καθεξής.

Εδώ είναι η λίστα ορισμένων βασικών αλγορίθμων εποπτευόμενης μάθησης.

  • Γραμμικής παλινδρόμησης
  • Λογιστική παλινδρόμηση
  • Κοντινότεροι γείτονες
  • Υποστήριξη διανυσματικής μηχανής (SVM)
  • Δέντρα απόφασης και τυχαίο δάσος
  • Νευρωνικά δίκτυα

Μη επιτηρούμενη μάθηση

Στη μη εποπτευόμενη μάθηση , τα δεδομένα εκπαίδευσης δεν φέρουν ετικέτα. Το σύστημα προσπαθεί να μάθει χωρίς αναφορά. Ακολουθεί μια λίστα με αλγορίθμους μάθησης χωρίς επίβλεψη.

  • Κ-μέση
  • Ιεραρχική ανάλυση συμπλέγματος
  • Μεγιστοποίηση προσδοκίας
  • Οπτικοποίηση και μείωση διαστάσεων
  • Ανάλυση κύριων συστατικών
  • Πυρήνας PCA
  • Τοπική-γραμμική ενσωμάτωση

Περίληψη

Η συνηθισμένη ελάχιστη παλινδρόμηση μπορεί να συνοψιστεί στον παρακάτω πίνακα:

Βιβλιοθήκη

Σκοπός

Λειτουργία

Επιχειρήματα

βάση

Υπολογίστε μια γραμμική παλινδρόμηση

lm ()

τύπος, δεδομένα

βάση

Συνοψίστε το μοντέλο

συνοψίζω()

κατάλληλος

βάση

Συντελεστές εξόδου

lm () συντελεστής $

βάση

Εκχύλιση υπολειμμάτων

lm () $ υπολείμματα

βάση

Εφαρμοσμένη τιμή ακριβείας

lm () $ προσαρμοσμένες τιμές

olsrr

Εκτελέστε σταδιακή παλινδρόμηση

ols_stepwise ()

εφαρμογή, pent = 0,1, prem = 0,3, λεπτομέρειες = FALSE

Σημείωση : Θυμηθείτε να μεταμορφώσετε την κατηγορηματική μεταβλητή σε συντελεστή πριν να ταιριάζει στο μοντέλο.