Salta ai contenuti. | Salta alla navigazione

Strumenti personali

lab 3_SLRM intro

Plain Text icon 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"#

#_________________#