---
title: "Kolesterooli tasemele mõjuvate faktorite analüüs NHANES (National Health and Nutrition Examination Survey) andmetel"
subtitle: "Projekt õppeaines RKE142 Sissejuhatus R-i"
author: "
õppejõud O. Dunajeva
"
date: "06.05.2024
"
output:
html_document:
toc: true
toc_depth: 4
toc_float:
collapsed: false
number_sections: false
theme: default
code_folding: show
---
Käesolevas õppematerjalis on esitatud Sissejuhatus R-i kursuse projekti täitmise skeem andmestiku *NHANES.csv* näitel.
# Sissejuhatus
## Andmestiku kirjeldus
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.
## Uurimise eesmärk ja ülesanded
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:
1. Üldkolesterooli tase on seotud inimese füüsilise aktiivsusega: madalama füüsilise aktiivsusega inimestel üldkolesterooli tase on kõrgem.
2. Üldkolesterooli tase on seotud diabeedi olemasoluga: kõrgema üldkolesterooli tasemega inimestel on kõrgem diabeedi esinemise oht.
3. Üldkolesterooli tase on seotud inimese kehamassiindeksiga: kõrgema üldkolesterooli tasemega inimestel on kõrgem kehamassiindeks.
## Uuringu käik ja meetodid
Antud projektis püstitatud hüpoteeside kontrollimiseks on kasutatud andmete eeltöötluse, visualiseerimise ja kirjeldava analüüsi meetodeid.
Uuringu etapid on järgmised:
1. Andmete ettevalmistamine: andmete puhastamine (duplikaatide ja puuduvate väärtuste eemaldamine), uute tunnuste moodustamine, tunnuste tüüpide teisendamine.
2. Tunnuste ja nendevaheliste seoste kirjeldamine.
3. 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.
4. 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.
# Andmete lugemine
Loeme andmeid R-i (Moodle`ist fail *NHANES.csv*), andmestik *NHANES.csv* enne peab olema salvestatud sama kausta, kus asub teie rmd-fail
```{r}
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.
```{r,warning=FALSE,message=FALSE}
library(DT)
datatable(nhanes, options=list(scrollX=1,pageLenght=5,searching = FALSE,scroller = TRUE,scrollY=200))
```
## Ülevaade andmestiku struktuurist
### Funktsioon *str()*
Kõige lihtasam ja kiirem viis esitada andmestiku struktuurist ülevaade on funktsiooni *str()* kasutamine:
```{r}
str(nhanes)
```
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:
```{r, message=FALSE,message=FALSE}
library(skimr)
skim(nhanes)
```
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öötlus
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 puhastamine
Andmestiku puhastamise etapil toimub vigaste väärtuste kontroll ja eemaldamine, duplikaatide eemaldamine, puuduvate väärtuste kontroll ja asendamine või eemaldamine, mittesobivate tunnuste kustutamine
### Duplikaatide kontroll
Duplikaatridade kontrollimiseks võib kasutada R-i funktsiooni ***duplicated()***:
```{r}
sum(duplicated(nhanes))
```
Andmestikus on 2581 duplikaati. Eemaldame neid:
```{r}
nhanes <- nhanes[!duplicated(nhanes) , ]
sum(duplicated(nhanes))
```
### Puuduvate väärtuste kontroll
Puuduvate väärtuste olemsolu kontrollimiseks kasutatakse funktsiooni ***is.na()***. Leiame puuduvate väärtuste koguarvu andmestikus
```{r}
sum(is.na(nhanes))
```
Puuduvate väärtuste koguarv on `r sum(is.na(nhanes))`.
Puuduvate väärtustega objektide arvu leidmiseks kasutatakse funktsiooni ***complete.cases()***. Leiame puuduvate väärtuste objektide arvu andmestikus
```{r}
sum(!complete.cases(nhanes))
```
Puuduvate väärtustega objektide koguarv on `r sum(!complete.cases(nhanes))`.
Leiame mitu puuduvat väärtust igal tunnusel on funktsiooni ***apply()*** abil.
```{r}
apply(is.na(nhanes),2,sum)
```
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)***:
```{r}
CharVar<- names(Filter(is.character,nhanes))
nhanes[,CharVar][is.na(nhanes[,CharVar])] <- "Unknown"
```
Kustutame tunnus "AlcoholDay", mis sisaldab liiga palju (1642) puuduvat väärtust
```{r}
nhanes <- subset(nhanes,select=-AlcoholDay)
```
Edasi eemaldame puuduvate väärtustega *NA* objekte funktsiooni ***na.omit()*** abil:
```{r}
nhanes <- na.omit(nhanes)
```
Kontrollime puuduvate väärtuste olemasolu:
```{r}
sum(!complete.cases(nhanes))
```
Nüüd puuduvaid väärtusi pole, jäi andmestikku `r sum(complete.cases(nhanes))` objekti
```{r}
sum(complete.cases(nhanes))
```
## Uute tunnuste moodustamine
Lisame andmestikule tööülesandes mainitud kehamassiindeksi BMI, millemmõõtmisühikuks on kg/m²:
```{r}
nhanes$BMI <- nhanes$Weight/((nhanes$Height/100)^2)
```
## Faktortunnuste moodustamine
Asendame edasiseks analüüsiks sümbol-tüüpi tunnused faktoriteks:
```{r}
nhanes <- as.data.frame(unclass(nhanes),stringsAsFactors = TRUE)
```
Ettevalmistatud ndmestiku struktuur:
```{r}
skim(nhanes)
```
Lõppandmestikus on 17 faktortunnust ja 16 arvulist tunnust (koos ID tunnusega).
# Andmete kirjeldav analüüs
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**.
## Arvuliste tunnuste kirjeldus
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:
```{r,warning=FALSE,message=FALSE}
library(FSA)
sapply(Filter(is.numeric, nhanes[,-1]),Summarize)
```
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:
```{r}
# 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.
## Kategoriaalsete tunnuste kirjeldus
Esitame faktortunnuste väärtuste sagedused tulpdiagrammidel. Enne filtreerime andmestikust faktortunnused.
```{r}
# 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:
```{r}
# Faktortunnuste sagedustabelid
sapply(non_num,table)
```
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.
## Uuritava tunnuse Y=TotChol analüüs
Uuritav tunnus Y=TotChol on pidev arvuline tunnus. Visualiseerime tunnuse väärtuste jaotuse:
```{r}
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:
```{r}
erind <- boxplot(nhanes$TotChol,range=3,plot=FALSE)$out
erind
```
Objektid, mis esinevad erinditena:
```{r,warning=FALSE,message=FALSE}
library(knitr) # lisame tabeli HTML-vormistamiseks paketi "knitr"
kable(nhanes[which(nhanes$TotChol%in%erind) , ])
```
Kõikidel juhtumitel anomaalne suur üldkolesterooli tase on ülekaaluga inimestel (BMI > 28).
Tunnuse arvkarakteristikud:
```{r,warning=FALSE,message=FALSE}
library(kableExtra) # lisame tabeli HTML-vormistamiseks paketi "kableExtra"
arvkar <- Summarize(nhanes$TotChol, digits = 2)
kable_styling(kable(t(arvkar)))
```
# Seoste analüüs
## Seosed arvuliste tunnuste vahel
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}`
```{r,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.
## Uuritava tunnuse seos faktortunnustega
Selleks, et vaadata sihttunuse sõltuvust mittervulistest tunnustest, koostame karpdiagrammid:
```{r}
# 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}
# 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")
}
```
Kõige märgitavam seos on tunnusega Depressed. Inimestel, kellel on dipressioon, keskmine kolesterooli tase on kõrgem.
## Tööhüpoteeside kontrollimine
**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:
```{r}
boxplot(nhanes$TotChol~nhanes$PhysActive, col="skyblue",xlab ="",ylab ="",cex.main=0.8, main="TotChol vs PhysActive")
```
ja arvkarakteristikud rühmades:
```{r}
library(FSA)
Summarize(TotChol~PhysActive,data=nhanes, digits = 3)
```
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:
```{r}
boxplot(TotChol~PhysActive+Gender, data=nhanes,at = c(1:2, 4:5),
col = c("lightblue","steelblue"))
```
ja arvkarakteristikud:
```{r}
library(FSA)
Summarize(TotChol~PhysActive+Gender,data=nhanes, digits = 3)
```
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
```{r}
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:
```{r}
nhanes$Chol_Cat <- factor(nhanes$Chol_Cat, levels=c("Normal","Borderline","High","Very High"))
```
visualiseerime uue tunnuse väärtuste jaotuse:
```{r}
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:
```{r}
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
```{r}
round(prop.table(table(nhanes$Diabetes,nhanes$Chol_Cat),2)*100,2)
```
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:
```{r}
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.
# Kokkuvõte
Antud projekti eesmärgiks oli üldkolesterooli tasemele mõjuvate faktorite leidmine.
Projekti käigus kontrolliti järgmised tööhüpoteesid:
1. Üldkolesterooli tase on seotud inimese füüsilise aktiivsusega: madalama füüsilise aktiivsusega inimestel üldkolesterooli tase on kõrgem.
2. Üldkolesterooli tase on seotud diabeedi olemasoluga: kõrgema üldkolesterooli tasemega inimestel on kõrgem diabeedi esinemise oht.
3. Ü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.