R Βηματική και πολλαπλή γραμμική παλινδρόμηση [Παράδειγμα βήμα προς βήμα]
Απλή γραμμική παλινδρόμηση στο R
Η γραμμική παλινδρόμηση απαντά σε μια απλή ερώτηση: Μπορείτε να μετρήσετε μια ακριβή σχέση μεταξύ μιας μεταβλητής στόχου και ενός συνόλου προγνωστικών;
Το απλούστερο πιθανολογικό μοντέλο είναι το ευθύγραμμο μοντέλο:
όπου
- y = Εξαρτημένη μεταβλητή
- x = Ανεξάρτητη μεταβλητή
-
= συστατικό τυχαίου σφάλματος
-
= αναχαιτίζω
-
= Συντελεστής x
Εξετάστε την ακόλουθη πλοκή:
Η εξίσωση είναι είναι η αναχαίτιση. Αν το x ισούται με 0, το y θα είναι ίσο με την τομή, 4.77. είναι η κλίση της γραμμής. Λέει σε ποια αναλογία μεταβάλλεται το y όταν το x μεταβάλλεται.
Για να υπολογίσετε τις βέλτιστες τιμές του και
, χρησιμοποιείτε μια μέθοδο που ονομάζεται Συνήθη ελάχιστα τετράγωνα (OLS). Αυτή η μέθοδος προσπαθεί να βρει τις παραμέτρους που ελαχιστοποιούν το άθροισμα των τετραγωνικών σφαλμάτων, δηλαδή την κατακόρυφη απόσταση μεταξύ των προβλεπόμενων τιμών y και των πραγματικών τιμών y. Η διαφορά είναι γνωστή ως το όρος σφάλματος.
Πριν υπολογίσετε το μοντέλο, μπορείτε να προσδιορίσετε εάν μια γραμμική σχέση μεταξύ y και x είναι εύλογη σχεδιάζοντας ένα διάγραμμα διασποράς.
Διάγραμμα διασποράς
Θα χρησιμοποιήσουμε ένα πολύ απλό σύνολο δεδομένων για να εξηγήσουμε την έννοια της απλής γραμμικής παλινδρόμησης. Θα εισαγάγουμε τα μέσα ύψη και βάρη για Αμερικανίδες. Το σύνολο δεδομένων περιέχει 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()
Παραγωγή:
Το διάγραμμα διασποράς προτείνει μια γενική τάση για το y να αυξάνεται καθώς το x αυξάνεται. Στο επόμενο βήμα, θα μετρήσετε με πόσες αυξήσεις για κάθε επιπλέον .
Εκτιμήσεις ελάχιστων τετραγώνων
Σε μια απλή παλινδρόμηση OLS, ο υπολογισμός του και
είναι ευθύς. Ο στόχος δεν είναι να εμφανιστεί η παραγωγή σε αυτό το σεμινάριο. Θα γράψετε μόνο τον τύπο.
Θέλετε να υπολογίσετε:
Ο στόχος της παλινδρόμησης OLS είναι να ελαχιστοποιήσει την ακόλουθη εξίσωση:
όπου
είναι η πραγματική τιμή και
είναι η προβλεπόμενη τιμή.
Η λύση για is
Σημειώστε ότι σημαίνει τη μέση τιμή του x
Η λύση για is
Στο R, μπορείτε να χρησιμοποιήσετε τη συνάρτηση cov() και var() για εκτίμηση και μπορείτε να χρησιμοποιήσετε τη συνάρτηση mean() για να εκτιμήσετε
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
Ο συντελεστής βήτα υποδηλώνει ότι για κάθε επιπλέον ύψος, το βάρος αυξάνεται κατά 3.45.
Η χειροκίνητη εκτίμηση της απλής γραμμικής εξίσωσης δεν είναι ιδανική. R παρέχει μια κατάλληλη συνάρτηση για την εκτίμηση αυτών των παραμέτρων. Θα δείτε αυτή τη λειτουργία σύντομα. Πριν από αυτό, θα εισαγάγουμε τον τρόπο υπολογισμού με το χέρι ενός απλού μοντέλου γραμμικής παλινδρόμησης. Στο ταξίδι του επιστήμονα δεδομένων, μετά βίας ή ποτέ δεν θα εκτιμήσετε ένα απλό γραμμικό μοντέλο. Στις περισσότερες περιπτώσεις, οι εργασίες παλινδρόμησης εκτελούνται σε πολλούς εκτιμητές.
Πολλαπλή Γραμμική Παλινδρόμηση στο R
Πιο πρακτικές εφαρμογές της ανάλυσης παλινδρόμησης χρησιμοποιούν μοντέλα που είναι πιο περίπλοκα από το απλό μοντέλο της ευθείας γραμμής. Το πιθανοτικό μοντέλο που περιλαμβάνει περισσότερες από μία ανεξάρτητες μεταβλητές ονομάζεται πολλαπλά μοντέλα παλινδρόμησης. Η γενική μορφή αυτού του μοντέλου είναι:
Στη σημειογραφία μήτρας, μπορείτε να ξαναγράψετε το μοντέλο:
Η εξαρτημένη μεταβλητή y είναι πλέον συνάρτηση k ανεξάρτητων μεταβλητών. Η τιμή του συντελεστή καθορίζει τη συνεισφορά της ανεξάρτητης μεταβλητής
και
.
Εισάγουμε εν συντομία την υπόθεση που κάναμε για το τυχαίο σφάλμα του OLS:
- Μέση τιμή ίση με 0
- Διακύμανση ίση με
- Κανονική κατανομή
- Τα τυχαία σφάλματα είναι ανεξάρτητα (με πιθανολογική έννοια)
Πρέπει να λύσετε , το διάνυσμα των συντελεστών παλινδρόμησης που ελαχιστοποιούν το άθροισμα των τετραγωνικών σφαλμάτων μεταξύ της προβλεπόμενης και της πραγματικής τιμής y.
Η λύση κλειστής μορφής είναι:
με:
- δείχνει το μεταθέτω του πίνακα X
δείχνει το αντιστρέψιμη μήτρα
Χρησιμοποιούμε το σύνολο δεδομένων mtcars. Είστε ήδη εξοικειωμένοι με το σύνολο δεδομένων. Στόχος μας είναι να προβλέψουμε το μίλι ανά γαλόνι σε ένα σύνολο χαρακτηριστικών.
Συνεχείς μεταβλητές στο R
Προς το παρόν, θα χρησιμοποιήσετε μόνο τις συνεχείς μεταβλητές και θα αφήσετε στην άκρη τα κατηγορηματικά χαρακτηριστικά. Η μεταβλητή am είναι μια δυαδική μεταβλητή που παίρνει την τιμή 1 εάν το κιβώτιο ταχυτήτων είναι χειροκίνητο και 0 για αυτόματα αυτοκίνητα. Το vs είναι επίσης μια δυαδική μεταβλητή.
library(dplyr) df <- mtcars % > % select(-c(am, vs, cyl, gear, carb)) glimpse(df)
Παραγωγή:
## Observations: 32 ## Variables: 6 ## $ mpg <dbl> 21.0, 21.0, 22.8, 21.4, 18.7, 18.1, 14.3, 24.4, 22.8, 19.... ## $ disp <dbl> 160.0, 160.0, 108.0, 258.0, 360.0, 225.0, 360.0, 146.7, 1... ## $ hp <dbl> 110, 110, 93, 110, 175, 105, 245, 62, 95, 123, 123, 180, ... ## $ drat <dbl> 3.90, 3.90, 3.85, 3.08, 3.15, 2.76, 3.21, 3.69, 3.92, 3.9... ## $ wt <dbl> 2.620, 2.875, 2.320, 3.215, 3.440, 3.460, 3.570, 3.190, 3... ## $ qsec <dbl> 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
Θυμηθείτε ότι μια εξίσωση έχει την ακόλουθη μορφή
στο Ρ
- Το σύμβολο = αντικαθίσταται από ~
- Κάθε x αντικαθίσταται από το όνομα της μεταβλητής
- Εάν θέλετε να αφαιρέσετε τη σταθερά, προσθέστε -1 στο τέλος του τύπου
Παράδειγμα:
Θέλετε να υπολογίσετε το βάρος των ατόμων με βάση το ύψος και τα έσοδά τους. Η εξίσωση είναι
Η εξίσωση στο R γράφεται ως εξής:
y ~ X1+ X2+…+Xn # Με διακοπή
Έτσι για το παράδειγμά μας:
- Ζυγίζω ~ ύψος + έσοδα
Ο στόχος σας είναι να υπολογίσετε το μίλι ανά γαλόνι με βάση ένα σύνολο μεταβλητών. Η εξίσωση προς εκτίμηση είναι:
Θα εκτιμήσετε την πρώτη σας γραμμική παλινδρόμηση και θα αποθηκεύσετε το αποτέλεσμα στο κατάλληλο αντικείμενο.
model <- mpg~.disp + hp + drat + wt fit <- 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().
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)) πριν από το plot(fit). Εάν δεν προσθέσετε αυτήν τη γραμμή κώδικα, το R σας ζητά να πατήσετε την εντολή enter για να εμφανιστεί το επόμενο γράφημα.
par(mfrow=(2,2))
Επεξήγηση κώδικα
- (mfrow=c(2,2)): επιστρέψτε ένα παράθυρο με τα τέσσερα γραφήματα δίπλα-δίπλα.
- Οι πρώτες 2 προσθέτουν τον αριθμό των σειρών
- Το δεύτερο 2 προσθέτει τον αριθμό των στηλών.
- Εάν γράψετε (mfrow=c(3,2)): θα δημιουργήσετε ένα παράθυρο 3 σειρών 2 στηλών
plot(fit)
Παραγωγή:
Ο τύπος lm() επιστρέφει μια λίστα που περιέχει πολλές χρήσιμες πληροφορίες. Μπορείτε να αποκτήσετε πρόσβαση σε αυτά με το κατάλληλο αντικείμενο που έχετε δημιουργήσει, ακολουθούμενο από το σύμβολο $ και τις πληροφορίες που θέλετε να εξαγάγετε.
– συντελεστές: «fit$coefficients».
– υπολείμματα: «fit$residuals».
– προσαρμοσμένη τιμή: «fit$fitted.values».
Παλινδρόμηση παραγόντων στο R
Στην τελευταία εκτίμηση μοντέλου, υποχωρείτε 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 χρησιμοποιεί το πρώτο επίπεδο παράγοντα ως βασική ομάδα. Πρέπει να συγκρίνετε τους συντελεστές της άλλης ομάδας με τη βασική ομάδα.
Βηματική Γραμμική Παλινδρόμηση στο 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): Κατασκευάστε τα γραφήματα με τα σχετικά στατιστικά στοιχεία
- πλοκή (δοκιμή): Σχεδιάστε τα γραφήματα
Παραγωγή:
Τα μοντέλα γραμμικής παλινδρόμησης χρησιμοποιούν το δοκιμή t για την εκτίμηση της στατιστικής επίδρασης μιας ανεξάρτητης μεταβλητής στην εξαρτημένη μεταβλητή. Οι ερευνητές έθεσαν το μέγιστο όριο στο 10 τοις εκατό, ενώ οι χαμηλότερες τιμές υποδηλώνουν ισχυρότερη στατιστική σύνδεση. Η στρατηγική της σταδιακής παλινδρόμησης κατασκευάζεται γύρω από αυτό το τεστ για την προσθήκη και την αφαίρεση πιθανών υποψηφίων. Ο αλγόριθμος λειτουργεί ως εξής:
- Βήμα 1: Αναδρομή κάθε προγνωστικού στο y ξεχωριστά. Δηλαδή, παλινδρομήστε το x_1 στο y, το x_2 στο y στο x_n. Αποθηκεύστε το p-value και διατηρήστε τον παλινδρομητή με τιμή 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
Πριν από αυτό, σας δείχνουμε τα βήματα του αλγορίθμου. Ακολουθεί ένας πίνακας με τις εξαρτημένες και ανεξάρτητες μεταβλητές:
Εξαρτημένη μεταβλητή | Ανεξάρτητες μεταβλητές |
---|---|
mpg | διανομή |
hp | |
αρουραίος | |
wt | |
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 έχει ελαφρώς χαμηλότερη τιμή 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 ήταν Φίλτρο ανεπιθύμητων.
Ακολουθούν άλλες εφαρμογές της Μηχανικής Μάθησης-
- Αναγνώριση ανεπιθύμητων ανεπιθύμητων μηνυμάτων σε email
- Τμηματοποίηση συμπεριφοράς πελατών για στοχευμένη διαφήμιση
- Μείωση των δόλιων συναλλαγών με πιστωτικές κάρτες
- Βελτιστοποίηση της χρήσης ενέργειας σε κτίρια σπιτιού και γραφείων
- Αναγνώριση προσώπου
Εποπτευόμενη μάθηση
In Εποπτευόμενη μάθηση, τα δεδομένα εκπαίδευσης που τροφοδοτείτε στον αλγόριθμο περιλαμβάνουν μια ετικέτα.
Ταξινόμηση είναι ίσως η πιο χρησιμοποιούμενη τεχνική εποπτευόμενης μάθησης. Ένα από τα πρώτα καθήκοντα ταξινόμησης που αντιμετώπισαν οι ερευνητές ήταν το φίλτρο ανεπιθύμητης αλληλογραφίας. Ο στόχος της μάθησης είναι να προβλέψει εάν ένα email ταξινομείται ως ανεπιθύμητο ή ραμ (καλό email). Το μηχάνημα, μετά το βήμα εκπαίδευσης, μπορεί να εντοπίσει την κατηγορία του email.
Υποχωρήσεις χρησιμοποιούνται συνήθως στο πεδίο μηχανικής εκμάθησης για την πρόβλεψη συνεχούς τιμής. Η εργασία παλινδρόμησης μπορεί να προβλέψει την τιμή του α εξαρτημένη μεταβλητή με βάση ένα σύνολο από ανεξάρτητες μεταβλητές (ονομάζονται επίσης προγνωστικοί παράγοντες ή οπισθοδρομικοί). Για παράδειγμα, οι γραμμικές παλινδρομήσεις μπορούν να προβλέψουν μια τιμή μετοχής, πρόβλεψη καιρού, πωλήσεις και ούτω καθεξής.
Ακολουθεί ο κατάλογος ορισμένων βασικών εποπτευόμενων αλγορίθμων μάθησης.
- Γραμμικής παλινδρόμησης
- Λογιστική παλινδρόμηση
- Κοντινότεροι γείτονες
- Μηχανή φορέα υποστήριξης (SVM)
- Δέντρα απόφασης και Τυχαίο Δάσος
- Νευρωνικά δίκτυα
Μη εποπτευόμενη μάθηση
In Μη εποπτευόμενη μάθηση, τα δεδομένα εκπαίδευσης δεν έχουν ετικέτα. Το σύστημα προσπαθεί να μάθει χωρίς αναφορά. Παρακάτω είναι μια λίστα αλγορίθμων μάθησης χωρίς επίβλεψη.
- Κ-μέσος
- Ιεραρχικός Cluster Ανάλυση
- Μεγιστοποίηση προσδοκιών
- Οπτικοποίηση και μείωση διαστάσεων
- Ανάλυση κύριων συστατικών
- PCA πυρήνα
- Τοπική-Γραμμική Ενσωμάτωση
Σύνοψη
- Η γραμμική παλινδρόμηση απαντά σε μια απλή ερώτηση: Μπορείτε να μετρήσετε μια ακριβή σχέση μεταξύ μιας μεταβλητής στόχου και ενός συνόλου προγνωστικών;
- Η συνηθισμένη μέθοδος ελαχίστων τετραγώνων προσπαθεί να βρει τις παραμέτρους που ελαχιστοποιούν το άθροισμα των τετραγωνικών σφαλμάτων, δηλαδή την κατακόρυφη απόσταση μεταξύ των προβλεπόμενων τιμών y και των πραγματικών τιμών y.
- Το πιθανοτικό μοντέλο που περιλαμβάνει περισσότερες από μία ανεξάρτητες μεταβλητές ονομάζεται μοντέλα πολλαπλής παλινδρόμησης.
- Ο σκοπός του αλγόριθμου Βηματικής Γραμμικής Παλινδρόμησης είναι να προσθέσει και να αφαιρέσει πιθανούς υποψηφίους στα μοντέλα και να διατηρήσει αυτούς που έχουν σημαντικό αντίκτυπο στην εξαρτημένη μεταβλητή.
- Η επιλογή μεταβλητών είναι ένα σημαντικό μέρος για την προσαρμογή ενός μοντέλου. Η σταδιακή παλινδρόμηση εκτελεί αυτόματα τη διαδικασία αναζήτησης.
Η συνηθισμένη παλινδρόμηση του ελάχιστου τετραγώνου μπορεί να συνοψιστεί στον παρακάτω πίνακα:
Βιβλιοθήκη | Σκοπός | Λειτουργία | Επιχειρήματα |
---|---|---|---|
βάση | Υπολογίστε μια γραμμική παλινδρόμηση | lm() | τύπος, δεδομένα |
βάση | Συνοψίστε το μοντέλο | συνοψίζω() | ταιριάζουν |
βάση | Απόσπασμα συντελεστών | lm()$συντελεστής | |
βάση | Εξαγωγή υπολειμμάτων | lm()$υπολείμματα | |
βάση | Απόσπασμα προσαρμοσμένης αξίας | lm()$fitted.values | |
olsrr | Εκτέλεση σταδιακής παλινδρόμησης | ols_stepwise() | fit, pent = 0.1, prem = 0.3, λεπτομέρειες = FALSE |
Σημείωση: Θυμηθείτε να μετατρέψετε την κατηγορική μεταβλητή σε παράγοντα πριν για να ταιριάζει στο μοντέλο.