Esercitazione6.R

lorenzo — Dec 16, 2013, 10:15 AM

# definisco la directory di lavoro
setwd("/Users/lorenzo/Documents/Lavori guidati e corsi matematica/ST410 a.a. 2013-2014/Esercitazione6")


#Esercizio 1
test<-read.csv("test.csv")
modello_test <- lm(punteggio ~ stins, data=test)
# punto 1
modello_test

Call:
lm(formula = punteggio ~ stins, data = test)

Coefficients:
(Intercept)        stins  
     698.93        -2.28  
modello_test$coef
(Intercept)       stins 
     698.93       -2.28 
#punto 2
plot(test$stins, test$punteggio,xlab="Rapporto studenti/insegnanti", ylab="Punteggio nel test", pch=16)
abline(modello_test, col="red", lwd=3)

plot of chunk unnamed-chunk-1

#punto 3
confint(modello_test, level=0.975)
             1.25 % 98.75 %
(Intercept) 677.636   720.2
stins        -3.359    -1.2
# per controllo
n<-length(test$stins)
U<-test$punteggio-modello_test$coef[1]-modello_test$coef[2]*test$stins #residui dell'interpolazione
S2<-(1/(n-2)) *sum(U^2 ) #stimatore della varianza sigma
D<-sum((test$stins-mean(test$stins))^2) #devianza di x
estremo_inferiore<-modello_test$coef[2]-sqrt(S2/D)*qt(0.9875,df=n-2)
estremo_superiore<- modello_test$coef[2]+sqrt(S2/D)*qt(0.9875,df=n-2)
sqrt(S2)-summary(modello_test)$sigma<10^(-13)
[1] TRUE
(sqrt(S2/D)-summary(modello_test)$coefficients[2,2])<10^(-13)
[1] TRUE
# punto 4
summary(modello_test)

Call:
lm(formula = punteggio ~ stins, data = test)

Residuals:
   Min     1Q Median     3Q    Max 
-47.73 -14.25   0.48  12.82  48.54 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)   698.93       9.47   73.82  < 2e-16 ***
stins          -2.28       0.48   -4.75  2.8e-06 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 18.6 on 418 degrees of freedom
Multiple R-squared:  0.0512,    Adjusted R-squared:  0.049 
F-statistic: 22.6 on 1 and 418 DF,  p-value: 2.78e-06
# H_0 si puo' rifiutare dato che il p-value per "stins" e' minore di 0.1%
# per controllo: calcoliamo  il t value (per beta_0=0) e verifichiamo che sia minore di -qt(0.9995,df=n-2) 
t<-modello_test$coef[2]/sqrt(S2/D)
-qt(0.9995,df=n-2)
[1] -3.314

#Esercizio 2
summary(modello_test)$r.squared
[1] 0.05124
# per controllo: calcoliamo l'r quadro a partire dalla definizione, usando i valori interpolati
devianza_valori_interpolati <-sum((modello_test$fitted.values - mean(test$punteggio))^2)
devianza_totale<-sum((test$punteggio-mean(test$punteggio))^2)
devianza_valori_interpolati/devianza_totale
[1] 0.05124

#Esercizio 3
ore_lavoro<-c(29,31,33,33,35,34,34,36,37,39,39,39,40,41,40,42,42)
salario<-c(13,13.75,14.1,14.98,15,15.1,15.1,16.2,17,21,21.5,21.5,23.3,24,24.35,31.2,32)
modello_salario<-lm(salario~ore_lavoro)
summary(modello_salario)

Call:
lm(formula = salario ~ ore_lavoro)

Residuals:
   Min     1Q Median     3Q    Max 
-2.995 -1.466 -0.792  0.456  5.166 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)   -30.61       5.90   -5.19  0.00011 ***
ore_lavoro      1.37       0.16    8.56  3.7e-07 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 2.53 on 15 degrees of freedom
Multiple R-squared:  0.83,  Adjusted R-squared:  0.819 
F-statistic: 73.2 on 1 and 15 DF,  p-value: 3.73e-07
plot(ore_lavoro, modello_salario$residuals, pch=3, xlab="Ore lavorate", ylab="Residui della regressione")

plot of chunk unnamed-chunk-1