Esercizio 2 E stato condotto uno studio per valutare la variazione della pressione sistolica in funzione dell etá. I dati sono riportati nel file sbp.xls. Effettua un analisi di regressione e disegna gli opportuni grafici.
Leggiamo i dati press <- read.table (file="sbp.csv", header=t, sep=",", dec=".") head(press) i age sbp 1 1 39 144 2 2 47 220 3 3 45 138 4 4 47 145 5 5 65 162 6 6 46 142
Statistiche di sintesi str(press) data.frame : 30 obs. of 3 variables: $ i : int 1 2 3 4 5 6 7 8 9 10... $ age: int 39 47 45 47 65 46 67 42 67 56... $ sbp: int 144 220 138 145 162 142 170 124 158 154... summary(press) i Min. : 1.00 1st Qu. : 8.25 Median :15.50 Mean :15.50 3rd Qu. :22.75 Max. :30.00 age Min. :17.00 1st Qu. :36.75 Median :45.50 Mean :45.13 3rd Qu. :56.00 Max. :69.00 sbp Min. : 110.0 1st Qu. : 125.8 Median : 141.0 Mean : 142.5 3rd Qu. : 157.0 Max. : 220.0
Visualizziamo i dati graficamente dev.off() # Per chiudere l ultima finestra grafica aperta null device 1 plot(press$age, press$sbp)
Analisi di regressione fit2 <- lm(sbp~age, data=press) summary(fit2) Call: lm(formula = sbp ~ age, data = press) Residuals: Min 1Q Median 3Q Max -21.724-6.994-0.520 2.931 75.654 Coefficients: Estimate Std. Error t value Pr(> t ) (Intercept) 98.7147 10.0005 9.871 1.28e-10 *** age 0.9709 0.2102 4.618 7.87e-05 *** Signif. codes: 0 `*** 0.001 `** 0.01 `* 0.05 `. 0.1 ` 1 Residual standard error: 17.31 on 28 degrees of freedom Multiple R-squared: 0.4324, Adjusted R-squared: 0.4121 F-statistic: 21.33 on 1 and 28 DF, p-value: 7.867e-05
Analisi dell output L intercetta α = 98.7 Il coefficiente β = 0.9 corrisponde alla pendenza della retta. La regressione é significativa (P value = 7.87e-05). In questo modello, l etá spiega circa il 43% della variabilitá della pressione sistolica (R 2 ).
Rappresentazione grafica Disegniamo la retta di regressione su un grafico plot(press$age, press$sbp) lines(press$age,fitted(fit2),col="red")
Check del modello Disegniamo i grafici per valutare la bontá del modello par(mfrow=c(2,2)) plot(fit2)
Esercizio 3 (Tratto da Weintraub, 1962) E stato condotto uno studio per valutare il tasso di natalitá e di mortalitá infantile in relazione allo sviluppo economico negli anni 50. I dati sono nel file farm.csv. Effettua un analisi di regressione e disegna gli opportuni grafici.
Leggiamo i dati setwd("y:/statistica") dati <- read.table (file="farm.csv", header=t, sep=",", dec=".") head(dati) Nation Birth_rate Income farm_proportion infant_mort_rate 1 Venezuela 46.4 392 0.40 68.5 2 Mexico 45.7 118 0.61 87.8 3 Ecuador 45.3 44 0.53 115.8 4 Colombia 38.6 158 0.53 106.8 5 Ceylon 37.2 81 0.53 71.6 6 Puerto Rico 35.0 374 0.37 60.2
Statistiche di sintesi str(dati) data.frame : 30 obs. of 5 variables: $ Nation : Factor w/ 30 levels "Argentina","Australia",..: 29 19 10 8... $ Birth_rate : num 46.4 45.7 45.3 38.6 37.2 35 34 28.3 24.7 24.7... $ Income : int 392 118 44 158 81 374 187 993 1723 287... $ farm_proportion : num 0.4 0.61 0.53 0.53 0.53 0.37 0.3 0.19 0.12... $ infant_mort_rate: num 68.5 87.8 115.8 106.8 71.6... summary(dati) Nation Argentina : 1 Australia : 1 Austria : 1 Belgium : 1 Canada : 1 Ceylon : 1 (Other) :24 Birth_rate Min. :14.80 1st Qu. :18.15 Median :21.45 Mean :24.76 3rd Qu. :27.40 Max. :46.40
Analisi del tasso di natalitá dev.off() null device 1 plot(dati$income, dati$birth_rate)
Analisi del tasso di natalitá mod1 <- lm(birth_rate~income, data=dati) summary(mod1) Call: lm(formula = Birth_rate ~ Income, data = dati) Residuals: Min 1Q Median 3Q Max -10.063-6.349-2.906 7.265 20.182 Coefficients: Estimate Std. Error t value Pr(> t ) (Intercept) 30.237676 2.764106 10.939 1.28e-11 *** Income -0.010255 0.004199-2.442 0.0212 * Signif. codes: 0 `*** 0.001 `** 0.01 `* 0.05 `. 0.1 ` 1 Residual standard error: 8.85 on 28 degrees of freedom Multiple R-squared: 0.1756, Adjusted R-squared: 0.1462 F-statistic: 5.966 on 1 and 28 DF, p-value: 0.02116
Analisi dell output L intercetta α = 30.2 Il coefficiente β = 0.01 La regressione é significativa per α = 0.05 (P value = 0.0212). In questo modello, la variabile esplicativa (le entrate del Paese) spiega circa il 17% della variabilitá del tasso di natalitá (R 2 ).
Rappresentazione grafica Disegniamo la retta di regressione su un grafico lines(dati$income,fitted(mod1),col="red")
Check del modello Disegniamo i grafici per valutare la bontá del modello par(mfrow=c(2,2)) plot(mod1)
Analisi del tasso di mortalitá dev.off() null device 1 plot(dati$income, dati$infant_mort_rate)
Analisi del tasso di mortalitá mod2 <- lm(infant_mort_rate~income, data=dati) summary(mod2) Call: lm(formula = infant_mort_rate ~ Income, data = dati) Residuals: Min 1Q Median 3Q Max -28.611-11.564-4.453 6.399 46.694 Coefficients: Estimate Std. Error t value Pr(> t ) (Intercept) 82.510203 6.248522 13.205 1.51e-13 *** Income -0.056172 0.009492-5.918 2.28e-06 *** Signif. codes: 0 `*** 0.001 `** 0.01 `* 0.05 `. 0.1 ` 1 Residual standard error: 20.01 on 28 degrees of freedom Multiple R-squared: 0.5557, Adjusted R-squared: 0.5399 F-statistic: 35.02 on 1 and 28 DF, p-value: 2.282e-06
Analisi dell output L intercetta α = 82.5 Il coefficiente β = 0.05 La regressione é significativa (P value = 2.28e-06). In questo modello, la variabile esplicativa (le entrate del Paese) spiega circa il 55% della variabilitá del tasso di mortalitá (R 2 ).
Rappresentazione grafica Disegniamo la retta di regressione su un grafico lines(dati$income,fitted(mod2),col="red")
Check del modello Disegniamo i grafici per valutare la bontá del modello par(mfrow=c(2,2)) plot(mod2)