Käesolevas õppematerjalis on esitatud Sissejuhatus R-i kursuse projekti täitmise skeem andmestiku NHANES.csv näitel.
NHANES (National Health and Nutrition Examination Survey) on US riikliku tervisestatistika keskuse (NCHS) poolt läbiviidud uuringute programm, mille eesmärk on hinnata Ameerika Ühendriikide täiskasvanute ja laste tervislikku seisundit ja toitumist ning jälgida aja jooksul toimuvaid muutusi. Antud projektis kasutatud andmestik sisaldab andmeid, mis koguti NHANES uuringute käigus aastatel 2009–2012.
Andmekogum sisaldab info 7235 vähemalt 20-aastase USA tsiviilisiku kohta, mille sisuks on nende isikute füüsilisi, demograafilisi, toitumis- ja elustiiliga seotud parameetreid nagu sugu, vanus, rass, haridustase, abielustaatus, sissetulek, vaesuse tase, eluaseme tubade arv, eluaseme omandamise staatus, töötamise staatus, kaal, pikkus, pulsisagedus, süstoolne ja diastoolne vererõhk, üldkolesterooli tase, diabeedi olemasolu, tervisele enesehinnang, halba füüsilise ja mentaalse enesetunde päevade arv kuus, huvide kaoga ja dipressiooniga seotud päevade arv, unetundide arv, unehäire probleemid, füüsiline aktiivsus, suitsutamine, alkoholi, marihuaana ja narkootikumide tarvitamine, seksuaalne enesemääratlus.
Andmestiku tunnuste kirjeldused asuvad failis NHANES_descr.txt Moodle`is.
Antud projekti eesmärgiks on kolesterooli tasemele mõjuvate faktorite leidmine. Kolesterooli tase ei tähenda üht kindlat numbrit, vaid tähistab mitut näitajat, mida nimetatakse üldkolesterooliks ning heaks ja halvaks kolesterooliks. Uuritav tunnus on üldkolesterool Y=TotChol, mmol/L. Kõrgenud üldkolesterool ei ole tervislik, sest see viitab asjaolule, et hea ja halva kolesterooli suhe on paigast ära. Liigne kolesterool on üks olulisimaid südame- ja veresoonkonna haiguste tekkepõhjustest (näiteks infarkt ja insult). (https://www.benu.ee/kolesterooli-tase-millal-on-phjust-muretseda)
Sõnastame järgmised tööhüpoteesid:
Üldkolesterooli tase on seotud inimese füüsilise aktiivsusega: madalama füüsilise aktiivsusega inimestel üldkolesterooli tase on kõrgem.
Üldkolesterooli tase on seotud diabeedi olemasoluga: kõrgema üldkolesterooli tasemega inimestel on kõrgem diabeedi esinemise oht.
Üldkolesterooli tase on seotud inimese kehamassiindeksiga: kõrgema üldkolesterooli tasemega inimestel on kõrgem kehamassiindeks.
Antud projektis püstitatud hüpoteeside kontrollimiseks on kasutatud andmete eeltöötluse, visualiseerimise ja kirjeldava analüüsi meetodeid.
Uuringu etapid on järgmised:
Andmete ettevalmistamine: andmete puhastamine (duplikaatide ja puuduvate väärtuste eemaldamine), uute tunnuste moodustamine, tunnuste tüüpide teisendamine.
Tunnuste ja nendevaheliste seoste kirjeldamine.
Püstitatud tööhüpoteeside kontrollimine. Tööhüpoteesi 1 kontrollimiseks võrdleme karpdiagrammide abil uuritava tunnuse keskmised väärtused ja mediaanid vastava kategoriaalse tunnuse rühmades. Tööhüpoteesi 2 kontrollimiseks jaotame uuritava tunnuse väärtused klassidesse ja kontrollime sõltuvust kahe kategoriaalse tunnuse vahel tulpdiagrammi abil. Tööhüpoteesi 3 kontrollimiseks uurime kahe tunnuse kooskäitumist hajuvusdiagrammi abil.
Järelduste tegemine.
Projekt on täidetud programmeerimiskeele R ja RStudio tarkvara kasutusel. Projekti täitmisel on kasutatud õppeine RKE142 Sissejuhatus R-i Moodle`i kursuse õppematerjale.
Loeme andmeid R-i (Moodle`ist fail NHANES.csv), andmestik NHANES.csv enne peab olema salvestatud sama kausta, kus asub teie rmd-fail
nhanes <- read.csv2("NHANES.csv", dec = ".")
Andmestiku tabelina väljastamiseks sobib funktsioon datatable() paketist “DT” (enne on vaja paketi installida ja aktiveerida install.packages(“DT”); library(“DT”)), info selle paketi kohta leiate siit: https://rstudio.github.io/DT/options.html.
library(DT)
datatable(nhanes, options=list(scrollX=1,pageLenght=5,searching = FALSE,scroller = TRUE,scrollY=200))
Kõige lihtasam ja kiirem viis esitada andmestiku struktuurist ülevaade on funktsiooni str() kasutamine:
str(nhanes)
## 'data.frame': 7235 obs. of 33 variables:
## $ ID : int 51624 51624 51624 51630 51647 51647 51647 51654 51656 51657 ...
## $ SurveyYr : chr "2009_10" "2009_10" "2009_10" "2009_10" ...
## $ Gender : chr "male" "male" "male" "female" ...
## $ Age : int 34 34 34 49 45 45 45 66 58 54 ...
## $ Race1 : chr "White" "White" "White" "White" ...
## $ Education : chr "High School" "High School" "High School" "Some College" ...
## $ MaritalStatus : chr "Married" "Married" "Married" "LivePartner" ...
## $ HHIncomeMid : int 30000 30000 30000 40000 87500 87500 87500 30000 100000 70000 ...
## $ Poverty : num 1.36 1.36 1.36 1.91 5 5 5 2.2 5 2.2 ...
## $ HomeRooms : int 6 6 6 5 6 6 6 5 10 6 ...
## $ HomeOwn : chr "Own" "Own" "Own" "Rent" ...
## $ Work : chr "NotWorking" "NotWorking" "NotWorking" "NotWorking" ...
## $ Weight : num 87.4 87.4 87.4 86.7 75.7 75.7 75.7 68 78.4 74.7 ...
## $ Height : num 165 165 165 168 167 ...
## $ Pulse : int 70 70 70 86 62 62 62 60 62 76 ...
## $ BPSysAve : int 113 113 113 112 118 118 118 111 104 134 ...
## $ BPDiaAve : int 85 85 85 75 64 64 64 63 74 85 ...
## $ TotChol : num 3.49 3.49 3.49 6.7 5.82 5.82 5.82 4.99 4.24 6.41 ...
## $ Diabetes : chr "No" "No" "No" "No" ...
## $ HealthGen : chr "Good" "Good" "Good" "Good" ...
## $ DaysPhysHlthBad: int 0 0 0 0 0 0 0 10 0 4 ...
## $ DaysMentHlthBad: int 15 15 15 10 3 3 3 0 0 0 ...
## $ LittleInterest : chr "Most" "Most" "Most" "Several" ...
## $ Depressed : chr "Several" "Several" "Several" "Several" ...
## $ SleepHrsNight : int 4 4 4 8 8 8 8 7 5 4 ...
## $ SleepTrouble : chr "Yes" "Yes" "Yes" "Yes" ...
## $ PhysActive : chr "No" "No" "No" "No" ...
## $ AlcoholDay : int NA NA NA 2 3 3 3 1 2 6 ...
## $ AlcoholYear : int 0 0 0 20 52 52 52 100 104 364 ...
## $ Smoke100n : chr "Smoker" "Smoker" "Smoker" "Smoker" ...
## $ Marijuana : chr "Yes" "Yes" "Yes" "Yes" ...
## $ HardDrugs : chr "Yes" "Yes" "Yes" "Yes" ...
## $ SexOrientation : chr "Heterosexual" "Heterosexual" "Heterosexual" "Heterosexual" ...
Funktsiooni str() rakendamise tulemusena saime teada, et andmestikus on 7235 objekti ja 33 muutujat. Esimene muutuja ID on objekti identifitseerimisnumber, mis sisuliselt ei ole tunnus, aga objekti identifikaator. Seega andmestikus on tegelikult 32 tunnust. Funktsiooni str() abil näeme ka iga tunnuse tüüpi ja rida esimest väärtust ning saame kontrollida, kas tunnuse tüübid on lugemisel õigesti määratud.
Parema ülevaate andmestiku struktuurist annab funktsioon skim() paketist skimr https://cran.r-project.org/web/packages/skimr/vignettes/skimr.html (install.packages(“skimr”)). Eraldi siin on esitatud sümboltüüpi tunnuste ja arvuliste tunnuste kirjeldused:
library(skimr)
skim(nhanes)
Name | nhanes |
Number of rows | 7235 |
Number of columns | 33 |
_______________________ | |
Column type frequency: | |
character | 17 |
numeric | 16 |
________________________ | |
Group variables | None |
Variable type: character
skim_variable | n_missing | complete_rate | min | max | empty | n_unique | whitespace |
---|---|---|---|---|---|---|---|
SurveyYr | 0 | 1.00 | 7 | 7 | 0 | 2 | 0 |
Gender | 0 | 1.00 | 4 | 6 | 0 | 2 | 0 |
Race1 | 0 | 1.00 | 5 | 8 | 0 | 5 | 0 |
Education | 14 | 1.00 | 9 | 14 | 0 | 5 | 0 |
MaritalStatus | 4 | 1.00 | 7 | 12 | 0 | 6 | 0 |
HomeOwn | 49 | 0.99 | 3 | 5 | 0 | 3 | 0 |
Work | 1 | 1.00 | 7 | 10 | 0 | 3 | 0 |
Diabetes | 2 | 1.00 | 2 | 3 | 0 | 2 | 0 |
HealthGen | 757 | 0.90 | 4 | 9 | 0 | 5 | 0 |
LittleInterest | 798 | 0.89 | 4 | 7 | 0 | 3 | 0 |
Depressed | 794 | 0.89 | 4 | 7 | 0 | 3 | 0 |
SleepTrouble | 0 | 1.00 | 2 | 3 | 0 | 2 | 0 |
PhysActive | 0 | 1.00 | 2 | 3 | 0 | 2 | 0 |
Smoke100n | 0 | 1.00 | 6 | 10 | 0 | 2 | 0 |
Marijuana | 2526 | 0.65 | 2 | 3 | 0 | 2 | 0 |
HardDrugs | 1702 | 0.76 | 2 | 3 | 0 | 2 | 0 |
SexOrientation | 2615 | 0.64 | 8 | 12 | 0 | 3 | 0 |
Variable type: numeric
skim_variable | n_missing | complete_rate | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
---|---|---|---|---|---|---|---|---|---|---|
ID | 0 | 1.00 | 61903.83 | 5889.13 | 51624.00 | 56901.50 | 62056.00 | 67003.00 | 71915.00 | ▇▇▇▇▇ |
Age | 0 | 1.00 | 47.17 | 16.95 | 20.00 | 33.00 | 46.00 | 60.00 | 80.00 | ▇▇▇▆▅ |
HHIncomeMid | 603 | 0.92 | 57779.70 | 32787.81 | 2500.00 | 30000.00 | 50000.00 | 87500.00 | 100000.00 | ▃▆▃▂▇ |
Poverty | 537 | 0.93 | 2.94 | 1.67 | 0.00 | 1.36 | 2.91 | 5.00 | 5.00 | ▃▅▃▃▇ |
HomeRooms | 55 | 0.99 | 6.14 | 2.26 | 1.00 | 4.00 | 6.00 | 7.00 | 13.00 | ▂▆▇▂▁ |
Weight | 57 | 0.99 | 82.22 | 21.23 | 37.00 | 67.10 | 79.50 | 94.10 | 230.70 | ▆▇▁▁▁ |
Height | 53 | 0.99 | 168.79 | 10.09 | 134.50 | 161.40 | 168.70 | 176.00 | 200.40 | ▁▃▇▅▁ |
Pulse | 254 | 0.96 | 72.49 | 11.92 | 40.00 | 64.00 | 72.00 | 80.00 | 136.00 | ▂▇▃▁▁ |
BPSysAve | 264 | 0.96 | 121.00 | 17.15 | 78.00 | 109.00 | 119.00 | 130.00 | 226.00 | ▂▇▂▁▁ |
BPDiaAve | 264 | 0.96 | 70.14 | 12.46 | 0.00 | 64.00 | 71.00 | 78.00 | 116.00 | ▁▁▆▇▁ |
TotChol | 390 | 0.95 | 5.07 | 1.06 | 1.53 | 4.29 | 4.99 | 5.72 | 13.65 | ▂▇▁▁▁ |
DaysPhysHlthBad | 764 | 0.89 | 3.53 | 7.74 | 0.00 | 0.00 | 0.00 | 3.00 | 30.00 | ▇▁▁▁▁ |
DaysMentHlthBad | 762 | 0.89 | 4.22 | 8.04 | 0.00 | 0.00 | 0.00 | 4.00 | 30.00 | ▇▁▁▁▁ |
SleepHrsNight | 17 | 1.00 | 6.89 | 1.34 | 2.00 | 6.00 | 7.00 | 8.00 | 12.00 | ▁▅▇▁▁ |
AlcoholDay | 2407 | 0.67 | 2.87 | 2.93 | 1.00 | 1.00 | 2.00 | 3.00 | 82.00 | ▇▁▁▁▁ |
AlcoholYear | 1409 | 0.81 | 75.70 | 103.56 | 0.00 | 3.00 | 24.00 | 104.00 | 364.00 | ▇▁▁▁▁ |
Peale andmestiku objektide ja tunnuste arvust funktsiooni skim() annab teada, et andmestikus on 17 sümboltüüpi ja 16 arvulist tunnust (üks neist on ID, mis sisuliselt ei ole tunnus). Näeme iga tunnuse korral puuduvate väärtuste arvu, saame teada puuduvate väärtuste käsitlemise vajadusest. Iga mittearvulise tunnuse korral on esitatud tunnuse erinevate väärtuste arv ja kõige sagedamini esinevatest väärtustest ülevaaade. Iga arvulise tunnse korral on esitatud tunnuse peamised arvkarakteristikud ja väärtuste sagedusjaotused.
Näeme, et andmestikus on palju puuduvate väärtustega probleemsed tunnused (SexOrientation 2615, Marijuana 2526, AlcoholDay 2407).
Andmete eeltöötluse etapil toimub andmete edasiseks analüüsiks ettevalmistamine: andmete lugemine, tunnuste tüüpide kontrollimine, puhastamine (vigaste väärtuste kontroll ja eemaldamine, duplikaatide eemaldamine, puuduvate väärtuste kontroll ja asendamine või eemaldamine, mittesobivate tunnuste kustutamine) ja ka tunnuste teisendamine ning uute tunnuste moodustamine.
Andmestiku puhastamise etapil toimub vigaste väärtuste kontroll ja eemaldamine, duplikaatide eemaldamine, puuduvate väärtuste kontroll ja asendamine või eemaldamine, mittesobivate tunnuste kustutamine
Duplikaatridade kontrollimiseks võib kasutada R-i funktsiooni duplicated():
sum(duplicated(nhanes))
## [1] 2581
Andmestikus on 2581 duplikaati. Eemaldame neid:
nhanes <- nhanes[!duplicated(nhanes) , ]
sum(duplicated(nhanes))
## [1] 0
Puuduvate väärtuste olemsolu kontrollimiseks kasutatakse funktsiooni is.na(). Leiame puuduvate väärtuste koguarvu andmestikus
sum(is.na(nhanes))
## [1] 11866
Puuduvate väärtuste koguarv on 11866.
Puuduvate väärtustega objektide arvu leidmiseks kasutatakse funktsiooni complete.cases(). Leiame puuduvate väärtuste objektide arvu andmestikus
sum(!complete.cases(nhanes))
## [1] 2703
Puuduvate väärtustega objektide koguarv on 2703.
Leiame mitu puuduvat väärtust igal tunnusel on funktsiooni apply() abil.
apply(is.na(nhanes),2,sum)
## ID SurveyYr Gender Age Race1
## 0 0 0 0 0
## Education MaritalStatus HHIncomeMid Poverty HomeRooms
## 9 4 418 366 38
## HomeOwn Work Weight Height Pulse
## 34 1 39 41 186
## BPSysAve BPDiaAve TotChol Diabetes HealthGen
## 194 194 273 1 521
## DaysPhysHlthBad DaysMentHlthBad LittleInterest Depressed SleepHrsNight
## 528 526 551 550 12
## SleepTrouble PhysActive AlcoholDay AlcoholYear Smoke100n
## 0 0 1642 984 0
## Marijuana HardDrugs SexOrientation
## 1739 1207 1808
Kui eemaldame kõik 2703 puuduvate väärtustega objekti, siis see on liiga suur info kadu. Kategoriaalsete tunnuste puhul puuduvaid väärtusi on võimalik asendada uue kategooriaga “Unknown”.
Asendame mittearvuliste tunnuste puuduvaid väärtusi väärtusega “Unknown”. Selleks esiteks leiame mittearvuliste tunnustega veergude numbrid, kasutades mittearvuliste tunnuste filtreerimist Filter(is.character,NHANES):
CharVar<- names(Filter(is.character,nhanes))
nhanes[,CharVar][is.na(nhanes[,CharVar])] <- "Unknown"
Kustutame tunnus “AlcoholDay”, mis sisaldab liiga palju (1642) puuduvat väärtust
nhanes <- subset(nhanes,select=-AlcoholDay)
Edasi eemaldame puuduvate väärtustega NA objekte funktsiooni na.omit() abil:
nhanes <- na.omit(nhanes)
Kontrollime puuduvate väärtuste olemasolu:
sum(!complete.cases(nhanes))
## [1] 0
Nüüd puuduvaid väärtusi pole, jäi andmestikku 3153 objekti
sum(complete.cases(nhanes))
## [1] 3153
Lisame andmestikule tööülesandes mainitud kehamassiindeksi BMI, millemmõõtmisühikuks on kg/m²:
nhanes$BMI <- nhanes$Weight/((nhanes$Height/100)^2)
Asendame edasiseks analüüsiks sümbol-tüüpi tunnused faktoriteks:
nhanes <- as.data.frame(unclass(nhanes),stringsAsFactors = TRUE)
Ettevalmistatud ndmestiku struktuur:
skim(nhanes)
Name | nhanes |
Number of rows | 3153 |
Number of columns | 33 |
_______________________ | |
Column type frequency: | |
factor | 17 |
numeric | 16 |
________________________ | |
Group variables | None |
Variable type: factor
skim_variable | n_missing | complete_rate | ordered | n_unique | top_counts |
---|---|---|---|---|---|
SurveyYr | 0 | 1 | FALSE | 2 | 200: 1693, 201: 1460 |
Gender | 0 | 1 | FALSE | 2 | mal: 1672, fem: 1481 |
Race1 | 0 | 1 | FALSE | 5 | Whi: 2056, Bla: 410, Mex: 292, Oth: 208 |
Education | 0 | 1 | FALSE | 6 | Som: 986, Col: 921, Hig: 667, 9 -: 398 |
MaritalStatus | 0 | 1 | FALSE | 7 | Mar: 1729, Nev: 580, Div: 298, Liv: 272 |
HomeOwn | 0 | 1 | FALSE | 4 | Own: 2084, Ren: 987, Oth: 80, Unk: 2 |
Work | 0 | 1 | FALSE | 3 | Wor: 1962, Not: 1070, Loo: 121 |
Diabetes | 0 | 1 | FALSE | 2 | No: 2786, Yes: 367 |
HealthGen | 0 | 1 | FALSE | 5 | Goo: 1251, Vgo: 993, Fai: 469, Exc: 351 |
LittleInterest | 0 | 1 | FALSE | 4 | Non: 2409, Sev: 519, Mos: 215, Unk: 10 |
Depressed | 0 | 1 | FALSE | 4 | Non: 2467, Sev: 491, Mos: 186, Unk: 9 |
SleepTrouble | 0 | 1 | FALSE | 2 | No: 2313, Yes: 840 |
PhysActive | 0 | 1 | FALSE | 2 | Yes: 1701, No: 1452 |
Smoke100n | 0 | 1 | FALSE | 2 | Non: 1641, Smo: 1512 |
Marijuana | 0 | 1 | FALSE | 3 | Yes: 1430, No: 882, Unk: 841 |
HardDrugs | 0 | 1 | FALSE | 3 | No: 2187, Yes: 532, Unk: 434 |
SexOrientation | 0 | 1 | FALSE | 4 | Het: 2166, Unk: 884, Bis: 63, Hom: 40 |
Variable type: numeric
skim_variable | n_missing | complete_rate | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
---|---|---|---|---|---|---|---|---|---|---|
ID | 0 | 1 | 61555.93 | 5855.86 | 51624.00 | 56580.00 | 61420.00 | 66584.00 | 71915.00 | ▇▇▇▇▇ |
Age | 0 | 1 | 47.13 | 17.04 | 20.00 | 33.00 | 46.00 | 60.00 | 80.00 | ▇▇▇▆▅ |
HHIncomeMid | 0 | 1 | 56589.76 | 32521.41 | 2500.00 | 30000.00 | 50000.00 | 87500.00 | 100000.00 | ▃▆▃▂▇ |
Poverty | 0 | 1 | 2.90 | 1.66 | 0.00 | 1.33 | 2.82 | 4.86 | 5.00 | ▃▅▃▃▇ |
HomeRooms | 0 | 1 | 6.12 | 2.21 | 1.00 | 5.00 | 6.00 | 7.00 | 13.00 | ▂▆▇▂▁ |
Weight | 0 | 1 | 83.45 | 21.02 | 39.10 | 68.30 | 80.90 | 95.10 | 223.00 | ▆▇▁▁▁ |
Height | 0 | 1 | 169.57 | 9.85 | 141.20 | 162.40 | 169.60 | 176.60 | 200.40 | ▁▆▇▅▁ |
Pulse | 0 | 1 | 72.19 | 11.68 | 40.00 | 64.00 | 72.00 | 80.00 | 128.00 | ▁▇▅▁▁ |
BPSysAve | 0 | 1 | 121.03 | 17.01 | 78.00 | 110.00 | 119.00 | 129.00 | 226.00 | ▂▇▂▁▁ |
BPDiaAve | 0 | 1 | 70.19 | 12.52 | 0.00 | 63.00 | 71.00 | 78.00 | 116.00 | ▁▁▇▇▁ |
TotChol | 0 | 1 | 5.07 | 1.07 | 1.53 | 4.29 | 4.99 | 5.72 | 13.65 | ▂▇▁▁▁ |
DaysPhysHlthBad | 0 | 1 | 3.56 | 7.76 | 0.00 | 0.00 | 0.00 | 3.00 | 30.00 | ▇▁▁▁▁ |
DaysMentHlthBad | 0 | 1 | 4.04 | 7.82 | 0.00 | 0.00 | 0.00 | 4.00 | 30.00 | ▇▁▁▁▁ |
SleepHrsNight | 0 | 1 | 6.87 | 1.34 | 2.00 | 6.00 | 7.00 | 8.00 | 12.00 | ▁▅▇▁▁ |
AlcoholYear | 0 | 1 | 72.37 | 101.67 | 0.00 | 2.00 | 24.00 | 104.00 | 364.00 | ▇▁▁▁▁ |
BMI | 0 | 1 | 28.95 | 6.65 | 15.02 | 24.32 | 27.89 | 32.27 | 69.04 | ▆▇▂▁▁ |
Lõppandmestikus on 17 faktortunnust ja 16 arvulist tunnust (koos ID tunnusega).
Kirjeldava andmeanalüüsi etapil esitatakse tunnuste väärtuste jaotuse diagrammid, sagedustabelid, аrvulised karakteristikud ning tehakse ka erindite analüüs.
Antud projekti eesmärgiks on üldkolesterooli tasemele mõjuvate faktorite leidmine ehk uuritavaks tunnuseks on Y=TotChol.
Filtreerime andmestikust arvulised tunnused välja (peale tunnust ID) ja leiame tunnuste kõige olulisemad arvkarakteristikud. Andmestiku arvuliste tunnuste kõik valjalikud arvkarakteristikud on võimalik saada paketi FSA (kui see pakett ei ole veel installitud, on vaja installida: install.packages(“FSA”)) funktsiooni Summarize() abil.
Arvuliste tunnuste arvkarakteristikud:
library(FSA)
sapply(Filter(is.numeric, nhanes[,-1]),Summarize)
## $Age
## n mean sd min Q1 median Q3
## 3153.00000 47.13448 17.03794 20.00000 33.00000 46.00000 60.00000
## max
## 80.00000
##
## $HHIncomeMid
## n mean sd min Q1 median Q3 max
## 3153.00 56589.76 32521.41 2500.00 30000.00 50000.00 87500.00 100000.00
##
## $Poverty
## n mean sd min Q1 median
## 3153.0000000 2.8977513 1.6621291 0.0000000 1.3300000 2.8200000
## Q3 max percZero
## 4.8600000 5.0000000 0.8563273
##
## $HomeRooms
## n mean sd min Q1 median
## 3153.000000 6.121789 2.211188 1.000000 5.000000 6.000000
## Q3 max
## 7.000000 13.000000
##
## $Weight
## n mean sd min Q1 median Q3
## 3153.00000 83.45094 21.02460 39.10000 68.30000 80.90000 95.10000
## max
## 223.00000
##
## $Height
## n mean sd min Q1 median
## 3153.000000 169.571266 9.851191 141.200000 162.400000 169.600000
## Q3 max
## 176.600000 200.400000
##
## $Pulse
## n mean sd min Q1 median Q3
## 3153.00000 72.18522 11.68240 40.00000 64.00000 72.00000 80.00000
## max
## 128.00000
##
## $BPSysAve
## n mean sd min Q1 median Q3
## 3153.00000 121.03013 17.00711 78.00000 110.00000 119.00000 129.00000
## max
## 226.00000
##
## $BPDiaAve
## n mean sd min Q1 median
## 3153.0000000 70.1896606 12.5166714 0.0000000 63.0000000 71.0000000
## Q3 max percZero
## 78.0000000 116.0000000 0.3488741
##
## $TotChol
## n mean sd min Q1 median
## 3153.000000 5.070466 1.071470 1.530000 4.290000 4.990000
## Q3 max
## 5.720000 13.650000
##
## $DaysPhysHlthBad
## n mean sd min Q1 median
## 3153.000000 3.563907 7.759990 0.000000 0.000000 0.000000
## Q3 max percZero
## 3.000000 30.000000 65.429749
##
## $DaysMentHlthBad
## n mean sd min Q1 median
## 3153.000000 4.037425 7.818402 0.000000 0.000000 0.000000
## Q3 max percZero
## 4.000000 30.000000 58.166825
##
## $SleepHrsNight
## n mean sd min Q1 median
## 3153.000000 6.865842 1.343136 2.000000 6.000000 7.000000
## Q3 max
## 8.000000 12.000000
##
## $AlcoholYear
## n mean sd min Q1 median Q3
## 3153.00000 72.36949 101.67172 0.00000 2.00000 24.00000 104.00000
## max percZero
## 364.00000 17.50714
##
## $BMI
## n mean sd min Q1 median
## 3153.000000 28.950780 6.652804 15.024439 24.316376 27.888843
## Q3 max
## 32.271757 69.037786
Visualiseerime arvuliste tunnuste jaotused histogrammide ja karpdiagrammide abil. Sellisel etapil jätame uuritava tunnuse Y=TotChol välja ja uurime selle jaotuse eraldi detailsemalt. Kõige parem on panna iga tunnuse histogramm ja karpdiagrammide kõrvuti. Karpdiagrammidel punase punktiga on märgistatud keskväärtuse punkt:
# Arvuliste tunnuste jaotuste visualiseerimine
par(mfrow = c(2, 2))
numvar <- Filter(is.numeric, nhanes[,-1])
numvar <- subset(numvar,select=-TotChol)
for (i in 1:ncol(numvar)){
hist(numvar[,i], col="skyblue",ylab="Sagedus",
xlab=names(numvar)[i], main="Sageduste histogramm",
cex.main=0.9,cex.axis=0.7,cex.lab=0.8)
boxplot(numvar[,i], col="skyblue", horizontal=1,
xlab=names(numvar)[i], main="Karpdiagramm",
cex.main=0.9, cex.axis=0.7,cex.lab=0.8)
points(mean(numvar[,i]), 1, col = "red", pch = 18)
text(mean(numvar[,i]), 0.95, "mean", col="red", cex=0.5)
}
Näeme, et tunnus Age on praktiliselt ühtlase jaotusega. Vasakpoolse asümmeetriaga on tunnused Income, Poverty ja diastoolne vererõhk. Tunnused Height ja SleepHrsNight. Ülejäänud tunnused on parempoolse asümmeetriaga. Praktiliselt kõikidel tunnustel (peale Age, Income ja poverty) on erindid, kuid need ei ole vigased väärtused, need väärtused on väärtuste mõistlikes piirides.
Esitame faktortunnuste väärtuste sagedused tulpdiagrammidel. Enne filtreerime andmestikust faktortunnused.
# Faktortunnuste jaotuste visualiseerimine
non_num <-Filter(is.factor, nhanes)
par(mfrow = c(2, 2))
par(mar=c(7,4,4,2))
for (i in 1:ncol(non_num)){
barplot(table(non_num[,i]),
col="skyblue",ylab="Sagedus",xlab=names(non_num)[i],
main="Sageduste tulpdiagramm",cex.main=0.9,
cex.axis=0.6,cex.lab=0.6, las=2, cex.names = 0.45)
}
Esitame kategoriaalsete tunnuste väärtuste sagedustabelid:
# Faktortunnuste sagedustabelid
sapply(non_num,table)
## $SurveyYr
##
## 2009_10 2011_12
## 1693 1460
##
## $Gender
##
## female male
## 1481 1672
##
## $Race1
##
## Black Hispanic Mexican Other White
## 410 187 292 208 2056
##
## $Education
##
## 8th Grade 9 - 11th Grade College Grad High School Some College
## 178 398 921 667 986
## Unknown
## 3
##
## $MaritalStatus
##
## Divorced LivePartner Married NeverMarried Separated Unknown
## 298 272 1729 580 83 2
## Widowed
## 189
##
## $HomeOwn
##
## Other Own Rent Unknown
## 80 2084 987 2
##
## $Work
##
## Looking NotWorking Working
## 121 1070 1962
##
## $Diabetes
##
## No Yes
## 2786 367
##
## $HealthGen
##
## Excellent Fair Good Poor Vgood
## 351 469 1251 89 993
##
## $LittleInterest
##
## Most None Several Unknown
## 215 2409 519 10
##
## $Depressed
##
## Most None Several Unknown
## 186 2467 491 9
##
## $SleepTrouble
##
## No Yes
## 2313 840
##
## $PhysActive
##
## No Yes
## 1452 1701
##
## $Smoke100n
##
## Non-Smoker Smoker
## 1641 1512
##
## $Marijuana
##
## No Unknown Yes
## 882 841 1430
##
## $HardDrugs
##
## No Unknown Yes
## 2187 434 532
##
## $SexOrientation
##
## Bisexual Heterosexual Homosexual Unknown
## 63 2166 40 884
Analüüsime sagedustabelite abil faktortunnuste rühmade objektide arvud. Kui rühmas on vähe objekti, siis ei saa teha üldistusi vähearvulise rühma põhjal. Minimaalne soovitav objektide arv rühmas, et oleks võimalik üldistusi teha on 15-20. Kui rühmas on vaid üks objekt, rühma standardhälbe arvutamisel tekib jagamine nulliga, ja rühma kõik arvkarakteristikud ei ole võimalik leida. Väikesed rühmad tuleb analüüsist välja jätta või suuremaks teha rühmade ühendamise teel. Antud näite korral probleemsed rühmad on rühmad väärtusega “Unknown”, mis olid tehtud puuduvate väärtuste eemaldamise etapil. Osutub, et puuduvate väärtustega objektid oli mõistlik eemaldada, peale tunnust SexOrientation, kus väärtusega “Unknown” on 884 objekti.
Uuritav tunnus Y=TotChol on pidev arvuline tunnus. Visualiseerime tunnuse väärtuste jaotuse:
par(mfrow = c(1, 2))
hist(nhanes$TotChol, col="skyblue",ylab="Sagedus",
xlab="HDL-kolesterooli tase", main="Sageduste histogramm",cex.main=0.9)
boxplot(nhanes$TotChol, col="skyblue", horizontal=1,
xlab="HDL-kolesterooli tase", main="Karpdiagramm",
cex.main=0.9,range=3)
points(mean(nhanes$TotChol), 1, col = "red", pch = 18)
text(mean(nhanes$TotChol), 0.95, "mean", col="red", cex=0.5)
Tunnuse TotChol jaotus on parempoolse asümmeetriaga, on olemas rida erindeid.
Erindite ehk anomaalväärtuste analüüs. Karpdiagrammi parameeter range lubab eraldada vaid olulisemaid erindeid (standardne väärtus: range=1.5, parameetrit on võimalik suurendada olulisemate erindite eraldamiseks). Kui parameeter range=3, siis on olemas kolm olulisemat erindit paremalt. Erindite väärtused:
erind <- boxplot(nhanes$TotChol,range=3,plot=FALSE)$out
erind
## [1] 13.65 12.28 10.29
Objektid, mis esinevad erinditena:
library(knitr) # lisame tabeli HTML-vormistamiseks paketi "knitr"
kable(nhanes[which(nhanes$TotChol%in%erind) , ])
ID | SurveyYr | Gender | Age | Race1 | Education | MaritalStatus | HHIncomeMid | Poverty | HomeRooms | HomeOwn | Work | Weight | Height | Pulse | BPSysAve | BPDiaAve | TotChol | Diabetes | HealthGen | DaysPhysHlthBad | DaysMentHlthBad | LittleInterest | Depressed | SleepHrsNight | SleepTrouble | PhysActive | AlcoholYear | Smoke100n | Marijuana | HardDrugs | SexOrientation | BMI | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1692 | 62146 | 2009_10 | male | 43 | White | Some College | Married | 30000 | 1.12 | 10 | Own | NotWorking | 91.2 | 177.9 | 100 | 139 | 96 | 13.65 | No | Fair | 0 | 7 | Several | Several | 8 | No | No | 208 | Smoker | No | Yes | Heterosexual | 28.81661 |
2013 | 64229 | 2011_12 | female | 50 | White | High School | Married | 12500 | 0.73 | 8 | Rent | Working | 97.6 | 163.5 | 84 | 120 | 78 | 12.28 | No | Good | 0 | 0 | None | None | 5 | No | Yes | 0 | Non-Smoker | Yes | No | Heterosexual | 36.51021 |
2060 | 64497 | 2011_12 | male | 60 | White | 8th Grade | NeverMarried | 22500 | 1.39 | 3 | Own | NotWorking | 89.9 | 165.7 | 86 | 143 | 96 | 10.29 | Yes | Fair | 20 | 1 | None | Most | 7 | Yes | No | 0 | Smoker | Unknown | No | Unknown | 32.74271 |
Kõikidel juhtumitel anomaalne suur üldkolesterooli tase on ülekaaluga inimestel (BMI > 28).
Tunnuse arvkarakteristikud:
library(kableExtra) # lisame tabeli HTML-vormistamiseks paketi "kableExtra"
arvkar <- Summarize(nhanes$TotChol, digits = 2)
kable_styling(kable(t(arvkar)))
n | mean | sd | min | Q1 | median | Q3 | max |
---|---|---|---|---|---|---|---|
3153 | 5.07 | 1.07 | 1.53 | 4.29 | 4.99 | 5.72 | 13.65 |
Visualiseerime seoseid andmestiku arvuliste tunnuste vahel funktsiooni plot() abil. Suure tunnuste arvu visualiseerimiseks kasutage koodiploki optsioonides fig.height=10, fig.width=19:
{r,message=FALSE,warning=FALSE, fig.height=10, fig.width=19}
numvar <- Filter(is.numeric, nhanes[,-1])
# Seosed arvuliste tunnuste vahel
plot(numvar,pch=20,col="steelblue")
Mind huvitab sihttunnuse Y=TotChol seos teiste arvulite tunnustega. Antud andmestikus tugevad seosed tunnusega Y=TotChol puuduvad. On olemas nõrk kasvav sõltuvus tunnuse “TotChol” tunnustega “Pulse”, “BPDiaAve” ja “SleepHrsNight” ehk inimestel, kellel on kõrgem pulssisagedus, diastoolne vererõhk ja kes rohkem magab, nendel on kolesterooli tase kõrgem.
Selleks, et vaadata sihttunuse sõltuvust mittervulistest tunnustest, koostame karpdiagrammid:
# Seos faktortunnuste vahel
par(mfrow=c(2,2))
par(mar=c(5,4,4,2))
for (i in 1:ncol(non_num)){
boxplot(nhanes$TotChol~non_num[,i],
col="skyblue",xlab ="",ylab ="",las=2,
cex.axis=0.5,cex.lab=0.7,cex.main=0.8,
main=paste("TotChol vs" ,names(non_num)[i]))
}
Lisame diagrammidele ka arvkarakteristikud rühmades:
# Rühmade arvkarakteristikud
library(FSA)
for (i in 1:ncol(non_num)){
tabel <- Summarize(nhanes$TotChol~non_num[,i], digits=2)
names(tabel)[1] <- names(non_num)[i]
print(tabel)
cat("\n")
}
## SurveyYr n mean sd min Q1 median Q3 max
## 1 2009_10 1693 5.13 1.07 2.69 4.34 5.04 5.77 13.65
## 2 2011_12 1460 5.00 1.07 1.53 4.27 4.94 5.64 12.28
##
## Gender n mean sd min Q1 median Q3 max
## 1 female 1481 5.17 1.08 1.53 4.42 5.07 5.79 12.28
## 2 male 1672 4.98 1.06 2.17 4.22 4.91 5.64 13.65
##
## Race1 n mean sd min Q1 median Q3 max
## 1 Black 410 4.91 0.96 2.82 4.22 4.84 5.56 8.15
## 2 Hispanic 187 5.04 1.03 2.66 4.28 4.99 5.64 7.94
## 3 Mexican 292 5.04 1.01 2.43 4.40 4.97 5.67 8.61
## 4 Other 208 4.93 1.03 2.79 4.16 4.81 5.54 8.87
## 5 White 2056 5.12 1.11 1.53 4.34 5.04 5.77 13.65
##
## Education n mean sd min Q1 median Q3 max
## 1 8th Grade 178 4.93 1.10 2.43 4.23 4.98 5.66 10.29
## 2 9 - 11th Grade 398 5.08 1.04 2.17 4.32 5.07 5.69 8.82
## 3 College Grad 921 5.04 1.01 2.79 4.29 4.97 5.59 9.90
## 4 High School 667 5.08 1.15 2.30 4.27 4.97 5.74 12.28
## 5 Some College 986 5.11 1.07 1.53 4.32 5.02 5.77 13.65
## 6 Unknown 3 6.30 1.81 4.22 5.72 7.21 7.34 7.47
##
## MaritalStatus n mean sd min Q1 median Q3 max
## 1 Divorced 298 5.27 1.19 2.79 4.40 5.11 5.99 9.05
## 2 LivePartner 272 4.95 1.05 1.53 4.22 4.91 5.59 8.82
## 3 Married 1729 5.10 1.07 2.17 4.34 5.04 5.72 13.65
## 4 NeverMarried 580 4.88 0.99 2.74 4.22 4.78 5.48 10.29
## 5 Separated 83 5.09 0.93 3.23 4.56 5.02 5.56 8.09
## 6 Unknown 2 4.66 0.09 4.60 4.63 4.66 4.70 4.73
## 7 Widowed 189 5.26 1.11 2.40 4.42 5.28 6.00 8.04
##
## HomeOwn n mean sd min Q1 median Q3 max
## 1 Other 80 4.93 1.10 2.66 4.27 4.84 5.51 8.61
## 2 Own 2084 5.13 1.08 1.53 4.36 5.07 5.77 13.65
## 3 Rent 987 4.96 1.04 2.40 4.22 4.86 5.59 12.28
## 4 Unknown 2 4.95 0.20 4.81 4.88 4.95 5.02 5.09
##
## Work n mean sd min Q1 median Q3 max
## 1 Looking 121 5.19 1.04 3.23 4.53 5.02 5.84 8.25
## 2 NotWorking 1070 5.08 1.17 1.53 4.27 5.02 5.74 13.65
## 3 Working 1962 5.06 1.02 2.40 4.32 4.99 5.69 12.28
##
## Diabetes n mean sd min Q1 median Q3 max
## 1 No 2786 5.10 1.05 1.53 4.35 5.04 5.74 13.65
## 2 Yes 367 4.83 1.20 2.17 3.98 4.71 5.50 10.29
##
## HealthGen n mean sd min Q1 median Q3 max
## 1 Excellent 351 5.10 1.07 2.90 4.34 4.99 5.72 9.90
## 2 Fair 469 5.03 1.19 2.17 4.27 4.99 5.69 13.65
## 3 Good 1251 5.03 0.99 2.74 4.29 4.97 5.66 12.28
## 4 Poor 89 5.25 1.38 2.87 4.27 5.20 6.13 9.34
## 5 Vgood 993 5.11 1.08 1.53 4.34 5.04 5.74 9.31
##
## LittleInterest n mean sd min Q1 median Q3 max
## 1 Most 215 5.25 1.08 2.40 4.45 5.25 5.90 8.22
## 2 None 2409 5.05 1.06 1.53 4.29 4.99 5.69 12.28
## 3 Several 519 5.11 1.13 2.43 4.33 5.02 5.72 13.65
## 4 Unknown 10 5.12 1.26 3.03 4.22 5.40 6.08 6.70
##
## Depressed n mean sd min Q1 median Q3 max
## 1 Most 186 5.25 1.13 2.40 4.41 5.28 5.87 10.29
## 2 None 2467 5.05 1.05 1.53 4.29 4.99 5.68 12.28
## 3 Several 491 5.09 1.13 2.43 4.29 5.02 5.74 13.65
## 4 Unknown 9 5.10 1.34 3.03 3.96 5.43 6.18 6.70
##
## SleepTrouble n mean sd min Q1 median Q3 max
## 1 No 2313 5.07 1.07 2.43 4.29 4.99 5.69 13.65
## 2 Yes 840 5.08 1.07 1.53 4.32 5.02 5.72 10.29
##
## PhysActive n mean sd min Q1 median Q3 max
## 1 No 1452 5.08 1.10 1.53 4.34 5.00 5.72 13.65
## 2 Yes 1701 5.06 1.05 2.40 4.29 4.99 5.69 12.28
##
## Smoke100n n mean sd min Q1 median Q3 max
## 1 Non-Smoker 1641 5.09 1.04 2.30 4.37 5.02 5.69 12.28
## 2 Smoker 1512 5.05 1.10 1.53 4.27 4.97 5.72 13.65
##
## Marijuana n mean sd min Q1 median Q3 max
## 1 No 882 5.12 1.05 2.69 4.38 5.04 5.69 13.65
## 2 Unknown 841 5.07 1.12 2.17 4.27 5.02 5.77 10.29
## 3 Yes 1430 5.04 1.05 1.53 4.29 4.97 5.69 12.28
##
## HardDrugs n mean sd min Q1 median Q3 max
## 1 No 2187 5.06 1.04 2.69 4.32 5.02 5.69 12.28
## 2 Unknown 434 4.93 1.14 2.17 4.14 4.85 5.59 9.05
## 3 Yes 532 5.21 1.14 1.53 4.42 5.14 5.90 13.65
##
## SexOrientation n mean sd min Q1 median Q3 max
## 1 Bisexual 63 4.82 1.00 2.79 4.22 4.81 5.36 8.09
## 2 Heterosexual 2166 5.08 1.06 1.53 4.34 4.99 5.69 13.65
## 3 Homosexual 40 5.02 1.09 3.05 4.22 4.99 5.79 7.01
## 4 Unknown 884 5.07 1.11 2.17 4.27 5.02 5.77 10.29
Kõige märgitavam seos on tunnusega Depressed. Inimestel, kellel on dipressioon, keskmine kolesterooli tase on kõrgem.
Tööhüpotees 1. Üldkolesterooli tase on seotud inimese füüsilise aktiivsusega: madalama füüsilise aktiivsusega inimestel üldkolesterooli tase on kõrgem.
Selle hüpoteesi kontrollimiseks vaatleme järgmist karpdiagrammi:
boxplot(nhanes$TotChol~nhanes$PhysActive, col="skyblue",xlab ="",ylab ="",cex.main=0.8, main="TotChol vs PhysActive")
ja arvkarakteristikud rühmades:
library(FSA)
Summarize(TotChol~PhysActive,data=nhanes, digits = 3)
## PhysActive n mean sd min Q1 median Q3 max
## 1 No 1452 5.082 1.097 1.53 4.34 5.005 5.72 13.65
## 2 Yes 1701 5.061 1.049 2.40 4.29 4.990 5.69 12.28
Näeme, et keskmised rühmades on praktiliselt võrdsed, ehk üldkolesterooli tase ei sõltu inimese füüsilisest aktiivsusest.
Võime veel uurida seost naiste ja meeste rühmades eraldi, et kontrollida sõltuvust soost:
boxplot(TotChol~PhysActive+Gender, data=nhanes,at = c(1:2, 4:5),
col = c("lightblue","steelblue"))
ja arvkarakteristikud:
library(FSA)
Summarize(TotChol~PhysActive+Gender,data=nhanes, digits = 3)
## PhysActive Gender n mean sd min Q1 median Q3 max
## 1 No female 712 5.191 1.080 1.53 4.465 5.07 5.87 9.31
## 2 Yes female 769 5.151 1.081 2.40 4.400 5.07 5.77 12.28
## 3 No male 740 4.977 1.104 2.17 4.263 4.86 5.64 13.65
## 4 Yes male 932 4.986 1.017 2.69 4.220 4.94 5.64 9.90
Naistel üldiselt keskmine kolesterooli tase on kõrgem, kui meestel, kuid füüsilise aktiivsusega seost pole.
Tööhüpotees 2. Üldkolesterooli tase on seotud diabeedi olemasoluga: kõrgema üldkolesterooli tasemega inimestel on kõrgem diabeedi esinemise oht.
Selle hüpoteesi kontrollimiseks jaotame uuritava tunnuse väärtused klassidesse ja kontrollime sõltuvust kahe kategoriaalse tunnuse vahel tulpdiagrammi abil. Esiteks kodeerime uuritava tunnuse Y=TotChol väärtused järgmise eeskirja järgi (https://www.benu.ee/kolesterooli-tase-millal-on-phjust-muretseda):
< 5 Normal
[5-6.5) Borderline
[6.5-7.8] High
7.8< Very High
nhanes$Chol_Cat <- ifelse(nhanes$TotChol<5, "Normal",
ifelse(nhanes$TotChol>=5&nhanes$TotChol<6.5,"Borderline",
ifelse(nhanes$TotChol>=6.5&nhanes$TotChol<7.8, "High",
"Very High")))
Muudame uue tunnuse faktoriks ja järjestame selle tasemed loodiliselt:
nhanes$Chol_Cat <- factor(nhanes$Chol_Cat, levels=c("Normal","Borderline","High","Very High"))
visualiseerime uue tunnuse väärtuste jaotuse:
barplot(prop.table(table(nhanes$Chol_Cat))*100, col="skyblue", ylab="Suhteline sagedus, %", xlab="Kolesterooli tasemed", main="Suhteliste sageduste tulpdiagramm", cex.main=0.9)
Näeme, et kõrgendatud kolesterooli tasemega inimesi andmestikus on ca 10%.
Uurime kolesterooli taseme seost diabeedi olemasoluga tulpdiagrammi abil:
par(mar=c(4,6,4,4),mgp=c(5,1,0))
barplot(prop.table(table(nhanes$Diabetes,nhanes$Chol_Cat),2)*100,
col =c ("skyblue","steelblue"),horiz=T , las=1, ylab="Kolesterooli tase", cex.names = 0.7, main = "Kolesterool ja diabeet",cex.main=0.9)
legend("topright",legend=c("No", "Yes"),title="Diabetes",title.cex=0.7,
x.intersp=0.2,bty="n", fill = c("skyblue","steelblue"),
inset=c(-0.1,0), xpd=TRUE,cex=0.7)
ja sama diagramm tabeli kujul
round(prop.table(table(nhanes$Diabetes,nhanes$Chol_Cat),2)*100,2)
##
## Normal Borderline High Very High
## No 85.76 91.76 87.56 86.00
## Yes 14.24 8.24 12.44 14.00
Tegelikult suurem diabeedi diagnoosiga inimeste osakaal on rühmas, kus kolesterooli tase on normaalne ja kõige väiksem see osakaal on nenede inimeste seas, kelle kolesterooli tase on piiripealne.
Tööhüpotees 3. Üldkolesterooli tase on seotud inimese kehamassiindeksiga: kõrgema üldkolesterooli tasemega inimestel on kõrgem kehamassiindeks.
Selle hüpoteesi kontrollimiseks vaatleme järgmist hajuvusdiagrammi, kus eraldame veel värviga meeste ja naiste rühmad:
with(nhanes, plot(BMI, TotChol, main = "BMI vs TotChol", col=Gender,pch=20))
legend("topright", legend=c("male","femle"),
col = unique(nhanes$Gender),pch=18,bty = "n")
Hajuvusdiagramm ei näita selget kahanevat seost BMI ja üldkolesterooli taseme vahel ei üldiselt ega ka meeste ja naiste rühmades eraldi.
Antud projekti eesmärgiks oli üldkolesterooli tasemele mõjuvate faktorite leidmine.
Projekti käigus kontrolliti järgmised tööhüpoteesid:
Üldkolesterooli tase on seotud inimese füüsilise aktiivsusega: madalama füüsilise aktiivsusega inimestel üldkolesterooli tase on kõrgem.
Üldkolesterooli tase on seotud diabeedi olemasoluga: kõrgema üldkolesterooli tasemega inimestel on kõrgem diabeedi esinemise oht.
Üldkolesterooli tase on seotud inimese kehamassiindeksiga: kõrgema üldkolesterooli tasemega inimestel on kõrgem kehamassiindeks.
Projekti tulemusena tööhüpoteesid ei leidnud kinnitust: üldkolesterooli tase antud andmestikus ei sõltu inimese füüsilisest aktiivsusest ega diabeedi olemasolust või kehamassiindeksist.
Samas on leitud, et
naistel üldkolesterooli tase on keskmiselt kõrgem, kui meestel;
nimestel, kellel on dipressioon, keskmine kolesterooli tase on kõrgem;
on olemas nõrk kasvav sõltuvus tunnuse “TotChol” tunnustega “Pulse”, “BPDiaAve” ja “SleepHrsNight” ehk inimestel, kellel on kõrgem pulssisagedus, diastoolne vererõhk ja kes rohkem magab, nendel on kolesterooli tase kõrgem.