temp <- c(194.5, 194.3, 197.9, 198.4, 199.4, 199.9, 200.9, 201.1, 201.4, 201.3, 203.6, 204.6, 209.5, 208.6, 210.7, 211.9, 212.2)
temp## [1] 194.5 194.3 197.9 198.4 199.4 199.9 200.9 201.1 201.4 201.3 203.6 204.6
## [13] 209.5 208.6 210.7 211.9 212.2
press <- c(20.79, 20.79, 22.40, 22.67, 23.15, 23.35, 23.89, 23.99, 24.02, 24.01, 25.14, 26.57, 28.49, 27.76, 29.04, 29.88, 30.06)
press## [1] 20.79 20.79 22.40 22.67 23.15 23.35 23.89 23.99 24.02 24.01 25.14 26.57
## [13] 28.49 27.76 29.04 29.88 30.06
Lpress <- 100*log10(press)
Lpress## [1] 131.7854 131.7854 135.0248 135.5452 136.4551 136.8287 137.8216 138.0030
## [9] 138.0573 138.0392 140.0365 142.4392 145.4692 144.3419 146.2997 147.5381
## [17] 147.7989
plot(temp, Lpress, pch=19)result.lm = lm(Lpress ~ temp)
summary(result.lm)##
## Call:
## lm(formula = Lpress ~ temp)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.31974 -0.14707 -0.06890 0.01877 1.35994
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -42.16418 3.34136 -12.62 2.17e-09 ***
## temp 0.89562 0.01646 54.42 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.3792 on 15 degrees of freedom
## Multiple R-squared: 0.995, Adjusted R-squared: 0.9946
## F-statistic: 2962 on 1 and 15 DF, p-value: < 2.2e-16
anova(result.lm)## Analysis of Variance Table
##
## Response: Lpress
## Df Sum Sq Mean Sq F value Pr(>F)
## temp 1 425.76 425.76 2961.5 < 2.2e-16 ***
## Residuals 15 2.16 0.14
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
names(result.lm)## [1] "coefficients" "residuals" "effects" "rank"
## [5] "fitted.values" "assign" "qr" "df.residual"
## [9] "xlevels" "call" "terms" "model"
wholeBind <- {}
cbind(wholeBind, temp, Lpress, result.lm$residuals, result.lm$fitted.values)## temp Lpress
## 1 194.5 131.7854 -0.24802254 132.0335
## 2 194.3 131.7854 -0.06889899 131.8543
## 3 197.9 135.0248 -0.05377004 135.0786
## 4 198.4 135.5452 0.01877126 135.5264
## 5 199.4 136.4551 0.03310101 136.4220
## 6 199.9 136.8287 -0.04111891 136.8698
## 7 200.9 137.8216 0.05618981 137.7654
## 8 201.1 138.0030 0.05847608 137.9445
## 9 201.4 138.0573 -0.15593374 138.2132
## 10 201.3 138.0392 -0.08445627 138.1237
## 11 203.6 140.0365 -0.14706580 140.1836
## 12 204.6 142.4392 1.35994454 141.0792
## 13 209.5 145.4692 0.00150698 145.4677
## 14 208.6 144.3419 -0.31973578 144.6617
## 15 210.7 146.2997 -0.24281806 146.5425
## 16 211.9 147.5381 -0.07916126 147.6172
## 17 212.2 147.7989 -0.08700828 147.8859
plot(temp, result.lm$resid, pch=19)
abline(h=0, lty=2)Lpress## [1] 131.7854 131.7854 135.0248 135.5452 136.4551 136.8287 137.8216 138.0030
## [9] 138.0573 138.0392 140.0365 142.4392 145.4692 144.3419 146.2997 147.5381
## [17] 147.7989
LpressMat = (Lpress-3)
LpressMat## [1] 128.7854 128.7854 132.0248 132.5452 133.4551 133.8287 134.8216 135.0030
## [9] 135.0573 135.0392 137.0365 139.4392 142.4692 141.3419 143.2997 144.5381
## [17] 144.7989
p.x = data.frame(LpressMat)
p.x## LpressMat
## 1 128.7854
## 2 128.7854
## 3 132.0248
## 4 132.5452
## 5 133.4551
## 6 133.8287
## 7 134.8216
## 8 135.0030
## 9 135.0573
## 10 135.0392
## 11 137.0365
## 12 139.4392
## 13 142.4692
## 14 141.3419
## 15 143.2997
## 16 144.5381
## 17 144.7989
pc = predict(result.lm, int="c", newdata = p.x)
pc## fit lwr upr
## 1 132.0335 131.6780 132.3889
## 2 131.8543 131.4930 132.2157
## 3 135.0786 134.8143 135.3428
## 4 135.5264 135.2735 135.7792
## 5 136.4220 136.1897 136.6543
## 6 136.8698 136.6465 137.0932
## 7 137.7654 137.5566 137.9742
## 8 137.9445 137.7380 138.1511
## 9 138.2132 138.0098 138.4167
## 10 138.1237 137.9193 138.3281
## 11 140.1836 139.9863 140.3809
## 12 141.0792 140.8749 141.2836
## 13 145.4677 145.1658 145.7697
## 14 144.6617 144.3830 144.9404
## 15 146.5425 146.2074 146.8775
## 16 147.6172 147.2472 147.9872
## 17 147.8859 147.5069 148.2649
pred.x = p.x$LpressMat
pred.x## [1] 128.7854 128.7854 132.0248 132.5452 133.4551 133.8287 134.8216 135.0030
## [9] 135.0573 135.0392 137.0365 139.4392 142.4692 141.3419 143.2997 144.5381
## [17] 144.7989
plot(temp, Lpress, ylim = range(Lpress, pc))matplot(pred.x, pc, lty=1, lwd=1, col="BLUE")?matlines## starting httpd help server ... done
헬스클럽 30명의 건강자료
X1:몸무게(파운드)
X2:분당 정지
맥박수
X3:근력(파운드)
X4:1/4마일 시험주행속도(초)
Y:1마일 주행속도(초)
X1 <- c(217,141,152,153,180,193,162,180,205,168,232,146,173,155,212)
X2 <- c(67,52,58,56,66,71,65,80,77,74,65,68,51,64,66)
X3 <- c(260,190,203,183,170,178,160,170,188,170,220,158,243,198,220)
X4 <- c(91,66,68,70,77,82,74,84,83,79,72,68,56,59,77)
Y <- c(481,292,338,357,396,429,345,469,425,358,393,346,279,311,401)
dataF <- data.frame(X1,X2,X3,X4,Y)
dataF## X1 X2 X3 X4 Y
## 1 217 67 260 91 481
## 2 141 52 190 66 292
## 3 152 58 203 68 338
## 4 153 56 183 70 357
## 5 180 66 170 77 396
## 6 193 71 178 82 429
## 7 162 65 160 74 345
## 8 180 80 170 84 469
## 9 205 77 188 83 425
## 10 168 74 170 79 358
## 11 232 65 220 72 393
## 12 146 68 158 68 346
## 13 173 51 243 56 279
## 14 155 64 198 59 311
## 15 212 66 220 77 401
head(dataF)## X1 X2 X3 X4 Y
## 1 217 67 260 91 481
## 2 141 52 190 66 292
## 3 152 58 203 68 338
## 4 153 56 183 70 357
## 5 180 66 170 77 396
## 6 193 71 178 82 429
summary(dataF)## X1 X2 X3 X4
## Min. :141.0 Min. :51.00 Min. :158.0 Min. :56.00
## 1st Qu.:154.0 1st Qu.:61.00 1st Qu.:170.0 1st Qu.:68.00
## Median :173.0 Median :66.00 Median :188.0 Median :74.00
## Mean :177.9 Mean :65.33 Mean :194.1 Mean :73.73
## 3rd Qu.:199.0 3rd Qu.:69.50 3rd Qu.:211.5 3rd Qu.:80.50
## Max. :232.0 Max. :80.00 Max. :260.0 Max. :91.00
## Y
## Min. :279.0
## 1st Qu.:341.5
## Median :358.0
## Mean :374.7
## 3rd Qu.:413.0
## Max. :481.0
cor(dataF)## X1 X2 X3 X4 Y
## X1 1.0000000 0.4060777 0.51445988 0.57521659 0.68815631
## X2 0.4060777 1.0000000 -0.36969292 0.72916894 0.73972520
## X3 0.5144599 -0.3696929 1.00000000 -0.04189341 0.07542175
## X4 0.5752166 0.7291689 -0.04189341 1.00000000 0.92465476
## Y 0.6881563 0.7397252 0.07542175 0.92465476 1.00000000
dataF.lm = lm(Y~X1+X2+X3+X4, data=dataF)
summary(dataF.lm)##
## Call:
## lm(formula = Y ~ X1 + X2 + X3 + X4, data = dataF)
##
## Residuals:
## Min 1Q Median 3Q Max
## -44.645 -10.608 3.326 9.131 31.511
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -144.7750 85.2800 -1.698 0.1204
## X1 0.3204 0.3807 0.842 0.4196
## X2 1.5955 1.3198 1.209 0.2545
## X3 0.2176 0.3348 0.650 0.5305
## X4 4.2852 1.0001 4.285 0.0016 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 21.92 on 10 degrees of freedom
## Multiple R-squared: 0.9055, Adjusted R-squared: 0.8677
## F-statistic: 23.96 on 4 and 10 DF, p-value: 4.158e-05
anova(dataF.lm)## Analysis of Variance Table
##
## Response: Y
## Df Sum Sq Mean Sq F value Pr(>F)
## X1 1 24081.1 24081.1 50.1298 3.374e-05 ***
## X2 1 12900.5 12900.5 26.8552 0.0004118 ***
## X3 1 246.9 246.9 0.5141 0.4897926
## X4 1 8819.0 8819.0 18.3585 0.0015995 **
## Residuals 10 4803.7 480.4
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
plot(dataF$X1, dataF.lm$resid) X2
와 잔차의 산점도
plot(dataF$X2, dataF.lm$resid) X3
와 잔차의 산점도
plot(dataF$X3, dataF.lm$resid) X4
와 잔차의 산점도
plot(dataF$X4, dataF.lm$resid)
추정값과 잔차의 산점도
plot(dataF$Y, dataF.lm$resid)