lab 3_SLRM intro
Lab 3_ MRLS.txt — Plain Text, 4 kB (4376 bytes)
Contenuto del file
#MODELLO DI REGRESSIONE IN R# #PUNTI CHE VEDREMO: 1. VISUALIZZAZIONE = GRAFICO A DISPESRIONE 2. STIMA DEL MODELLO 3. GRAFICO DEL MODELLO 4. PREVISIONE DI UN VALORE Y DATO UN VALORE X 5. LA BONTA' DEL MODELLO 6. ANALISI DELLE ASSUNZIONI DEL MODELLO DI REG. LIN. 7. TESTARE L'ESISTENZA DELLA RELAZIONE NELLA REALTA' # #esempio semplice creando il nostro database# #osserviamo punti vendita della catena Mini Market: sappiamo dimensione Mq(in centinaia) e fatturato annuale Euro (in migliaia). Vogliamo sviluppare un modello di regressione semplice per prevedere il fatturato in funzione della dimensione# #dimensione = x --> variabile esplicativa o indipendente# fatturato = y --> variabile dipendente# #creaiamo il database con i dati osservati# x=c(1.7,1.6,2.8,5.6,1.3,2.2,1.3,1.1,3.2,1.5,5.2,4.6,5.8,3) y=c(3.7,3.9,6.7,9.5,3.4,5.6,3.7,2.7,5.5,2.9,10.7,7.6,11.8,4.1) #1. osserviamo graficamente i dati# plot(x,y) #cosa possiamo gi� dire sulla relazione tra le due serie di dati?# #2. Seguiamo due modi in R per calcolare la regressione: effettuando tutti i passaggi visti in teoria; utilizzando la funzione lm() in R# #A. CALCOLO DELLA REGRESSIONE CON I SINGOLI PASSAGGI# x.scarti=x-mean(x) #xi - x medio# x.scarti y.scarti=y-mean(y) #yi - y medio# y.scarti dev.x=sum(x.scarti^2) #sommatoria(xi - x medio)# dev.x dev.y=sum(y.scarti^2) #sommatoria(yi - y medio)# dev.y #calcoliamo la somma del prodotto degli scarti tra x e y# codev.xy=sum(x.scarti*y.scarti) codev.xy #ora abbiamo tutti gli elementi per calcolare il coefficienti del modello# b1=codev.xy/dev.x #SSYX/SSX # b1 b0=mean(y)-mean(x)*b1 # y medio-b1xmedio# b0 #con tali informazioni abbiamo il modello stimato# #y= b0+b1x --> y= 0.9644737+1.669862*x# #possiamo quindi fare "previsione" per valori di x all'interno del range campionario# max(x) min(x) range(x) #modello stimato# stima=b0+b1*x stima #quanto si prevede sia il fatturato (in migliaia di euro) per un negozio di 380 mq?# previsione3.8=b0+b1*3.8 previsione3.8 #si prevede che un negozio di 380 mq realizzi un fatturato annuale di 6'308 euro# #ESERCIZIO: QUANTO FATTURATO AVRA' UN NEGOZIO CON SUPERFICIE PARI A 120 MQ?# #ESERCIZIO: QUANTO FATTURATO AVRA' UN NEGOZIO CON SUPERFICIE PARI A 710 MQ?# # !!!!!attenzione: non possiamo rispondere in modo corretto a quest'ultima domanda in quanto il caso esce dal range di osservazione del nostro campione !!!!# #--------------# #B. CALCOLO DELLA REGRESSIONE USANDO LA FUNZIONE lm()# #La funzione prr la regressione lineare previsto in R � lm(var dipendendente var~esplicativa)# output.reg.lin=lm(y~x) #il risultato � un OGGETTO contenuto in R, per visualizzaro lo richiamiamo# output.reg.lin #per visualizzare gli elementi separati si utilizza il simbolo $# #la stima dei parametri � contenuta in "coefficients" quindi: # output.reg.lin$coefficients #abbiamo ottenuto il nostro modello di regressione lineare# #__________________# #3. GRAFICO DEL MODELLO LINEARE# plot(x,y) #punti lines(x,y) #linea che unisce tutti i punti# abline(output.reg.lin) #grafico della linea di previsione #__________________# # 4. PREVISIONE DI UN VALORE (gi� visto con metodo A)# #se x � 4, quanto sar� y? si sostituisce nel nostro modello# prev.y4=b0+b1*4 prev.y4 #_________________# #5. LA BONTA' DEL MODELLO = RQ o coefficiente di determinazione# #ci sono due modi per ottenere informazioni su R: vediamoli# #A. calcoliamo RQ=SSR/SST# dev.tot=sum((y-mean(y))^2) #residui totatli SST dev.disp=sum(output.reg.lin$residuals^2)#residui SSE dev.reg=dev.tot-dev.disp #residui di regressione SSR RQ=dev.reg/dev.tot RQ #otteniamo un RQ di 0.904179: come lo interpretiamo? Il 90.4% della variabilit� delle vendite dell�azienda �mini Market� � spiegata dalle dimensioni del punto vendita. Vi � una significativa relazione lineare tra le due variabili osservate. Solo il (1-0.904=)9.6% � variabilit� dovuta ad altri fattori che non dipendono dalla relazione tra x (dimensione) e y (vendite)# #------------# #B. troviamo RQ attravesro l'output di regressione# summary(output.reg.lin) #alla penultima riga si evidenzia "R-squared: 0.9042"# #_________________#