Yêu cầu: viết 1 function dùng để hồi quy tuyến tính.
data(Boston)
str(Boston)
## 'data.frame': 506 obs. of 14 variables:
## $ crim : num 0.00632 0.02731 0.02729 0.03237 0.06905 ...
## $ zn : num 18 0 0 0 0 0 12.5 12.5 12.5 12.5 ...
## $ indus : num 2.31 7.07 7.07 2.18 2.18 2.18 7.87 7.87 7.87 7.87 ...
## $ chas : int 0 0 0 0 0 0 0 0 0 0 ...
## $ nox : num 0.538 0.469 0.469 0.458 0.458 0.458 0.524 0.524 0.524 0.524 ...
## $ rm : num 6.58 6.42 7.18 7 7.15 ...
## $ age : num 65.2 78.9 61.1 45.8 54.2 58.7 66.6 96.1 100 85.9 ...
## $ dis : num 4.09 4.97 4.97 6.06 6.06 ...
## $ rad : int 1 2 2 3 3 3 5 5 5 5 ...
## $ tax : num 296 242 242 222 222 222 311 311 311 311 ...
## $ ptratio: num 15.3 17.8 17.8 18.7 18.7 18.7 15.2 15.2 15.2 15.2 ...
## $ black : num 397 397 393 395 397 ...
## $ lstat : num 4.98 9.14 4.03 2.94 5.33 ...
## $ medv : num 24 21.6 34.7 33.4 36.2 28.7 22.9 27.1 16.5 18.9 ...
mohinhhoiquy <- function(data,x,y){
#Hệ số tương quan
mttq <- cor(data)
# Hồi quy tuyến tính
hq <- lm(formula = paste(y, "~", x), data=data)
# Biểu đồ phân tán
bd <- pairs(data)
# Kiểm định
ttq <- dwtest(hq)
op <- par(mfrow=c(2,2))
pt <- plot(hq)
# Dự báo
db <- predict(hq,data)
list(`Ma trận hệ số tương quan`=mttq,`Mô hình hồi quy`=summary(hq),`Biểu đồ phân tán`=bd,`Kiểm định tự tương quan`= ttq,`Phân tích phần dư để kiểm tra các giả định`=pt,`Dự báo`=db)
}
mohinhhoiquy(Boston,"medv","lstat")
## $`Ma trận hệ số tương quan`
## crim zn indus chas nox
## crim 1.00000000 -0.20046922 0.40658341 -0.055891582 0.42097171
## zn -0.20046922 1.00000000 -0.53382819 -0.042696719 -0.51660371
## indus 0.40658341 -0.53382819 1.00000000 0.062938027 0.76365145
## chas -0.05589158 -0.04269672 0.06293803 1.000000000 0.09120281
## nox 0.42097171 -0.51660371 0.76365145 0.091202807 1.00000000
## rm -0.21924670 0.31199059 -0.39167585 0.091251225 -0.30218819
## age 0.35273425 -0.56953734 0.64477851 0.086517774 0.73147010
## dis -0.37967009 0.66440822 -0.70802699 -0.099175780 -0.76923011
## rad 0.62550515 -0.31194783 0.59512927 -0.007368241 0.61144056
## tax 0.58276431 -0.31456332 0.72076018 -0.035586518 0.66802320
## ptratio 0.28994558 -0.39167855 0.38324756 -0.121515174 0.18893268
## black -0.38506394 0.17552032 -0.35697654 0.048788485 -0.38005064
## lstat 0.45562148 -0.41299457 0.60379972 -0.053929298 0.59087892
## medv -0.38830461 0.36044534 -0.48372516 0.175260177 -0.42732077
## rm age dis rad tax ptratio
## crim -0.21924670 0.35273425 -0.37967009 0.625505145 0.58276431 0.2899456
## zn 0.31199059 -0.56953734 0.66440822 -0.311947826 -0.31456332 -0.3916785
## indus -0.39167585 0.64477851 -0.70802699 0.595129275 0.72076018 0.3832476
## chas 0.09125123 0.08651777 -0.09917578 -0.007368241 -0.03558652 -0.1215152
## nox -0.30218819 0.73147010 -0.76923011 0.611440563 0.66802320 0.1889327
## rm 1.00000000 -0.24026493 0.20524621 -0.209846668 -0.29204783 -0.3555015
## age -0.24026493 1.00000000 -0.74788054 0.456022452 0.50645559 0.2615150
## dis 0.20524621 -0.74788054 1.00000000 -0.494587930 -0.53443158 -0.2324705
## rad -0.20984667 0.45602245 -0.49458793 1.000000000 0.91022819 0.4647412
## tax -0.29204783 0.50645559 -0.53443158 0.910228189 1.00000000 0.4608530
## ptratio -0.35550149 0.26151501 -0.23247054 0.464741179 0.46085304 1.0000000
## black 0.12806864 -0.27353398 0.29151167 -0.444412816 -0.44180801 -0.1773833
## lstat -0.61380827 0.60233853 -0.49699583 0.488676335 0.54399341 0.3740443
## medv 0.69535995 -0.37695457 0.24992873 -0.381626231 -0.46853593 -0.5077867
## black lstat medv
## crim -0.38506394 0.4556215 -0.3883046
## zn 0.17552032 -0.4129946 0.3604453
## indus -0.35697654 0.6037997 -0.4837252
## chas 0.04878848 -0.0539293 0.1752602
## nox -0.38005064 0.5908789 -0.4273208
## rm 0.12806864 -0.6138083 0.6953599
## age -0.27353398 0.6023385 -0.3769546
## dis 0.29151167 -0.4969958 0.2499287
## rad -0.44441282 0.4886763 -0.3816262
## tax -0.44180801 0.5439934 -0.4685359
## ptratio -0.17738330 0.3740443 -0.5077867
## black 1.00000000 -0.3660869 0.3334608
## lstat -0.36608690 1.0000000 -0.7376627
## medv 0.33346082 -0.7376627 1.0000000
##
## $`Mô hình hồi quy`
##
## Call:
## lm(formula = paste(y, "~", x), data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -10.8631 -3.5959 -0.8133 2.4069 20.3152
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 25.55886 0.56823 44.98 <2e-16 ***
## medv -0.57276 0.02335 -24.53 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 4.826 on 504 degrees of freedom
## Multiple R-squared: 0.5441, Adjusted R-squared: 0.5432
## F-statistic: 601.6 on 1 and 504 DF, p-value: < 2.2e-16
##
##
## $`Biểu đồ phân tán`
## NULL
##
## $`Kiểm định tự tương quan`
##
## Durbin-Watson test
##
## data: hq
## DW = 0.90102, p-value < 2.2e-16
## alternative hypothesis: true autocorrelation is greater than 0
##
##
## $`Phân tích phần dư để kiểm tra các giả định`
## NULL
##
## $`Dự báo`
## 1 2 3 4 5 6 7
## 11.8127195 13.1873335 5.6842322 6.4288148 4.8250985 9.1207672 12.4427509
## 8 9 10 11 12 13 14
## 10.0371765 16.1083882 14.7337742 16.9675219 14.7337742 13.1300579 13.8746405
## 15 16 17 18 19 20 21
## 15.1347033 14.1610184 12.3281998 15.5356324 13.9891916 15.1347033 17.7693801
## 22 23 24 25 26 27 28
## 14.3328451 16.8529707 17.2538998 16.6238684 17.5975533 16.0511126 17.0820731
## 29 30 31 32 33 34 35
## 15.0201521 13.5309870 18.2848603 17.2538998 17.9984824 18.0557580 17.8266556
## 36 37 38 39 40 41 42
## 14.7337742 14.1037428 13.5309870 11.4117904 7.9179799 5.5696811 10.3235544
## 43 44 45 46 47 48 49
## 11.0681370 11.4117904 13.4164358 14.5046719 14.1037428 16.0511126 17.3111754
## 50 51 52 53 54 55 56
## 14.4473963 14.2755696 13.8173649 11.2399637 12.1563730 14.7337742 5.2833032
## 57 58 59 60 61 62 63
## 11.4117904 7.4597753 12.2136486 14.3328451 14.8483254 16.3947661 12.8436800
## 64 65 66 67 68 69 70
## 11.2399637 6.6579171 12.0990974 14.4473963 12.9582312 15.5929079 13.5882626
## 71 72 73 74 75 76 77
## 11.6981684 13.1300579 12.5000265 12.1563730 11.7554439 13.3018847 14.1037428
## 78 79 80 81 82 83 84
## 13.6455381 13.4164358 13.9319161 9.5216962 11.8699951 11.3545149 12.4427509
## 85 86 87 88 89 90 91
## 11.8699951 10.3235544 12.6718533 12.8436800 12.0418219 9.1207672 12.6145777
## 92 93 94 95 96 97 98
## 12.9582312 12.4427509 11.2399637 13.7600893 9.2925939 13.3018847 3.3932090
## 99 100 101 102 103 104 105
## 0.4721543 6.5433660 9.8080741 10.3808300 14.9056010 14.5046719 14.0464672
## 106 107 108 109 110 111 112
## 14.3901207 14.3901207 13.8746405 14.2182940 14.4473963 13.1300579 12.5000265
## 113 114 115 116 117 118 119
## 14.7910498 14.8483254 14.9628765 15.0774277 13.4164358 14.5619475 13.8746405
## 120 121 122 123 124 125 126
## 14.5046719 12.9582312 13.9319161 13.8173649 15.6501835 14.7910498 13.3018847
## 127 128 129 130 131 132 133
## 16.5665928 16.2802149 15.2492544 17.3684510 14.5619475 14.3328451 12.3854753
## 134 135 136 137 138 139 140
## 15.0201521 16.6238684 15.1919789 15.5929079 15.7647347 17.9412068 15.3638056
## 141 142 143 144 145 146 147
## 17.5402777 17.3111754 17.8839312 16.6238684 18.8003405 17.6548289 16.6238684
## 148 149 150 151 152 153 154
## 17.1966242 15.3638056 16.7384196 13.2446091 14.3328451 16.7956952 14.4473963
## 155 156 157 158 159 160 161
## 15.8220103 16.6238684 18.0557580 1.9040438 11.6408928 12.2136486 10.0944521
## 162 163 164 165 166 167 168
## -3.0789318 -3.0789318 -3.0789318 12.5573021 11.2399637 -3.0789318 11.9272707
## 169 170 171 172 173 174 175
## 11.9272707 12.7864044 15.5929079 14.6192230 12.3281998 12.0418219 12.6145777
## 176 177 178 179 180 181 182
## 8.7198381 12.2709242 11.4690660 8.4334602 4.2523427 2.7631776 4.8250985
## 183 184 185 186 187 188 189
## 3.8514136 6.9442950 10.4381056 8.6052869 -3.0789318 7.2306730 8.4907358
## 190 191 192 193 194 195 196
## 5.5696811 4.3668938 8.0898067 4.7105473 7.7461532 8.8916648 -3.0789318
## 197 198 199 200 201 202 203
## 6.4860904 8.2043579 5.7415078 5.5696811 6.7151927 11.7554439 1.3312880
## 204 205 206 207 208 209 210
## -2.2197981 -3.0789318 12.6145777 11.5836172 12.6718533 11.5836172 14.1037428
## 211 212 213 214 215 216 217
## 13.1300579 14.5046719 12.7291288 9.4644207 11.9845463 11.2399637 12.2136486
## 218 219 220 221 222 223 224
## 9.1207672 13.2446091 12.3854753 10.2662788 13.1300579 9.8080741 8.3189090
## 225 226 227 228 229 230 231
## -0.1006016 -3.0789318 4.0232404 7.4597753 -1.1888376 7.5170509 11.6408928
## 232 233 234 235 236 237 238
## 7.4024997 1.6749415 -2.1052469 8.9489404 11.8127195 11.1826881 7.5170509
## 239 240 241 242 243 244 245
## 11.9845463 12.2136486 12.9582312 14.0464672 12.8436800 11.9845463 15.4783568
## 246 247 248 249 250 251 252
## 14.9628765 11.6408928 13.8173649 11.5263416 10.5526567 11.5836172 11.3545149
## 253 254 255 256 257 258 259
## 8.6052869 1.0449101 13.0155067 13.5882626 0.3576031 -3.0789318 4.9396497
## 260 261 262 263 264 265 266
## 8.3189090 6.1997125 0.8730833 -2.3916248 7.8034288 4.6532718 12.5000265
## 267 268 269 270 271 272 273
## 7.9752555 -3.0789318 0.6439810 13.7028137 13.4737114 11.1254125 11.5836172
## 274 275 276 277 278 279 280
## 5.3978543 7.0015706 7.2306730 6.5433660 6.6006416 8.8916648 5.4551299
## 281 282 283 284 285 286 287
## -0.4442550 5.2833032 -0.7879085 -3.0789318 7.1161218 12.9582312 14.0464672
## 288 289 290 291 292 293 294
## 12.2709242 12.7864044 11.3545149 9.2353183 4.1950671 9.5789718 11.8699951
## 295 296 297 298 299 300 301
## 13.1300579 9.1780427 10.0371765 13.9319161 12.6718533 8.9489404 11.3545149
## 302 303 304 305 306 307 308
## 12.9582312 10.4381056 6.6006416 4.8823741 9.2925939 6.4288148 9.4071451
## 309 310 311 312 313 314 315
## 12.5000265 13.9319161 16.3374905 12.9009556 14.4473963 13.1873335 11.9272707
## 316 317 318 319 320 321 322
## 16.2802149 15.3638056 14.2182940 12.3281998 13.5309870 11.9272707 12.3281998
## 323 324 325 326 327 328 329
## 13.8746405 14.9628765 11.2399637 11.4690660 12.3854753 12.8436800 14.5046719
## 330 331 332 333 334 335 336
## 12.6145777 14.2182940 15.7647347 14.4473963 12.8436800 13.7028137 13.4737114
## 337 338 339 340 341 342 343
## 14.3901207 14.9628765 13.7600893 14.6764986 14.8483254 6.8297439 16.1083882
## 344 345 346 347 348 349 350
## 11.8699951 7.6888776 15.5356324 15.7074591 12.3281998 11.5263416 10.3235544
## 351 352 353 354 355 356 357
## 12.4427509 11.7554439 14.9056010 8.3189090 15.1347033 13.7600893 15.3638056
## 358 359 360 361 362 363 364
## 13.1300579 12.5573021 12.6145777 11.2399637 14.1610184 13.6455381 15.9365614
## 365 366 367 368 369 370 371
## 13.0155067 9.8080741 13.0155067 12.3281998 -3.0789318 -3.0789318 -3.0789318
## 372 373 374 375 376 377 378
## -3.0789318 -3.0789318 17.6548289 17.6548289 16.9675219 17.5975533 17.9412068
## 379 380 381 382 383 384 385
## 18.0557580 19.7167499 19.6021987 19.3158208 19.0867184 18.5139626 20.5186080
## 386 387 388 389 390 391 392
## 21.4350173 19.5449231 21.3204662 19.7167499 18.9721673 16.9102463 12.2709242
## 393 394 395 396 397 398 399
## 20.0031278 17.6548289 18.2848603 18.0557580 18.3994115 20.6904347 22.6950801
## 400 401 402 403 404 405 406
## 21.9504976 22.3514266 21.4350173 18.6285138 20.8049859 20.6904347 22.6950801
## 407 408 409 410 411 412 413
## 18.7430650 9.5789718 15.7074591 9.8080741 16.9675219 15.7074591 15.3065300
## 414 415 416 417 418 419 420
## 16.2229393 21.5495685 21.4350173 21.2631906 19.6021987 20.5186080 20.7477103
## 421 422 423 424 425 426 427
## 15.9938370 17.4257266 13.6455381 17.8839312 18.8576161 20.8049859 19.7167499
## 428 429 430 431 432 433 434
## 19.3158208 19.2585452 20.1176789 17.2538998 17.4830022 16.3374905 17.3684510
## 435 436 437 438 439 440 441
## 18.8576161 17.8839312 20.0604033 20.5758836 20.7477103 18.2275847 19.5449231
## 442 443 444 445 446 447 448
## 15.7647347 15.0201521 16.7384196 19.3730964 18.8003405 17.0247975 18.3421359
## 449 450 451 452 453 454 455
## 17.4830022 18.1130336 17.8839312 16.8529707 16.3374905 15.3638056 17.0247975
## 456 457 458 459 460 461 462
## 17.4830022 18.2848603 17.8266556 17.0247975 14.1037428 16.1656638 15.4210812
## 463 464 465 466 467 468 469
## 14.3901207 13.9891916 13.3018847 14.1610184 14.6764986 14.6192230 14.6192230
## 470 471 472 473 474 475 476
## 14.0464672 14.1610184 14.3328451 12.2709242 8.4907358 17.6548289 17.9412068
## 477 478 479 480 481 482 483
## 15.9938370 18.6857894 17.1966242 13.3018847 12.3854753 11.9845463 11.2399637
## 484 485 486 487 488 489 490
## 13.0727823 13.7600893 13.4164358 14.6192230 13.7600893 16.8529707 21.5495685
## 491 492 493 494 495 496 497
## 20.9195371 17.7693801 14.0464672 13.0727823 11.5263416 12.3281998 14.2755696
## 498 499 500 501 502 503 504
## 15.0774277 13.4164358 15.5356324 15.9365614 12.7291288 13.7600893 11.8699951
## 505 506
## 12.9582312 18.7430650