La regressione lineare, che rappresenta la relazione più semplice e frequente tra due variabili quantitative, può essere positiva (all'aumento dei valori di una variabile corrisponde un aumento anche nell'altra) o negativa (all'aumento dell'una corrisponde una diminuzione dell'altra): tale relazione è indicata dal segno del coefficiente
b
.Ricordo le formule per calcolare il coefficiente angolare e l'intercetta:
Per costruire la retta che descrive la distribuzione dei punti, ci si può riferire a diversi principi. Il più comune è il metodo dei minimi quadrati (least squares, o Model 1), ed è il metodo utilizzato dal software statistico R.
Supponiamo di voler ricavare una relazione lineare tra il peso (kg) e l'altezza (cm) di 10 individui.
Altezza: 175, 168, 170, 171, 169, 165, 165, 160, 180, 186
Peso: 80, 68, 72, 75, 70, 65, 62, 60, 85, 90
Peso: 80, 68, 72, 75, 70, 65, 62, 60, 85, 90
Il primo problema che si pone è quello di decidere quale sia la variabile dipendente Y e quale la variabile indipendente X. In generale, la variabile indipendente è quella non affetta da errore durante la misura (o affetta da errore casuale); mentre la variabile dipendente è quella affetta da errore, e di cui si vuole stimare una relazione. Nel nostro caso possiamo assumere che la variabile Peso sia la variabile indipendente (X), e la variabile Altezza quella dipendente (Y).
Quindi il nostro problema è quello di cercare una relazione lineare (in termini spiccioli, una formula) che ci permetta di calcolare l'altezza, essendo noto il peso di un individuo. La formula più semplice è quella di una generica retta del tipo
Y = a + bX
. In R si calcolano i due parametri procedendo in questo modo:> altezza = c(175, 168, 170, 171, 169, 165, 165, 160, 180, 186)
> peso = c(80, 68, 72, 75, 70, 65, 62, 60, 85, 90)
>
> modello = lm(formula = altezza ~ peso, x=TRUE, y=TRUE)
> modello
Call:
lm(formula = altezza ~ peso, x = TRUE, y = TRUE)
Coefficients:
(Intercept) peso
115.2002 0.7662
Anzitutto, notiamo che per scrivere correttamente la funzione, è importante l'ordine delle variabili. In
formula = altezza ~ peso
, si è seguita la sintassi generale formula = Y ~ X
, e questa sintassi è stata confermata esplicitando x=TRUE
e y=TRUE
.L'output della funzione è rappresentato dai due parametri a e b:
a=115.2002
(l'intercetta), b=0.7662
(il coefficiente angolare).Il semplice calcolo della retta non è però sufficiente. Occorre valutare la significatività della retta, ossia se il coefficiente angolare
b
si discosta da zero in modo significativo. Il test può essere effettuato sia mediante il test F di Fisher, sia con il test t di Student.Ricordiamo le ipotesi da verificare:
In R entrambi possono essere richiamati molto rapidamente. Ecco come:
> mod = lm(altezza ~ peso)
> summary(mod)
Call:
lm(formula = altezza ~ peso)
Residuals:
Min 1Q Median 3Q Max
-1.6622 -0.9683 -0.1622 0.5679 2.2979
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 115.20021 3.48450 33.06 7.64e-10 ***
peso 0.76616 0.04754 16.12 2.21e-07 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 1.405 on 8 degrees of freedom
Multiple R-squared: 0.9701, Adjusted R-squared: 0.9664
F-statistic: 259.7 on 1 and 8 DF, p-value: 2.206e-07
Come possiamo vedere, l'output è molto ricco. Innanzitutto osserviamo che sono stati forniti i valori dell'intercetta e del coefficiente angolare anche in questo modo (io personalmente preferisco ricavarli col metodo visto prima, per rapidità di interpretazione). Viene inoltre il risultato "Multiple R-squared: 0.835": questo numero descrive la bontà del modello ($R^2$ è il coefficiente di determinazione), ossia quanto il modello trovato spiega i dati campionari. In questo caso il modello è adeguato a descrivere l'83.5% dei dati ricavati.
Il test t di Student relativo al coefficiente angolare ha in questo caso valore 16.12 (quello relativo alla variabile peso); il risultato della statistica F di Fisher è invece 259.7 (è lo stesso valore che si otterrebbe eseguendo una ANOVA sui dati, che possiamo guardare richiamandolo così:
anova(mod)
). In entrambi i casi questi valori sono ampiamente superiori ai valori tabulati (e difatti i relativi p-value sono di molto inferiori a 0.05), e pertanto viene rifiutata l'ipotesi nulla (b = 0): quindi la regressione è significativa (il valore del coefficiente angolare così calcolato è statisticamente differente da zero).
ciao, complimenti per il blog. Potresti dirmi cosa significano gli asterischi? E inoltre in questa frase:"In entrambi i casi questi valori sono apiamente superiori ai valori tabulati". Quali sono i valori tabulati con i quali devo confrontare il p-value???
RispondiEliminaGrazie Mille.
Maria
Ciao Maria,
RispondiEliminaallora, gli asterischi indicano la significatività dei coefficienti: 3 asterischi indicano una significatività approssimabile al 100%; 2 asterisci al 99.9%, e così via. Sotto trovi la legenda, ogni volta che richiami la funzione.
Per quanto riguarda i valori tabulati, li calcoli così:
1) per il test t: qt(0.975, n-2) con n numero di osservazioni
2) per il test F: qf(0.95, 1, 8) dove 1 e 8 sono i gradi di libertà che vengono riportati nell'output
Se intendi confrontare il p-value, devi sempre fare riferimento al suo valore 0.05 (normalmente viene considerata la significatività del 95%). Ma i valori tabulati cui facevo riferimento, sono i valori t ed F delle relative tavole, da confrontare con i valori calcolati.
(in altri post precedenti, ho fatto altri esempi, sicuramente spiegati meglio. Se hai altre domande, sono comunque a disposizione)
Complimenti per il blog, ti seguirò giorno per giorno.
RispondiEliminaMB
Ciao una domanda.
RispondiEliminaHo svolto un esercizio seguendo i tuoi passi e ho trovato a e b; ora come faccio a trovare il valore di Y volendo fare una predizione?
Grazie
Ciao,
RispondiEliminavorrei un tuo suggerimento per capire che metodo usare per la mia analisi. Ho misurato il valore di una variabile quantitativa X in dei soggetti in 2 tempi (t1 e t2). I prelievi rivelano che la variabile X al t2 è sempre ridotta rispetto al valore che aveva al tempo 1, in tutti i soggetti. Voglio sapere se questa diminuizione della variabile X al tempo 2 dipende o meno: a)dall'eta dei soggetti a cui faccio il primo prelievo o b)dal valore assoluto della variabile al tempo 1 c) da entrambi d) da nessuna delle due variabili. Grazie
come faccio a calcolare il coefficiente di pearson dopo aver calcolto la retta di regressione??e come si trasforma in scala semilogaritmica??grazie:)
RispondiEliminaCiao! come faccio a sapere che il p-value dove t=1,85 e dF=40:
RispondiEliminaP(T)>(t)=P(T)>1,85=2*P(T)>1,85=
2*0,0359=0,0718=7,18%
dove e come ha trovato che P(T)>1,85=0,0359???
Perchè nelle tavole nei 40 gradi di libertà della t student non c'è l'1,85 ma si può intuire che è compreso tra 1,684 e 2,021...quindi tra 0,1 e 0,05 nel 2-tailed...come fa a sapere la probabilità esatta 0,0359?? se la calcola in Stata come si fa??
grazie!!
complimenti.. =)
RispondiEliminadomani ho un esame.. e tu hai risolto un mio grandissimo dubbio! Grazie..
M.
Solo adesso ho scoperto questo bellissimo blog!:D
RispondiEliminaSapreste dirmi come si fa per calcolare un intervallo di confidenza per b?
Ma come può l'altezza dipendere dal peso? Non è il contrario, ossia il peso varia al variare dall'altezza..no? Quindi la variabile x è l'altezza e la y il peso.
RispondiEliminagrazie! post ben fatto
RispondiEliminaciao...ho un problema su un concetto di statistica da chiedere...la correlazione è un esempio di analisi multivariata perchè studia l'interdipendenza lineare tra due variabili, quindi vedo come varia una al variare dell'altra. Ma la regressione lineare semplice, invece, è un'analisi di che tipo?univariata perchè vedo come al variare del regressore varia quella di risposta?e la regressione lineare multipla quindi è multivariata perchè ci sono più regressori?
RispondiEliminaPer l'ultimo commento: non ho molto altro da aggiungere perchè le risposte cui hai pensato per la tue domande sono assolutamente corrette =)
RispondiEliminaTi rangrazio molto e ti faccio i complimenti per il blog! :)
RispondiEliminaciao scusami..io dovrei fare una regressione lineare pesata..e un'altra vincolata..mi chiedevo:ma i pesi come faccio ad impostarli?o meglio che valore gli dò..?non dovrebbe farmelo R direttamente? poi per impostare nella seconda regressione che i pesi sommano a uno come faccio..?grazie mille..:D
RispondiEliminagrazie mille per qs blog, ha chiarito molti miei dubbi!GRAZIE!
RispondiEliminaDovrei ricavare il t corrispondente ad una significatività del 95% (alfa=0,95), per confrontarlo con quello calcolato tramite la formula t(n-2)=(b-beta0)/Sb.
RispondiEliminaIl problema é che le tabelle si fermano ad alfa=0,90. Come faccio?
p.s. n=g.d.l, b e beta0 sono i conefficienti angolari delle rette in un test di parallelismo
Grazie
Ciao! Qualcuno di voi potrebbe dirmi come trovare la significatività del test t a mano dalla statistica t nella regressione logistica per la significatività di un parametro nella retta di regressione?
RispondiEliminaciao,
RispondiEliminacomplimenti per il blog. Credo che ci sia una imprecisione nella spiegazione dell'esercizio svolto con R
Quando parli di R^2 "...Viene inoltre il risultato "Multiple R-squared: 0.835": questo numero descrive la bontà del modello ($R^2$ è il coefficiente di determinazione..",
R^2 risulta NON 0.835 bensi 0.9701
Mi sbaglio io o trattasi di svista ?
un saluto
td
Ciao.
RispondiEliminaAnche io vorrei complimentarmi innanzitutto per il blog. Io avrei una domanda circa il calcolo di una regressione non lineare (logaritmica). In questo caso, quale sarebbe la sintassi da utilizzare? mod=nls(ln(y)~ln(x),x=TRUE,y=TRUE).
Grazie mille in anticipo
Ciao,
RispondiEliminasi possono effettuare i due test di Fisher e di Student anche con serie autocorrelate? La mia regressione è tra un vettore di dati idrologici e il vettore date che riporta i giorni in cui sono stati registrati i dati del primo vettore.
Grazie,
Fabio
ciao, come posso fare la regressione della mia variabile su una costante e un altro coefficiente?
RispondiEliminaMartina