R Stapsgewijze en meervoudige lineaire regressie [stap-voor-stap voorbeeld]
Eenvoudige lineaire regressie in R
Lineaire regressie beantwoordt een eenvoudige vraag: kunt u een exacte relatie meten tussen één doelvariabele en een reeks voorspellers?
Het eenvoudigste probabilistische model is het lineaire model:
WAAR
- y = Afhankelijke variabele
- x = Onafhankelijke variabele
- = willekeurige foutcomponent
- = onderscheppen
- = Coëfficiënt van x
Beschouw het volgende diagram:
De vergelijking is is het onderscheppingspunt. Als x gelijk is aan 0, zal y gelijk zijn aan het snijpunt, 4.77. is de helling van de lijn. Het vertelt in welke verhouding y varieert als x varieert.
Om de optimale waarden van te schatten en , gebruik je een methode genaamd Gewone kleinste vierkanten (OLS). Deze methode probeert de parameters te vinden die de som van de kwadratische fouten minimaliseren, dat wil zeggen de verticale afstand tussen de voorspelde y-waarden en de werkelijke y-waarden. Het verschil staat bekend als de fout term.
Voordat u het model schat, kunt u bepalen of een lineair verband tussen y en x plausibel is door een spreidingsdiagram te tekenen.
spreidingsdiagram
We zullen een zeer eenvoudige dataset gebruiken om het concept van eenvoudige lineaire regressie uit te leggen. We importeren de gemiddelde lengtes en gewichten voor Amerikaanse vrouwen. De dataset bevat 15 waarnemingen. U wilt meten of hoogten positief gecorreleerd zijn met gewichten.
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()
Output:
Het spreidingsdiagram suggereert een algemene tendens dat y toeneemt naarmate x toeneemt. In de volgende stap meet u met hoeveel de stijgingen voor elke extra .
Kleinste kwadraten schattingen
In een eenvoudige OLS-regressie wordt de berekening van en is eenvoudig. Het is niet de bedoeling om de afleiding in deze tutorial te laten zien. Je schrijft alleen de formule.
U wilt schatten:
Het doel van de OLS-regressie is om de volgende vergelijking te minimaliseren:
WAAR
is de werkelijke waarde en is de voorspelde waarde.
De oplossing voor is
Merk op dat betekent de gemiddelde waarde van x
De oplossing voor is
In R kunt u de functies cov() en var() gebruiken om te schatten en je kunt de functie mean() gebruiken om te schatten
beta <- cov(df$height, df$weight) / var (df$height) beta
Output:
##[1] 3.45
alpha <- mean(df$weight) - beta * mean(df$height) alpha
Output:
## [1] -87.51667
De bètacoëfficiënt houdt in dat voor elke extra lengte het gewicht met 3.45 toeneemt.
Het handmatig schatten van eenvoudige lineaire vergelijkingen is niet ideaal. R biedt een geschikte functie om deze parameters te schatten. Je zult deze functie binnenkort zien. Daarvoor zullen we introduceren hoe u met de hand een eenvoudig lineair regressiemodel kunt berekenen. In jouw reis als datawetenschapper zul je nauwelijks of nooit een eenvoudig lineair model schatten. In de meeste situaties worden regressietaken op veel schatters uitgevoerd.
Meervoudige lineaire regressie in R
Meer praktische toepassingen van regressieanalyse maken gebruik van modellen die complexer zijn dan het eenvoudige rechtelijnmodel. Het probabilistische model dat meer dan één onafhankelijke variabele omvat, wordt meerdere regressiemodellen. De algemene vorm van dit model is:
In matrixnotatie kunt u het model herschrijven:
De afhankelijke variabele y is nu een functie van k onafhankelijke variabelen. De waarde van de coëfficiënt bepaalt de bijdrage van de onafhankelijke variabele en .
We introduceren kort de veronderstelling die we hebben gemaakt over de willekeurige fout van de OLS:
- Gemiddelde gelijk aan 0
- Variantie gelijk aan
- Normale verdeling
- Willekeurige fouten zijn onafhankelijk (in probabilistische zin)
Je moet het oplossen , de vector van regressiecoëfficiënten die de som van de kwadratische fouten tussen de voorspelde en werkelijke y-waarden minimaliseren.
De oplossing in gesloten vorm is:
met:
- geeft de transponeren van de matrix X
- geeft de inverteerbare matrix
We gebruiken de mtcars-dataset. U bent al bekend met de dataset. Ons doel is om de mijl per gallon te voorspellen op basis van een reeks functies.
Continue variabelen in R
Voor nu gebruikt u alleen de continue variabelen en zet u categorische kenmerken opzij. De variabele am is een binaire variabele die de waarde 1 aanneemt als de transmissie handmatig is en 0 voor automatische auto's; vs is ook een binaire variabele.
library(dplyr) df <- mtcars % > % select(-c(am, vs, cyl, gear, carb)) glimpse(df)
Output:
## 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...
U kunt de functie lm() gebruiken om de parameters te berekenen. De basissyntaxis van deze functie is:
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
Onthoud dat een vergelijking de volgende vorm heeft
en R
- Het symbool = wordt vervangen door ~
- Elke x wordt vervangen door de naam van de variabele
- Als je de constante wilt laten vallen, voeg dan -1 toe aan het einde van de formule
Voorbeeld:
U wilt het gewicht van personen schatten op basis van hun lengte en inkomen. De vergelijking is
De vergelijking in R wordt als volgt geschreven:
y ~ X1+ X2+…+Xn # Met onderschepping
Dus voor ons voorbeeld:
- Weeg ~ lengte + omzet
Uw doel is om de mijl per gallon te schatten op basis van een reeks variabelen. De te schatten vergelijking is:
U schat uw eerste lineaire regressie en slaat het resultaat op in het fit-object.
model <- mpg~.disp + hp + drat + wt fit <- lm(model, df) fit
Code Uitleg
- model <- mpg ~. disp + hp + drat+ wt: Bewaar het model om te schatten
- lm(model, df): Schat het model met het dataframe 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
De uitvoer geeft niet genoeg informatie over de kwaliteit van de fit. U kunt meer details zoals de significantie van de coëfficiënten, de mate van vrijheid en de vorm van de residuen benaderen met de summary()-functie.
summary(fit)
Output:
## 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
Gevolgtrekking uit de bovenstaande tabeluitvoer
- Uit bovenstaande tabel blijkt dat er een sterke negatieve relatie bestaat tussen gewicht en kilometerstand en een positieve relatie met drat.
- Alleen de variabele wt heeft een statistische impact op mpg. Onthoud dat we, om een hypothese in de statistiek te testen, het volgende gebruiken:
- H0: Geen statistische impact
- H3: De voorspeller heeft een betekenisvolle impact op y
- Als de p-waarde lager is dan 0.05, geeft dit aan dat de variabele statistisch significant is
- Aangepast R-kwadraat: Variantie verklaard door het model. In uw model verklaarde het model 82 procent van de variantie van y. R kwadraat ligt altijd tussen 0 en 1. Hoe hoger hoe beter
Je kunt het ANOVA Test om het effect van elke eigenschap op de variantie te schatten met de anova()-functie.
anova(fit)
Output:
## 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
Een meer conventionele manier om de prestaties van het model te schatten, is door het residu weer te geven tegen verschillende metingen.
U kunt de functie plot() gebruiken om vier grafieken weer te geven:
– Residuen versus aangepaste waarden
– Normale QQ-plot: theoretisch kwartiel versus gestandaardiseerde residuen
– Schaallocatie: aangepaste waarden versus vierkantswortels van de gestandaardiseerde residuen
– Residuen versus hefboomwerking: hefboomwerking versus gestandaardiseerde residuen
U voegt de code par(mfrow=c(2,2)) toe vóór plot(fit). Als u deze regel code niet toevoegt, vraagt R u om op de opdracht Enter te drukken om de volgende grafiek weer te geven.
par(mfrow=(2,2))
Code Uitleg
- (mfrow=c(2,2)): retourneert een venster met de vier grafieken naast elkaar.
- De eerste 2 tellen het aantal rijen op
- De tweede 2 telt het aantal kolommen op.
- Als je schrijft (mfrow=c(3,2)): dan creëer je een venster met 3 rijen en 2 kolommen
plot(fit)
Output:
De formule lm() retourneert een lijst met veel nuttige informatie. U kunt ze openen met het fit-object dat u hebt gemaakt, gevolgd door het $-teken en de informatie die u wilt extraheren.
– coëfficiënten: `fit$coëfficiënten`
– residuen: `fit$residuals`
– aangepaste waarde: `fit$fitted.values`
Factorenregressie in R
In de laatste modelschatting regressie je mpg alleen op continue variabelen. Het is eenvoudig om factorvariabelen aan het model toe te voegen. U voegt de variabele am toe aan uw model. Het is belangrijk om er zeker van te zijn dat de variabele een factorniveau is en niet continu.
df <- mtcars % > % mutate(cyl = factor(cyl), vs = factor(vs), am = factor(am), gear = factor(gear), carb = factor(carb)) summary(lm(model, df))
Output:
## ## 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 gebruikt het eerste factorniveau als basisgroep. Je moet de coëfficiënten van de andere groep vergelijken met de basisgroep.
Stapsgewijze lineaire regressie in R
Het laatste deel van deze tutorial gaat over de stapsgewijze regressie algoritme. Het doel van dit algoritme is om potentiële kandidaten toe te voegen en te verwijderen in de modellen en degenen te behouden die een significante impact hebben op de afhankelijke variabele. Dit algoritme is zinvol wanneer de dataset een grote lijst met voorspellers bevat. U hoeft de onafhankelijke variabelen niet handmatig toe te voegen en te verwijderen. De stapsgewijze regressie is gebouwd om de beste kandidaten te selecteren die passen bij het model.
Laten we in actie zien hoe het werkt. Je gebruikt de mtcars-dataset met de continue variabelen uitsluitend ter pedagogische illustratie. Voordat u met de analyse begint, is het goed om variaties tussen de gegevens vast te stellen met behulp van een correlatiematrix. De GGally-bibliotheek is een uitbreiding van ggplot2.
De bibliotheek bevat verschillende functies om samenvattende statistieken weer te geven, zoals correlatie en verdeling van alle variabelen in een matrix. We zullen de ggscatmat-functie gebruiken, maar u kunt verwijzen naar de vignet voor meer informatie over de GGally-bibliotheek.
De basissyntaxis voor ggscatmat() is:
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
U geeft de correlatie weer voor al uw variabelen en beslist welke de beste kandidaten zijn voor de eerste stap van de stapsgewijze regressie. Er zijn enkele sterke correlaties tussen uw variabelen en de afhankelijke variabele, mpg.
library(GGally) df <- mtcars % > % select(-c(am, vs, cyl, gear, carb)) ggscatmat(df, columns = 1: ncol(df))
Output:
Stapsgewijze regressie stap voor stap voorbeeld
Selectie van variabelen is een belangrijk onderdeel om een model te fitten. De stapsgewijze regressie zal het zoekproces automatisch uitvoeren. Om te schatten hoeveel mogelijke keuzes er in de dataset zijn, berekent u waarbij k het aantal voorspellers is. Het aantal mogelijkheden wordt groter met het aantal onafhankelijke variabelen. Daarom moet u automatisch zoeken.
U moet het olsrr-pakket van CRAN installeren. Het pakket is nog niet beschikbaar in Anaconda. Daarom installeert u het rechtstreeks vanaf de opdrachtregel:
install.packages("olsrr")
U kunt alle subsets van mogelijkheden plotten met de fitcriteria (dwz R-kwadraat, aangepast R-kwadraat, Bayesiaanse criteria). Het model met de laagste AIC-criteria zal het definitieve model zijn.
library(olsrr) model <- mpg~. fit <- lm(model, df) test <- ols_all_subset(fit) plot(test)
Code Uitleg
- mpg ~.: Construeer het model om te schatten
- lm(model, df): Voer het OLS-model uit
- ols_all_subset(fit): Construeer de grafieken met de relevante statistische informatie
- plot(test): Teken de grafieken
Output:
Lineaire regressiemodellen gebruiken de t-toets om de statistische impact van een onafhankelijke variabele op de afhankelijke variabele te schatten. Onderzoekers stellen de maximale drempelwaarde in op 10 procent, waarbij lagere waarden een sterkere statistische link aangeven. De strategie van de stapsgewijze regressie is opgebouwd rond deze test om potentiële kandidaten toe te voegen en te verwijderen. Het algoritme werkt als volgt:
- Stap 1: Voer elke voorspeller afzonderlijk uit op y. Namelijk: regressie x_1 op y, x_2 op y naar x_n. Bewaar de p-waarde en houd de regressor met een p-waarde lager dan een gedefinieerde drempel (standaard 0.1). De voorspellers met een significantie lager dan de drempelwaarde worden aan het definitieve model toegevoegd. Als geen enkele variabele een p-waarde heeft die lager is dan de invoerdrempel, stopt het algoritme en hebt u uw uiteindelijke model met alleen een constante.
- Stap 2: Gebruik de predictor met de laagste p-waarde en voeg afzonderlijk één variabele toe. U regresseert een constante, de beste predictor van stap één en een derde variabele. U voegt aan het stapsgewijze model de nieuwe predictors toe met een waarde lager dan de instapdrempel. Als geen enkele variabele een p-waarde lager dan 0.1 heeft, stopt het algoritme en hebt u uw uiteindelijke model met slechts één predictor. U regresseert het stapsgewijze model om de significantie van de beste predictors van stap 1 te controleren. Als deze hoger is dan de verwijderingsdrempel, houdt u deze in het stapsgewijze model. Anders sluit u deze uit.
- Stap 3: U repliceert stap 2 op het nieuwe beste stapsgewijze model. Het algoritme voegt predictoren toe aan het stapsgewijze model op basis van de invoerwaarden en sluit predictoren uit van het stapsgewijze model als deze niet voldoet aan de uitsluitingsdrempel.
- Het algoritme gaat door totdat er geen variabele meer kan worden toegevoegd of uitgesloten.
U kunt het algoritme uitvoeren met de functie ols_stepwise() uit het olsrr-pakket.
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
Daarvoor laten we u de stappen van het algoritme zien. Hieronder staat een tabel met de afhankelijke en onafhankelijke variabelen:
Afhankelijke variabele | Onafhankelijke variabelen |
---|---|
mpg | disp |
hp | |
drassssssssssssssssssssssssssssss | |
wt | |
qsec |
Start
Om te beginnen begint het algoritme met het afzonderlijk uitvoeren van het model op elke onafhankelijke variabele. De tabel toont de p-waarde voor elk model.
## [[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
Om het model binnen te gaan, behoudt het algoritme de variabele met de laagste p-waarde. Uit de bovenstaande uitvoer blijkt dat het gewicht is
Stap 1
In de eerste stap voert het algoritme mpg onafhankelijk uit op wt en de andere variabelen.
## [[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
Elke variabele is een potentiële kandidaat om in het uiteindelijke model te komen. Het algoritme behoudt echter alleen de variabele met de lagere p-waarde. Het blijkt dat hp een iets lagere p-waarde heeft dan qsec. Daarom komt HP in het definitieve model
Stap 2
Het algoritme herhaalt de eerste stap, maar deze keer met twee onafhankelijke variabelen in het uiteindelijke model.
## [[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
Geen van de variabelen die in het uiteindelijke model zijn opgenomen, heeft een p-waarde die voldoende laag is. Het algoritme stopt hier; we hebben het definitieve model:
## ## 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
U kunt de functie ols_stepwise() gebruiken om de resultaten te vergelijken.
stp_s <-ols_stepwise(fit, details=TRUE)
Output:
Het algoritme vindt na twee stappen een oplossing en retourneert dezelfde uitvoer als voorheen.
Uiteindelijk kun je zeggen dat de modellen worden verklaard door twee variabelen en een snijpunt. Mijl per gallon is negatief gecorreleerd met bruto paardenkracht en gewicht
## 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.
Machine leren
Machine leren wordt steeds populairder onder datawetenschappers en wordt ingezet in honderden producten die u dagelijks gebruikt. Een van de eerste ML-applicaties was spamfilter.
Hieronder volgen andere toepassingen van Machine Learning:
- Identificatie van ongewenste spamberichten in e-mail
- Segmentatie van klantgedrag voor gerichte reclame
- Vermindering van frauduleuze creditcardtransacties
- Optimalisatie van het energieverbruik in woning- en kantoorgebouwen
- Gezichtsherkenning
Leren onder toezicht
In Leren onder toezicht, bevatten de trainingsgegevens die u aan het algoritme invoert een label.
Classificatie is waarschijnlijk de meest gebruikte supervised learning-techniek. Een van de eerste classificatietaken die onderzoekers aanpakten, was het spamfilter. Het doel van het leren is om te voorspellen of een e-mail wordt geclassificeerd als spam of ham (goede e-mail). De machine kan na de trainingsstap de klasse van de e-mail detecteren.
regressies worden vaak gebruikt op het gebied van machine learning om continue waarde te voorspellen. Regressietaak kan de waarde van a voorspellen afhankelijke variabele gebaseerd op een set van onafhankelijke variabelen (ook wel voorspellers of regressoren genoemd). Lineaire regressies kunnen bijvoorbeeld een aandelenkoers, weersvoorspelling, verkoop enzovoort voorspellen.
Hieronder vindt u een lijst met enkele fundamentele algoritmen voor begeleid leren.
- Lineaire regressie
- Logistische regressie
- Dichtstbijzijnde buren
- Ondersteuning Vector Machine (SVM)
- Beslisbomen en Random Forest
- Neurale netwerken
Niet-gecontroleerd leren
In Niet-gecontroleerd leren, de trainingsgegevens zijn niet gelabeld. Het systeem probeert te leren zonder referentie. Hieronder staat een lijst met niet-gesuperviseerde leeralgoritmen.
- K-gemiddeld
- hiërarchische Cluster Analyse
- Verwachtingsmaximalisatie
- Visualisatie en dimensionaliteitsreductie
- Hoofdcomponentenanalyse
- Kernel-PCA
- Lokaal-lineaire inbedding
Samenvatting
- Lineaire regressie beantwoordt een eenvoudige vraag: kunt u een exacte relatie meten tussen één doelvariabele en een reeks voorspellers?
- Met de gewone kleinste kwadratenmethode wordt geprobeerd de parameters te vinden die de som van de gekwadrateerde fouten minimaliseren, dat wil zeggen de verticale afstand tussen de voorspelde y-waarden en de werkelijke y-waarden.
- Het probabilistische model dat meer dan één onafhankelijke variabele omvat, wordt meerdere regressiemodellen genoemd.
- Het doel van het algoritme voor stapsgewijze lineaire regressie is om potentiële kandidaten aan de modellen toe te voegen of te verwijderen, en degenen te behouden die een significante impact hebben op de afhankelijke variabele.
- Variabelenselectie is een belangrijk onderdeel om een model te fitten. De stapsgewijze regressie voert het zoekproces automatisch uit.
De gewone kleinste-kwadraten-regressie kan in de onderstaande tabel worden samengevat:
Bibliotheek | Objectief | Functie | argumenten |
---|---|---|---|
baseren | Bereken een lineaire regressie | lm() | formule, gegevens |
baseren | Model samenvatten | samenvatten() | geschikt |
baseren | Haal coëfficiënten eruit | lm()$coëfficiënt | |
baseren | Residuen eruit halen | lm()$resten | |
baseren | Extraheer de ingebouwde waarde | lm()$fitted.waarden | |
olsrr | Stapsgewijze regressie uitvoeren | ols_stapsgewijs() | fit, pent = 0.1, prem = 0.3, details = ONWAAR |
Note: Vergeet niet om de categorische variabele in factor te transformeren voordat deze in het model past.