lab 4_LRM seconda parte
                
      
      
      
        
          
              
                 lab 4_ aggiuntivo su regressione.txt
              
              
                  —
                  Plain Text,
                  6 kB (6958 bytes)
                lab 4_ aggiuntivo su regressione.txt
              
              
                  —
                  Plain Text,
                  6 kB (6958 bytes)
              
          
          
        
      
    
    
            
Contenuto del file
####    Regressione Lineare Semplice    ###
########    prof. Mini Valentina    #######
#    appunti per STATISTICA MULTIVARIATA  #
##############    2019-2020   #############
#########creare un database semplice in R: 
X=c(1213,1518,3050,852,1550,1215,2120,2207,2175)
Y=c(13474,16497,29349,11314,17224,14459,22186,23483,24095)
#dove X= numero di pezzi di laminati prodotti (dimensione del processo di produzione)
#Y= costo di produzione in serie di laminati
#########caricare dall'esterno un database semplice in R
#cambio directory e indico quella di riferimento
dati=read.csv2("produzione.csv",header=T)
#facciamo riferimento al database semplice "produzione" da Pearson
dati #per visualizzare il dataset "dati"
dim(dati) #per visualizzare il numero di unit� e di var
n=dim(dati)[1] #n dimensione del campione
names(dati) #nome delle variabili
attach(dati) #siamo sicuri che in R ci sia il dataset 
############VISUALIZZAZIONE GRAFICA:SCATTERPLOT
#pu� essere utile visualizzare graficamente i dati 
#mediante scatterplot
#tra costo di produzione e numero di pezzi prodotti 
#scatterplot di Y vs X
plot(X,Y,main="scatterplot di Y vs X", lwd=2, xlab="Numero pezzi prodotti", ylab="Costo di produzione")
########## MODELLO DI REGRESSIONE LINEARE SEMPLICE 
#ora richiamiamo il comando per creare un "linear Model" lm (ovvero una regressione lineare semplice)
#l'output � vasto e complesso, quindi suggerisco di salvare l'analisi 
#in una variabile per poi estrarre le informazioni necessarie per analizzare i dati
#output del modello di regressione
#si usa il simbolo tilde. Generalmente: 
#tilde ~ in windows � alt+126
#tilde ~ in MC � alt+5
result=lm(Y~X)
result
#la variabile result � una variabile creata da lm ed � un oggetto di classe lm
#in tale classe sono contenuti: 
# a) la formula in mase alla quale l'oggetto � stimato
# b) le stime puntuali dei coefficienti di regressione
# c) una lista conetenete coefficients, residuals, fitted.values, rank, weights, df.residuals, call ...
#tutte queste informazioni le useremo nell'analisi di lm, per avere info aggiuntive help(lm)
#per "estrarre" le informazioni si utilizza la specifica $
########SCATTERPLOT CON MODELLO STIMATO#############
#per sovrapporre allo scatterplot il nostro modello stimato � necessario
#estrarre i valori stimati di Y in corrispondenza delle osservazioni della var. esplicativa X
#valori stimati per la variabile Y
Ycapp=result$fitted
#ovvero estraiamo dall'analisi contenuta nella variabile "result" 
# i valori del modello stimato (o fitted model)
plot(X,Y,main="scatterplot di Y vs X", lwd=2, xlab="numero pezzi prodotti", ylab="costo di produzione")
lines(X,Ycapp,lwd=2,col="red")
lines(X,Ycapp,lwd=2,col="green")
lines(X,Ycapp,lwd=2,col="blue")
############## OSSERVAZIONE E COMMENTO DEL GRAFICO OTTENUTO
# dal grafico si pu� osservare che la relazione tra numero di pezzi prodotti e 
# costo di produzione � approssimativamente lineare; 
# sembra esserci una correlazione positiva (al crescere diel numero di pezzi prodotti
# cresce il costo di produzione)
# inoltre non sono evidenti outlier (o valori anomali)
############# OSSERVARE L'OUTPUT DELL'ANALISI
#il comando summay() ci permette di ottenere maggiori risultati sull'analisi condotta
summary(result)
#il risultato ottenuto da summary contiene: 
######## 1) call : la formula in base alla quale � stato stimato il modello
#  vediamo 
#  Call:
#  lm(formula = Y ~ X)
######### 2) residuals : minimo, primo quartile, mediana, terzo quartile e massimo dei residui del modello
#  vediamo: 
#   Residuals:
#    Min      1Q      Median      3Q      Max 
#   -926.29  -461.61   -5.41    144.49  1425.51 
#########3) coefficients: per ciascun coefficiente sono riportati:
#		- la stima puntuale
#		- il corrispondente errore standard
#		- il valore della statistica test t associata al test bilatero H0:Bi=0
#		  contro l'alternativa H1:B1 diverso da 0; 
#		- p-value relativo  questo test di ipotesi
#vediamo: 
# Coefficients:
#              Estimate Std. Error  t value Pr(>|t|)    
#(Intercept)  3763.6291   750.9216   5.012  0.00154 ** 
# X              8.6923     0.3996  21.752  1.1e-07 ***
########## 4) signif. codes : la legenda da associare ad ogni p-value 
#vediamo: 
#Signif. codes:  0 �***� 0.001 �**� 0.01 �*� 0.05 �.� 0.1 � � 1
# 5) ANOVA : il valore dell'errore standard dei residui 
# vediamo: 
# Residual standard error: 767.5 on 7 degrees of freedom
# Multiple R-squared:  0.9854,    Adjusted R-squared:  0.9833 
# F-statistic: 473.1 on 1 and 7 DF,  p-value: 1.095e-07
#####SPIEGAZIONE DI ANOVA: 
# il valore dell'errore standard dei residui con i relativi gradi di libert�
# il valore di R2 e del valore aggiustato (utile per comparare mdelli diversi)
# il valore della statistica test F dell ANOVA con i relativi gradi di libert� e il p-value associato
#relativi al seguente test di ipotesi: 
#   H0: modello senza predittore Y=B0+Err
#   H1: modello con predittore Y=B0+B1X+Err
#R2 � la proporzione di variabilit� nella Y osservata, spiegata 
#   dal modello di regressione lineare basato su X
#si pu� notare che ESSENDO UNA REG. LIN. SEMPL. il test F coincide con il test t eseguito su B1
# ovvero F=473.1 = quadrato di t su B1=(21.752)^2 e
# il p-value dei due test coincidono 
############# IL MODELLO STIMATO
# nel nostro caso il modello stimato �: Y= 4587.3854+8.3503X
#entrambi i test t sui coefficienti b0 e b1 presentano un p-value <0
# quindi si ha alta evidenza statistica per rifiutare l'ipotesi nulla che il singolo coefficiente sia uguale a zero
# ovvero: 
#	 - l'intercetta � statisticamente diversa da zero
#	 - il predittore risulta statisticamente rilevante nel modello 
#R^2 = 0.97, indica che il modello spiega il 97% della variabilit� di Y
# si pu� quindi ritenere un buon modello
########### TABELLA ANOVA PIU' DETTAGLIATA
# per ottenere una tabella ANOVA pi� dettagliata possiamo usare due funzioni
# anova () oppure
# aov ()   questa con sintassi analoga ad lm
#entrambe producono medesimo risultato
result.aov=anova(result)
result.aov
anova.table=aov(Y~X,data=dati)
summary(anova.table)
#otteniamo: 
# - valori delle somme degli scarti al quadrato (sum sq)
# - errori quadratici medi (mean sq)
# - il valore della statistica F (F value)
# - il p-value associato al relativo test (Pr>F)
################ estrazione del ERRORE STANDARD DEI RESIDUI
# Si osservi che la stima dello scarto quadratico medio, ovvero l'errore standard dei residui, 
# pu� essere ricavata dalla radice del Mean Square Error(relativo alla regressione)
# che si trova nella tabella di Anova e che possiamo estrarre nel seguente modo: 
#stima dell'errore standard dei residui
result.aov
sqrt(result.aov[2,3])
#ovvero sqrt(589072)
             
    