Αρχείο με δεδομένα φυσικής κατάστασης 100 ατόμων.
load("exercise.Rdata")
y=exercise$score
y
## [1] 932 1488 945 765 465 1138 1625 1363 732 1188 716 1175 838 749 943
## [16] 825 977 1444 1559 658 1384 1060 878 1492 511 566 1292 556 461 1227
## [31] 671 1290 1584 830 1060 1364 920 1113 1481 409 1423 1206 864 1034 1301
## [46] 1327 564 1250 468 655 885 509 1383 953 699 1301 884 1016 588 965
## [61] 1232 510 558 1186 1198 805 958 803 547 1309 740 670 731 420 531
## [76] 1391 949 862 574 1513 803 755 578 501 1333 729 202 1104 1344 846
## [91] 483 1347 936 818 1016 1697 1030 996 1344 445
boxplot(y)
summary(y)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 202.0 692.0 939.5 957.4 1260.0 1697.0
sd(y)
## [1] 344.385
hist(y)
Συντελεστής διακύμανσης
cv=sd(y)/mean(y)
cv
## [1] 0.3596973
Διερεύνηση διαφοράς ως προς φύλο
ym=y[exercise$sex==1]
yf=y[exercise$sex==0]
boxplot(ym, yf)
t.test(ym,yf)
##
## Welch Two Sample t-test
##
## data: ym and yf
## t = -0.72972, df = 93.152, p-value = 0.4674
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -187.47722 86.71722
## sample estimates:
## mean of x mean of y
## 932.24 982.62
Διερεύνηση συσχέτισης με ηλικία
rscage=cor(exercise$score, exercise$age)
rscage
## [1] -0.9345989
plot(score~age, data=exercise, cex=0.7)
Μοντέλο Παλίνδρόμησης \(Y=\beta_0 + \beta_1 X + \epsilon\), όπου \(Y\)=score, \(X\)=Ηλικία.
mod1=score~age
l1=lm(mod1, data=exercise)
l1
##
## Call:
## lm(formula = mod1, data = exercise)
##
## Coefficients:
## (Intercept) age
## 2758.22 -40.51
Αποτελέσματα μέσω lm:
names(l1)
## [1] "coefficients" "residuals" "effects" "rank"
## [5] "fitted.values" "assign" "qr" "df.residual"
## [9] "xlevels" "call" "terms" "model"
yhat=l1$fitted.values
Γράφημα συνάρτησης Παλινδρόμησης
plot(score~age, data=exercise, cex=0.7)
points(l1$fitted.values~exercise$age, col="red", cex=0.7)
abline(l1$coefficients, col="blue")
abline(mean(exercise$score), 0)
Πίνακας Ανάλυσης Διασποράς
la1=anova(l1)
Το αποτέλεσμα της anova είναι λίστα με στοιχεία:
names(la1)
## [1] "Df" "Sum Sq" "Mean Sq" "F value" "Pr(>F)"
Μπορούμε να πάρουμε τα αθροίσματα τετραγώνων, τους βαθμούς ελευθερίας κλπ σε χωριστά διανύσματα:
SS=la1$`Sum Sq`
SS
## [1] 10255910 1485592
df=la1$Df
dfmod=df[1]
dfer=df[2]
Συμπερασματολογία - Στατιστική Σημαντικότητα
ls1=summary(l1)
names(ls1)
## [1] "call" "terms" "residuals" "coefficients"
## [5] "aliased" "sigma" "df" "r.squared"
## [9] "adj.r.squared" "fstatistic" "cov.unscaled"
betamatrix=ls1$coefficients
bhat=betamatrix[,1]
bstder=betamatrix[,2]
Από τα διανύσματα των συντελεστών και των τυπικών σφαλμάτων μπορούμε να δημιουργήσουμε διαστήματα εμπιστοσύνης για τα \(\hat{\beta}_0, \hat{\beta}_1\):
confintlow=bhat-qt(0.975,dfer)*bstder
confintupper=bhat+qt(0.975,dfer)*bstder
confintmatrix=cbind(confintlow, confintupper)
confintmatrix
## confintlow confintupper
## (Intercept) 2618.67085 2897.76272
## age -43.60353 -37.42174
Επίσης μπορούμε να δούμε τα p-values των ελέγχων \(H_0: \beta=0,\ H_1: \beta \neq 0\) για τα \(\beta_0, \beta_1\) :
pvals=betamatrix[,4]
pvals
## (Intercept) age
## 1.013798e-61 8.721476e-46
Κυρίως μας ενδιαφέρει ο έλεγχος για την κλίση \(\beta_1\), για τον οποίο το p-value είναι σχεδόν μηδέν (\(\approx 10^{-45})\)), που σημαίνει ότι η συσχέτιση μεταξύ ηλικίας και σκορ είναι στατιστικά σημαντική σε οποιοδήποτε πρακατικά επίπεδο σημαντικότητας.