Introduzione Completa alla Regressione Lineare in R

la regressione Lineare è utilizzato per stimare il valore di una variabile continua Y sulla base di uno o più input variabili predittive X. L’obiettivo è quello di stabilire una formula matematica tra la variabile di risposta (Y) e le variabili predittive (Xs). È possibile utilizzare questa formula per prevedere Y, quando sono noti solo i valori X.

Introduzione completa alla regressione lineare con R. (Foto di Stacy Wyss)Contenuti1. Introduzione alla regressione lineare
2., Esempio problema
3. Analisi grafica
— Utilizzo del grafico a dispersione per visualizzare la relazione
— Utilizzo del BoxPlot per verificare la presenza di valori anomali
– Utilizzo del grafico a densità per verificare se la variabile di risposta è vicina alla norma
4. Che cos’è l’analisi di correlazione?
5. Costruire il modello di regressione lineare
6. Diagnostica regressione linearer— – Utilizzo del valore P per verificare la significatività statisticar— – Qual è l’ipotesi Null e alternativa?r— – Che cos’è il valore t?
— Come calcolare i valori statistici t e P?
— R-Quadrato e R-quadrato aggiustato
— Errore standard e F-Statistica
7., Come sapere quale modello di regressione è più adatto per i dati?
8. Predire modelli lineari
9. Qual è la convalida incrociata k-Fold e il suo scopo?
10. Dove andare da qui?

1. Introduzione alla regressione lineare

La regressione lineare è una delle tecniche di modellazione predittiva più comunemente utilizzate. Lo scopo della regressione lineare è trovare un’equazione matematica per una variabile di risposta continua Y in funzione di una o più variabili X. In modo che tu possa usare questo modello di regressione per prevedere la Y quando solo la X è nota.,

Questa equazione matematica può essere generalizzata come segue:

Y Y = \beta_{1} + \beta_{2} X + \epsilon where

dove, ?1 è l’intercetta e ?2 è la pendenza.

Collettivamente, sono chiamati coefficienti di regressione e ? è il termine di errore, la parte di Y che il modello di regressione non è in grado di spiegare.

retta di Regressione Lineare

Problema di Esempio

Per questa analisi, si utilizzerà il cars set di dati che viene fornito con R per impostazione predefinita.,

cars è un set di dati standard integrato, che rende conveniente mostrare la regressione lineare in modo semplice e facile da capire.

È possibile accedere a questo set di dati digitando cars nella console R.

Troverai che consiste di 50 osservazioni(righe) e 2 variabili (colonne):distespeed. Consente di stampare le prime sei osservazioni qui.,

head(cars) 
#> speed dist#> 1 4 2#> 2 4 10#> 3 7 4#> 4 7 22#> 5 8 16#> 6 9 10

L’obiettivo è quello di stabilire un’equazione matematica per dist come una funzione di speed, in modo che si può utilizzare per predire dist quando solo il speed dell’auto è noto.

Quindi è desiderabile costruire un modello di regressione lineare con la variabile di risposta comediste il predittore comespeed.

Prima di iniziare a costruire il modello di regressione, è buona norma analizzare e comprendere le variabili.,

L’analisi grafica e lo studio di correlazione qui sotto aiuteranno in questo.

Analisi grafica

Lo scopo di questo esercizio è quello di costruire un semplice modello di regressione che è possibile utilizzare per prevedere la distanza (dist).

Ciò è possibile stabilendo una formula matematica tra Distanza (dist) e Velocità (speed).

Ma prima di passare alla sintassi, proviamo a capire graficamente queste variabili.,

In genere, per ciascuno dei predittori, i seguenti grafici aiutano a visualizzare i pattern:

  • Scatter plot: Visualizza la relazione lineare tra il predittore e la risposta
  • Box plot: per individuare eventuali osservazioni anomale nella variabile. Avere valori anomali nel predittore può influenzare drasticamente le previsioni in quanto possono influenzare la direzione/pendenza della linea di migliore adattamento.
  • Trama di densità: Per vedere la distribuzione della variabile predittiva. Idealmente, è preferibile una distribuzione vicina alla normale (una curva a forma di campana), senza essere inclinata a sinistra oa destra.,

Vediamo come fare ognuno di loro.

L’utilizzo del grafico a dispersione per visualizzare la relazione

I grafici a dispersione possono aiutare a visualizzare le relazioni lineari tra le variabili di risposta e predittore.

Idealmente, se hai molte variabili predittive, viene disegnato un grafico a dispersione per ognuna di esse contro la risposta, insieme alla linea di adattamento migliore come visto di seguito.,

scatter.smooth(x=cars$speed, y=cars$dist, main="Dist ~ Speed") 
Distanza Vs la Velocità di Dispersione

Il grafico a dispersione con la lisciatura line di cui sopra suggerisce una lineare e positivo rapporto tra il �dist� e �speed�.

Questa è una buona cosa.

Perché, una delle ipotesi sottostanti della regressione lineare è, la relazione tra la risposta e le variabili predittive è lineare e additiva.,

Utilizzando BoxPlot Per verificare la presenza di valori anomali

Generalmente, un outlier è qualsiasi datapoint che si trova al di fuori dell’intervallo 1.5 * inter quartile (IQR).

IQR è calcolato come la distanza tra il 25 ° percentile e il 75 ° percentile valori per quella variabile.,

Boxplot di Velocità e di Distanza

Utilizzo di Densità di Trama Per Controllare Se la Variabile di Risposta È Normale

Densità di Trama Per la Velocità e la Distanza

4. Che cos’è l’analisi di correlazione?

L’analisi di correlazione studia la forza della relazione tra due variabili continue. Si tratta di calcolare il coefficiente di correlazione tra le due variabili.,

Quindi qual è la correlazione? E come è utile nella regressione lineare?

La correlazione è una misura statistica che mostra il grado di dipendenza lineare tra due variabili.

Per calcolare la correlazione, le due variabili devono avvenire in coppie, proprio come quello che abbiamo qui con speede dist.

La correlazione può assumere valori compresi tra -1 e +1.

Se una variabile aumenta costantemente con l’aumentare del valore dell’altra, allora ha una forte correlazione positiva (valore vicino a +1).,

Allo stesso modo, se uno diminuisce costantemente quando l’altro aumenta, hanno una forte correlazione negativa (valore vicino a -1).

Un valore più vicino a 0 suggerisce una relazione debole tra le variabili.

Una bassa correlazione (-0.2<x< 0.2) suggerisce probabilmente che gran parte della variazione della variabile di risposta (Y) è inspiegabile dal predittore (X). In tal caso, probabilmente dovresti cercare variabili esplicative migliori.,

Se si osserva il set di dati cars nella console R, per ogni istanza in cui aumenta la velocità, aumenta anche la distanza.

Ciò significa che esiste una forte relazione positiva tra loro. Quindi, la correlazione tra loro sarà più vicina a 1.

Tuttavia, la correlazione non implica causalità.

In altre parole, se due variabili hanno un’alta correlazione, non significa che una variabile “causa” l’aumento del valore dell’altra variabile.

La correlazione è solo un aiuto per comprendere la relazione., Puoi fare affidamento solo sulla logica e sul ragionamento aziendale per esprimere quel giudizio.

Quindi, come calcolare la correlazione in R?

Basta usare la funzionecor() con le due variabili numeriche come argomenti.

cor(cars$speed, cars$dist) 
#> 0.8068949

Costruire il modello di regressione lineare

Ora che avete visto la relazione lineare in modo pittorico nel grafico a dispersione e attraverso la correlazione, proviamo a costruire il modello di regressione lineare.

La funzione utilizzata per la costruzione di modelli lineari è lm().,

La funzione lm() accetta due argomenti principali:

  1. Formula
  2. Data

I dati sono tipicamente un oggetto data.frame e la formula è un oggetto di classe formula.

Ma la convenzione più comune è scrivere la formula direttamente come scritto di seguito.

Costruendo il modello di regressione lineare, abbiamo stabilito la relazione tra il predittore e la risposta sotto forma di una formula matematica.

Cioè Distance (dist) come funzione perspeed.,

Per l’output di cui sopra, è possibile notare i coefficienti, la parte con due componenti: Intercept: -17.579, speed: 3.932.

Questi sono anche chiamati coefficienti beta. In altre parole,

dis dist?=?Intercettare?+?(????velocità)

=> dist = ?17.579 + 3.932?velocità

Diagnostica regressione lineare

Ora il modello lineare è costruito e si dispone di una formula che è possibile utilizzare per prevedere il valore dist se è noto un corrispondente speed.

È sufficiente per utilizzare effettivamente questo modello? NO!,

Perché, prima di utilizzare un modello di regressione per fare previsioni, è necessario assicurarsi che sia statisticamente significativo. Ma come si fa a garantire questo?

Iniziamo stampando le statistiche di riepilogo perlinearMod.

Usando il valore p per verificare la significatività statistica

Le statistiche di riepilogo sopra ci dicono una serie di cose.

Uno di questi è il valore p del modello (nell’ultima riga) e il valore p delle singole variabili predittive (colonna di estrema destra sotto i coefficienti esenti).

I valori p sono molto importanti.,

Perché, possiamo considerare un modello lineare statisticamente significativo solo quando entrambi questi valori p sono inferiori al livello di significatività statistica predeterminato di 0.05.

Questo può essere interpretato visivamente dalle stelle di significato alla fine della riga contro ogni variabile X.

Più sono le stelle accanto al valore p della variabile, più significativa è la variabile.

Qual è l’ipotesi nulla e alternativa?

Ogni volta che c’è un valore p, c’è sempre un’ipotesi Null e alternativa associata.

Quindi qual è l’ipotesi nulla in questo caso?,

Nella regressione lineare, l’ipotesi Nulla (H0) è che i coefficienti beta associati alle variabili siano uguali a zero.

L’ipotesi alternativa (H1) è che i coefficienti non siano uguali a zero. (cioè esiste una relazione tra la variabile indipendente in questione e la variabile dipendente).

Che cos’è il valore t?

Possiamo interpretare il valore t in questo modo. Un valore t più grande indica che è meno probabile che il coefficiente non sia uguale a zero per puro caso. Quindi, più alto è il valore t, meglio è.,

Pr (>| t/) o p-value è la probabilità che si ottiene un valore t più alto o superiore al valore osservato quando l’ipotesi Nulla (il ? il coefficiente è uguale a zero o che non esiste alcuna relazione) è vero.

Cosa significa per noi?

Quando il valore p è inferiore al livello di significatività (< 0.05), è possibile rifiutare in modo sicuro l’ipotesi nulla che il co-efficiente ? del predittore è zero.

Nel nostro caso, linearMod, entrambi questi valori p sono ben al di sotto della soglia 0.05.,

Quindi, puoi rifiutare l’ipotesi nulla e concludere che il modello sia effettivamente statisticamente significativo.

È molto importante che il modello sia statisticamente significativo prima di poter andare avanti e usarlo per prevedere la variabile dipendente. In caso contrario, la fiducia nei valori previsti da quel modello si riduce e può essere interpretata come un evento casuale.

Come calcolare la statistica t e i valori p?

Quando sono noti i coefficienti del modello e l’errore standard, la formula per calcolare la statistica t e il valore p è la seguente:

t t?Statistica = {??,coefficiente \ sopra Std.Errore}

Nel caso in cui si desideri calcolare alcune delle statistiche in base al codice manuale, lo snippet seguente mostra come.

R-Squared e Adj R-Squared

Le informazioni effettive in un dato sono la variazione totale che contiene, ricordi?.

Ciò che R-Squared ci dice è la proporzione di variazione nella variabile dipendente (risposta) che è stata spiegata da questo modello.,

Calcolo R quadrato

Ricorda, l’informazione totale in una variabile è la quantità di variazione che contiene.

$$ R^{2} = 1 – \frac{RSS}{TSS}$$

dove, RSS è la Somma dei Quadrati dei Residui dato da

$$ = RSS \sum_{i}^{n} \left( y_{i} – \hat{y_{i}} \right) ^{2}$$
e la Somma dei Quadrati Totale è dato da
$$TSS = \sum_{i}^{n} \left( y_{i} – \bar{y_{i}} \right) ^{2}$$

Qui, y-hat è stato montato un valore per l’osservazione i e y-bar è la media delle Y.,

Non scartiamo necessariamente un modello basato su un basso valore R-Quadrato.

Per confrontare l’efficacia di due diversi modelli di regressione, è buona norma utilizzare il campione di validazione per confrontare l’AIC dei due modelli.

Oltre a AIC, è possibile utilizzare anche altre metriche di valutazione come Mean Absolute Percentage Error (MAPE), Mean Squared Error (MSE) e Mean Absolute Error (MAE).

Si tratta di R-Squared. Ora che dire aggiustato R-Quadrato?

Cosa viene regolato R-Quadrato?,

Quando aggiungi più variabili X al tuo modello, il valore R-Quadrato del nuovo modello più grande sarà sempre maggiore di quello del sottoinsieme più piccolo.

Riesci a immaginare perché?

Questo perché, poiché tutte le variabili nel modello originale sono presenti anche, il loro contributo per spiegare la variabile dipendente sarà presente anche nel super-set.

Pertanto, qualsiasi nuova variabile aggiunta può solo aggiungere (se non in modo significativo) alla variazione già spiegata.

È qui, il valore R-Quadrato regolato viene in aiuto.,

R-Squared rettificato è formulato in modo tale da penalizzare il numero di termini (predittori di lettura) nel modello.

Quindi, a differenza di R-sq, all’aumentare del numero di predittori nel modello, l’adj-R-sq potrebbe non sempre aumentare.

Pertanto, quando si confrontano modelli nidificati, è buona norma confrontare usando adj-R-squared piuttosto che solo R-squared.,

$$ R^{2}_{adj} = 1 – \frac{MSE}{MST}$$

dove, MSE è l’errore quadratico medio dato da

$$MSE = \frac{RSS}{\left( n-q \right)}$$

e MST è quadratico medio totale dato da

$$MST = \frac{TSS}{\left( n-1 \right)}$$

dove n è il numero di osservazioni e q è il numero di coefficienti del modello.,

Quindi, spostando tutto il numeratori e denominatori, il rapporto tra R2 e Radj2 diventa:

$$R^{2}_{adj} = 1 – \left( \frac{\left( 1 – R^{2}\right) \left(n-1\right)}{n-q}\right)$$

Errore Standard e Statistica F

Entrambi gli errori standard e statistica F sono misure di bontà di adattamento.

St Std., Errore = \sqrt{MSE} = \sqrt{\frac{SSE}{n-q}}$$

$$statistica F = \frac{MSR}{MSE}$$

dove n è il numero di osservazioni, q è il numero di coefficienti e MSR è quadratico medio di regressione, calcolato come,

$$MSR=\frac{\sum_{i}^{n}\left( \hat{y_{i} – \bar{y}}\right)}{q-1} = \frac{SST – SSE}{q – 1}$$

maggiore è La Statistica F e meglio è.

Che cos’è AIC e BIC?,
Il criterio di informazione – AIC di Akaikeerose (Akaike, 1974) e il criterio di informazione – BIC bayesiano (Schwarz, 1978) sono misure della bontà di adattamento del modello di regressione lineare e possono essere utilizzati anche per la selezione del modello.

Entrambi i criteri dipendono dal valore massimizzato della funzione di verosimiglianza L per il modello stimato.

L’AIC è definito come:

AIC?=?(?2)?�?ln (L)?+?(2 k)

dove, k è il numero di parametri del modello e il BIC è definito come:

BIC?=?(?2)?�?ln (L)?+?k?�?ln (n)

dove, n è la dimensione del campione.,

Per il confronto dei modelli, si preferisce il modello con il punteggio AIC e BIC più basso.

AIC(linearMod) #=> 419.1569BIC(linearMod) #=> BIC => 424.8929

Come sapere quale modello di regressione è più adatto per i dati?,

Le metriche più comuni a guardare mentre la selezione del modello sono:

STATISTICA CRITERION
R-Squared più Alto è il migliore
Adj R-Squared più Alto è il migliore
Statistica F più Alto è il migliore
Std. Errore Più vicino a zero meglio
t-statistic Dovrebbe essere maggiore di 1,96 perché il valore p sia inferiore a 0.,td>Abbassare il migliore
Mallows cp Dovrebbe essere il numero di predittori nel modello
MAPE (Media assoluta percentuale di errore) Abbassare il migliore
MSE (Mean squared error) Abbassare il migliore
Min_Max Precisione => media(min(effettiva, del predetto)/max(effettiva, del predetto)) più Alto è il migliore

la Previsione di Modelli Lineari

finora abbiamo visto come costruire un modello di regressione lineare utilizzando l’intero set di dati., Se lo costruisci in questo modo, non c’è modo di dire come il modello si esibirà con i nuovi dati.

Quindi la pratica preferita è quella di dividere il set di dati in un campione 80:20 (training:test), quindi, costruire il modello sul campione 80% e quindi utilizzare il modello così costruito per prevedere la variabile dipendente sui dati di test.

In questo modo, avremo i valori previsti dal modello per i dati del 20% (test) e gli effettivi (dal set di dati originale).

Calcolando le misure di precisione (come la precisione min_max) e i tassi di errore (MAPE o MSE), è possibile scoprire la precisione di previsione del modello.,

Ora, vediamo come farlo effettivamente.

Passo 1: Creare i dati di allenamento e test

Questo può essere fatto usando la funzionesample(). Assicurati di impostare il seme usando set.seed() in modo che i campioni possano essere ricreati per un uso futuro.

Passo 2: Montare il modello sui dati di allenamento e prevedere dist sui dati di test

Passo 3: Rivedere le misure diagnostiche.

Dal riepilogo del modello, il valore p del modello e il valore s p del predittore sono inferiori al livello di significatività.

Quindi hai un modello statisticamente significativo.,

Inoltre, R-Sq e Adj R-Sq sono comparativi con il modello originale basato su dati completi.

Passo 4: Calcola la precisione di previsione e i tassi di errore

Una semplice correlazione tra gli effettivi e i valori previsti può essere utilizzata come forma di misura di precisione.

Una maggiore accuratezza di correlazione implica che i valori effettivi e i valori previsti hanno un movimento direzionale simile, cioè quando i valori effettivi aumentano anche i valori previsti aumentano e viceversa.,

Ora consente di calcolare la precisione Min Max e MAPE:

Min MinMaxAccuracy = mean \left( \frac{min\left(actuals, predicteds\right)}{max\left(actuals, predicteds \right)} \right)

Mean MeanAbsolutePercentageError \ (MAPE) = mean\left( \frac{abs\left(predicteds?actuals \ right)} {actuals} \ right) Alternately

In alternativa, è possibile calcolare tutte le metriche di errore in una volta sola utilizzando la funzioneregr.eval() nel pacchetto DMwR. Dovrai install.packages('DMwR') per questo se lo stai usando per la prima volta.

Qual è la convalida incrociata k-Fold e il suo scopo?,

Supponiamo che il modello preveda in modo soddisfacente lo split del 20% (dati di test), è sufficiente per credere che il tuo modello funzionerà ugualmente bene tutto il tempo?

Cosa intendo con questo?

È possibile che alcuni dei punti dati non siano rappresentativi della popolazione su cui è stato costruito il modello.

Ad esempio, nel set di dati cars, supponiamo che la strada in cemento sia stata utilizzata per i test su strada sui dati di allenamento dell ‘ 80% mentre la strada fangosa è stata utilizzata per i restanti dati di test del 20%.,

Se il modello è stato addestrato in tale configurazione, non puoi aspettarti che il modello prevedadist nel set di dati di test con uguale precisione. Semplicemente perché, non ha imparato la relazione tra speededist in tale impostazione.

Quindi, è importante testare rigorosamente le prestazioni del modello il più possibile.

Un modo per eseguire questo test rigoroso è verificare se l’equazione del modello funziona altrettanto bene, se addestrata e testata su diversi blocchi di dati distinti.,

Questo è esattamente ciò che fa k-Fold cross validation. Ecco come funziona:

  1. Dividi i tuoi dati in k le porzioni di campione casuali reciprocamente esclusive.
  2. Poi iterativamente costruire modelli k, mantenendo uno dei k-sottoinsiemi come dati di test ogni volta.

In ogni iterazione, Costruiamo il modello sui dati rimanenti (porzione k-1) e calcoliamo l’errore quadrato medio delle previsioni sul sottoinsieme k’th.

  1. Infine, la media di questi errori quadrati medi (per le porzioni di Prim’ordine) viene calcolata.

È possibile utilizzare questa metrica per confrontare diversi modelli lineari.,

In questo modo, è necessario controllare due cose dalle previsioni k-fold:

  1. Se la precisione di previsione di ciascuna delle k-fold model, la s, non varia troppo per un particolare campione, e
  2. Se le linee di miglior adattamento dalle k-fold non variano troppo rispetto alla pendenza e al livello.

In altre parole, dovrebbero essere paralleli e il più vicino possibile l’uno all’altro. Questo è ciò che rivela la trama di convalida incrociata k-fold (sotto).

Nel grafico sottostante, le linee tratteggiate sono parallele?, Sono i piccoli e grandi simboli non sono più disperse per un colore particolare?

Cross Validation Plot in R

Dove andare da qui?

Abbiamo trattato i concetti di base sulla regressione lineare. Oltre a questi, è necessario capire che la regressione lineare si basa su alcune ipotesi sottostanti che devono essere curate soprattutto quando si lavora con più Xs., Una volta che hai familiarità con questo, i modelli di regressione avanzati ti mostreranno i vari casi speciali in cui una diversa forma di regressione sarebbe più adatta.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *