Una guida passo-passo alla regressione lineare in R

La regressione lineare è un modello di regressione che utilizza una linea retta per descrivere la relazione tra le variabili. Trova la linea di adattamento migliore attraverso i dati cercando il valore del coefficiente di regressione che riduce al minimo l’errore totale del modello.,

Esistono due tipi principali di regressione lineare:

  • La regressione lineare semplice utilizza solo una variabile indipendente
  • La regressione lineare multipla utilizza due o più variabili indipendenti

In questa guida passo-passo, ti guideremo attraverso la regressione lineare in R utilizzando due set di dati di esempio.

Regressione lineare semplice
Il primo set di dati contiene osservazioni sul reddito (in un intervallo da $15k a happiness 75k) e sulla felicità (valutata su una scala da 1 a 10) in un campione immaginario di 500 persone., I valori di reddito sono divisi per 10.000 per far corrispondere i dati di reddito alla scala dei punteggi di felicità (quindi un valore di $2 rappresenta $20.000, 3 3 è $30.000, ecc.)
Regressione lineare multipla
Il secondo set di dati contiene osservazioni sulla percentuale di persone che vanno in bicicletta al lavoro ogni giorno, la percentuale di persone che fumano e la percentuale di persone con malattie cardiache in un campione immaginario di 500 città.

Scarica i set di dati di esempio per provarlo tu stesso.,

Set di dati di regressione semplice Set di dati di regressione multipla

Guida introduttiva a R

Inizia scaricando R e RStudio. Quindi apri RStudio e fai clic su File > Nuovo file> R Script.

Come andiamo attraverso ogni passo, è possibile copiare e incollare il codice dalle caselle di testo direttamente nello script. Per eseguire il codice, evidenziare le linee che si desidera eseguire e fare clic sul pulsante Esegui in alto a destra dell’editor di testo (o premere ctrl + invio sulla tastiera).,p>

Per installare i pacchetti necessari per l’analisi, eseguire questo codice (hai solo bisogno di fare questo una volta):

install.packages("ggplot2")
install.packages("dplyr")
install.packages("broom")
install.packages("ggpubr")

successivamente, caricare i pacchetti nel tuo ambiente R eseguendo questo codice (è bisogno di fare questo ogni volta che si riavvia R):

library(ggplot2)
library(dplyr)
library(broom)
library(ggpubr)

Passo 1: Caricare i dati in R

Seguire questi quattro punti per ogni set di dati:

  1. In RStudio, andare su ” File > Importare il dataset > Da Testo (di base).,
  2. Scegli il file di dati che hai scaricato (reddito.dati o cuore.dati) e viene visualizzata una finestra di importazione del set di dati.
  3. Nella finestra del frame di dati, dovresti vedere una colonna X (indice) e colonne che elencano i dati per ciascuna delle variabili (reddito e felicità o bicicletta, fumo e cuore.malattia).
  4. Fare clic sul pulsante Importa e il file dovrebbe apparire nella scheda Ambiente in alto a destra della schermata di RStudio.

Dopo aver caricato i dati, verificare che siano stati letti correttamente utilizzando summary().,

Regressione semplice

summary(income.data)

Poiché entrambe le nostre variabili sono quantitative, quando eseguiamo questa funzione vediamo una tabella nella nostra console con un riepilogo numerico dei dati.,Questo ci dice la minima, la mediana, la media e il massimo dei valori della variabile indipendente (reddito) e la variabile dipendente (la felicità):

di regressione Multipla

summary(heart.data)

di Nuovo, perché le variabili sono di tipo quantitativo, che esegue il codice produce un riepilogo numerico dei dati per le variabili indipendenti (fumatori e in bicicletta) e la variabile dipendente (malattia di cuore):

Qual è il vostro plagio punteggio?,

Confronta la tua carta con oltre 60 miliardi di pagine web e 30 milioni di pubblicazioni.

  • Migliori plagiarism checker 2020
  • Plagio report & percentuale
  • più Grande plagio database

Scribbr Plagiarism Checker

Fase 2: assicurarsi che i vostri dati soddisfano i presupposti

E ‘ possibile utilizzare R per verificare che i nostri dati di soddisfare i quattro principali presupposti per la regressione lineare.,

Regressione semplice

  1. Indipendenza delle osservazioni (ovvero nessuna autocorrelazione)

Poiché abbiamo solo una variabile indipendente e una variabile dipendente, non abbiamo bisogno di testare alcuna relazione nascosta tra le variabili.

Se sai di avere l’autocorrelazione all’interno delle variabili (cioè più osservazioni dello stesso soggetto di test), non procedere con una semplice regressione lineare! Utilizzare invece un modello strutturato, come un modello lineare a effetti misti.,

  1. Normalità

Per verificare se la variabile dipendente segue una distribuzione normale, utilizzare la funzionehist().

hist(income.data$happiness)

Le osservazioni sono circa a forma di campana (ulteriori osservazioni in mezzo alla distribuzione, meno code), in modo che possiamo procedere con la regressione lineare.

  1. Linearità

La relazione tra la variabile indipendente e dipendente deve essere lineare., Possiamo testarlo visivamente con un grafico a dispersione per vedere se la distribuzione dei punti dati potrebbe essere descritta con una linea retta.

plot(happiness ~ income, data = income.data)

La relazione appare approssimativamente lineare, quindi possiamo procedere con il modello lineare.

  1. Omoscedasticità (ovvero omogeneità della varianza)

Ciò significa che l’errore di previsione non cambia significativamente nell’intervallo di previsione del modello. Possiamo testare questa ipotesi più tardi, dopo aver montato il modello lineare.,

Regressione multipla

  1. Indipendenza delle osservazioni (ovvero nessuna autocorrelazione)

Usa la funzionecor() per testare la relazione tra le tue variabili indipendenti e assicurarti che non siano troppo correlate.

cor(heart.data$biking, heart.data$smoking)

Quando eseguiamo questo codice, l’uscita è 0.015. La correlazione tra bicicletta e fumo è piccola (0,015 è solo una correlazione dell ‘ 1,5%), quindi possiamo includere entrambi i parametri nel nostro modello.,

  1. Normalità

Utilizzare la funzionehist() per verificare se la variabile dipendente segue una distribuzione normale.

hist(heart.data$heart.disease)

La distribuzione delle osservazioni è approssimativamente a campana, quindi possiamo procedere con la regressione lineare.

  1. Linearità

Possiamo controllare questo usando due scatterplots: uno per la bicicletta e le malattie cardiache e uno per il fumo e le malattie cardiache.,

plot(heart.disease ~ biking, data=heart.data)

plot(heart.disease ~ smoking, data=heart.data)

anche se la relazione tra il fumo e la malattia di cuore è un po ‘ meno chiaro, è ancora lineare. Possiamo procedere con la regressione lineare.

  1. Homoscedasticity

Controlleremo questo dopo che facciamo il modello.,

Passaggio 3: Eseguire l’analisi di regressione lineare

Ora che hai determinato che i tuoi dati soddisfano le ipotesi, puoi eseguire un’analisi di regressione lineare per valutare la relazione tra le variabili indipendenti e dipendenti.

Regressione semplice: reddito e felicità

Vediamo se c’è una relazione lineare tra reddito e felicità nel nostro sondaggio su 500 persone con redditi che vanno da $15k a $75k, dove la felicità è misurata su una scala da 1 a 10.,

Per eseguire una semplice analisi di regressione lineare e controllare i risultati, è necessario eseguire due righe di codice. La prima riga di codice rende il modello lineare, e la seconda riga visualizza il riepilogo del modello:

income.happiness.lm <- lm(happiness ~ income, data = income.data)summary(income.happiness.lm)

L’output simile a questo:

Questa uscita la prima tabella presenta l’equazione del modello, quindi riassume il modello residui (vedere punto 4).,

La sezione dei coefficienti mostra:

  1. Le stime (Stima) per i parametri del modello – il valore dell’intercetta y (in questo caso 0,204) e l’effetto stimato del reddito sulla felicità (0,713).
  2. L’errore standard dei valori stimati (Std. Errore).
  3. La statistica del test (valore t, in questo caso la statistica t).
  4. Il valore p (Pr (> | t | ) ), ovvero la probabilità di trovare la statistica t data se l’ipotesi nulla di nessuna relazione fosse vera.,

Le ultime tre linee sono la diagnostica del modello – la cosa più importante da notare è il valore p (qui è 2.2 e-16, o quasi zero), che indicherà se il modello si adatta bene ai dati.

Da questi risultati, possiamo dire che esiste una significativa relazione positiva tra reddito e felicità (p-value< 0,001), con un aumento di 0,713 unità (+/- 0,01) della felicità per ogni aumento unitario del reddito.,

Regressione multipla: andare in bicicletta, fumare e malattie cardiache

Vediamo se c’è una relazione lineare tra andare in bicicletta al lavoro, fumare e malattie cardiache nella nostra indagine immaginaria di 500 città. I tassi di andare in bicicletta al lavoro variano tra l ‘ 1 e il 75%, i tassi di fumo tra lo 0,5 e il 30% e i tassi di malattie cardiache tra lo 0,5% e il 20,5%.

Per testare la relazione, per prima cosa adattiamo un modello lineare con la malattia cardiaca come variabile dipendente e la bicicletta e il fumo come variabili indipendenti., Eseguire queste due righe di codice:

heart.disease.lm<-lm(heart.disease ~ biking + smoking, data = heart.data)summary(heart.disease.lm)

L’output simile a questo:

L’effetto stimato di bike sulla malattia di cuore è -0.2, mentre l’effetto stimato di fumare è 0.178.

Ciò significa che per ogni aumento dell ‘ 1% della bicicletta al lavoro, c’è una diminuzione correlata dello 0,2% nell’incidenza delle malattie cardiache. Nel frattempo, per ogni aumento dell ‘ 1% del fumo, c’è un aumento dello 0,178% del tasso di malattie cardiache.,

Gli errori standard per questi coefficienti di regressione sono molto piccoli e le statistiche t sono molto grandi (-147 e 50.4, rispettivamente). I valori p riflettono questi piccoli errori e le grandi statistiche T. Per entrambi i parametri, c’è quasi zero probabilità che questo effetto sia dovuto al caso.

Ricorda che questi dati sono costituiti per questo esempio, quindi nella vita reale queste relazioni non sarebbero così chiare!,

Passaggio 4: Verifica dell’omoscedasticità

Prima di procedere con la visualizzazione dei dati, dovremmo assicurarci che i nostri modelli si adattino all’ipotesi di omoscedasticità del modello lineare.

Semplice regressione

Siamo in grado di eseguire plot(income.happiness.lm) per verificare se i dati osservati si incontra il nostro modello di ipotesi:

par(mfrow=c(2,2))
plot(income.happiness.lm)
par(mfrow=c(1,1))

Nota che il par(mfrow()) comando dividere le Trame finestra con il numero di righe e di colonne specificato tra parentesi quadre., Quindi par(mfrow=c(2,2)) lo divide in due righe e due colonne. Per tornare a tracciare un grafico nell’intera finestra, impostare nuovamente i parametri e sostituire (2,2) con (1,1).

Questi sono i grafici residui prodotti dal codice:

I residui sono la varianza inspiegabile. Non sono esattamente gli stessi dell’errore del modello, ma sono calcolati da esso, quindi vedere un pregiudizio nei residui indicherebbe anche un pregiudizio nell’errore.,

La cosa più importante da cercare è che le linee rosse che rappresentano la media dei residui sono tutte fondamentalmente orizzontali e centrate attorno allo zero. Ciò significa che non ci sono valori anomali o pregiudizi nei dati che renderebbero una regressione lineare non valida.

Nel Normale Q-Qplot in alto a destra, possiamo vedere che i residui reali del nostro modello formano una linea quasi perfettamente uno a uno con i residui teorici di un modello perfetto.

Sulla base di questi residui, possiamo dire che il nostro modello soddisfa l’ipotesi di omoscedasticità.,

di regressione Multipla

di Nuovo, si dovrebbe controllare che il nostro modello è in realtà una buona misura per i dati, e che non ci sono state grandi variazioni nel modello di errore, eseguendo questo codice:

par(mfrow=c(2,2))
plot(heart.disease.lm)
par(mfrow=c(1,1))

L’output simile a questo:

Come con la nostra semplice regressione, i residui di mostrare, senza pregiudizi, in modo che possiamo dire che il nostro modello si adatta l’assunzione di homoscedasticity.,

Passo 5: Visualizzare i risultati con un grafico

Successivamente, possiamo tracciare i dati e la linea di regressione dal nostro modello di regressione lineare in modo che i risultati possano essere condivisi.

Regressione semplice

Segui 4 passaggi per visualizzare i risultati della tua regressione lineare semplice.,

  1. Tracciare i punti di dati in un grafico
income.graph<-ggplot(income.data, aes(x=income, y=happiness))+ geom_point()income.graph

  1. Aggiungere la retta di regressione lineare per l’area dei dati

Aggiungere la linea di regressione utilizzando geom_smooth() e digitando lm come metodo per creare la linea. Questo aggiungerà la linea della regressione lineare e l’errore standard della stima (in questo caso + / – 0.,01) come una striscia grigio chiaro che circonda la linea:

income.graph <- income.graph + geom_smooth(method="lm", col="black")income.graph

  1. Aggiungere l’equazione per la regressione linea.
income.graph <- income.graph + stat_regline_equation(label.x = 3, label.y = 7)income.graph

  1. Fare il grafico pronto per la pubblicazione

E ‘ possibile aggiungere alcuni parametri dello stile utilizzando theme_bw() e personalizzate etichette con labs().,

income.graph + theme_bw() + labs(title = "Reported happiness as a function of income", x = "Income (x$10,000)", y = "Happiness score (0 to 10)")

Questo produce il grafico finito che è possibile includere nei documenti:

di regressione Multipla

La visualizzazione passo per la regressione multipla è più difficile che per una semplice regressione, perché ora abbiamo due predittori. Un’opzione è quella di tracciare un aereo, ma questi sono difficili da leggere e non spesso pubblicati.

Proveremo un metodo diverso: tracciare la relazione tra bicicletta e malattie cardiache a diversi livelli di fumo., In questo esempio, il fumo sarà trattato come un fattore con tre livelli, solo allo scopo di visualizzare le relazioni nei nostri dati.

Ci sono 7 passi da seguire.

  1. Creare un nuovo dataframe con le informazioni necessarie per tracciare il modello

Utilizzare la funzione expand.grid() per creare un dataframe con i parametri forniti., All’interno di questa funzione:

  • Creeremo una sequenza dal valore più basso al più alto dei tuoi dati di biking osservati;
  • Scegli i valori minimi, medi e massimi del fumo, al fine di creare 3 livelli di fumo su cui prevedere i tassi di malattie cardiache.

Questo non creerà nulla di nuovo nella tua console, ma dovresti vedere un nuovo frame di dati apparire nella scheda Ambiente. Fare clic su di esso per visualizzarlo.,

  1. Predire i valori delle malattie cardiache in base al modello lineare

Successivamente salveremo i nostri valori ‘predetti y’ come una nuova colonna nel set di dati che abbiamo appena creato.

plotting.data$predicted.y <- predict.lm(heart.disease.lm, newdata=plotting.data)
  1. Arrotondare i numeri di fumo a due decimali

Questo renderà la legenda più facile da leggere in seguito.,

plotting.data$smoking <- round(plotting.data$smoking, digits = 2)
  1. Cambiare la variabile ‘fumo’ in un fattore

Questo ci permette di tracciare l’interazione tra bicicletta e malattie cardiache a ciascuno dei tre livelli di fumo che abbiamo scelto.,

plotting.data$smoking <- as.factor(plotting.data$smoking)
  1. Plot the original data
heart.plot <- ggplot(heart.data, aes(x=biking, y=heart.disease)) + geom_point()heart.plot

  1. Add the regression lines
heart.plot <- heart.plot + geom_line(data=plotting.data, aes(x=biking, y=predicted.y, color=smoking), size=1.25)heart.plot

  1. Make the graph ready for publication

Because this graph has two regression coefficients, the stat_regline_equation() function won’t work here., Ma se vogliamo aggiungere il nostro modello di regressione al grafico, possiamo farlo in questo modo:

heart.plot + annotate(geom="text", x=30, y=1.75, label=" = 15 + (-0.2*biking) + (0.178*smoking)")

Questo è il grafico finito che puoi includere nei tuoi documenti!

Passo 6: Segnala i tuoi risultati

Oltre al grafico, includi una breve dichiarazione che spiega i risultati del modello di regressione.

Riportando i risultati della regressione lineare semplice
Abbiamo trovato una relazione significativa tra reddito e felicità (p < 0.001, R2 = 0.73 ± 0.,0193), con un aumento di 0,73 unità nella felicità riportata per ogni aumento di income 10.000 nel reddito.
riporta i risultati di regressione lineare multipla
Nel nostro sondaggio di 500 città, abbiamo trovato relazioni significative tra la frequenza di bike, il lavoro e la frequenza della malattia di cuore e la frequenza di fumatori e la frequenza di malattia cardiaca (p < 0 e p<0,001, rispettivamente).

In particolare abbiamo trovato una diminuzione dello 0,2% (±0.,0014) nella frequenza delle malattie cardiache per ogni aumento dell ‘1% della bicicletta e un aumento dello 0,178% (±0,0035) nella frequenza delle malattie cardiache per ogni aumento dell’ 1% del fumo.

Lascia un commento

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