Ukážka kódu
library(readxl)
library (DT)
<- read_xlsx("C:/Users/julka/Desktop/Sleep_Efficiency.xlsx")
dat
datatable(dat, options= list(pageLength=10), caption="Súbor údajov o účinnosti spánku")
Každý z nás vie, aké dôležité je mať kvalitný spánok. Je to obdobie, kedy sa naše telo a myseľ regenerujú, a pripravujú nás na ďalší deň plný výziev. Napriek tomu, že spánok je neodmysliteľnou súčasťou nášho života, mnohí z nás trpia problémami so spaním, čo má negatívny vplyv na našu celkovú kvalitu života.
V súčasnej dobe, kedy sme neustále vystavení stresu, rýchlemu tempu života a záplave informácií, je dôležitejšie ako kedykoľvek predtým skúmať a porozumieť faktorom, ktoré ovplyvňujú kvalitu nášho spánku. Je to výzva, ktorá nás motivuje k hlbšiemu pohľadu na túto problematiku.
V tejto súvislosti som sa rozhodla analyzovať dataset o kvalite spánku, aby som získala dôležité poznatky a porozumela faktorom, ktoré prispievajú k dobrému alebo zlému spánku. Táto analýza nám umožní lepšie pochopiť, aké sú najčastejšie problémy so spaním, aký vplyv majú naše životné návyky, životné prostredie a iné faktory na kvalitu spánku.
Cieľom tejto analýzy je poskytnúť relevantné informácie a zistenia, ktoré môžu byť nápomocné pre jednotlivcov, ktorí sa snažia zlepšiť svoj spánok a vytvoriť si zdravé spánkové návyky. Verím, že nám to poskytne cenné poznatky a otvoria sa pred nami nové možnosti na to, ako efektívne riešiť problémy so spaním. Je to výzva, ktorú nemožno podceňovať, pretože kvalitný spánok je základným pilierom nášho fyzického a duševného zdravia.
Takže poďme sa spoločne pustiť do tejto analýzy a objavovať tajomstvá spánku, s cieľom vytvoriť lepšie a zdravšie spánkové návyky pre seba a pre celú spoločnosť. Verím, že naše úsilie a záujem môžu mať vplyv na našu kvalitu života a priniesť pozitívne zmeny do nášho každodenného existovania.
Rozhodla som sa venovať spracovaniu datasetu týkajúceho sa účinnosti spánku. Tento súbor údajov je k dispozícii na platforme GitHub, konkrétne v repozitári Súbor údajov o účinnosti spánku. Tento dataset poskytuje cenné informácie o spánkových návykoch a ich vplyve na celkovú kvalitu života.
Sledovaný súbor obsahuje informácie o 452 respondentoch, čo je relatívne veľký súbor dát. Tento fakt nám umožňuje vyvodiť pomerne objektívne a všeobecné závery z výsledkov skúmania. Každá sledovaná osoba je identifikovaná jedinečným ID a zaznamenáva sa aj jej vek a pohlavie.
Súbor údajov je štruktúrovaný do niekoľkých stĺpcov, ktoré poskytujú podrobnejšie informácie. Okrem základných informácií o každom respondentovi sa zaznamenávajú aj napríklad údaje týkajúce sa trvania spánku, doby zaspávania, času prebúdzania a ďalších súvisiacich faktorov. Tieto informácie nám umožňujú preskúmať rôzne aspekty spánkových návykov a ich súvislosti s účinnosťou spánku.
V nasledujúcej tabuľke je zhrnuté, aké informácie sú dostupné v uvedenom datasete:
Názov stĺpca | Popis |
---|---|
ID | jedinečný identifikátor pre každý testovaný subjekt |
Age | vek testovanej osoby |
Gender | pohlavie (muž alebo žena) |
BedTime | čas, kedy testovaná osoba každú noc ide spať |
Wakeup time | čas, kedy sa testovaná osoba každé ráno zobudí |
Sleep duration | celkový čas, počas ktorého testovaný subjekt spal (v hodinách) |
Sleep efficiency | miera podielu času stráveného v posteli ku času spánku |
REM sleep percentage | percento celkového času spánku stráveného v REM fáze |
Deep sleep percentage | percento celkového času spánku stráveného v hlbokom spánku |
Light sleep percentage | percento celkového času spánku stráveného v ľahkom spánku |
Awakenings | koľkokrát sa testovaná osoba prebudí počas noci |
Caffeine consumption | množstvo kofeínu spotrebovaného za 24 hodín pred spaním (v mg) |
Alcohol consumption | množstvo alkoholu skonzumovaného za 24 hodín pred spaním (v unciách) |
Smoking status | či testovaná osoba fajčí alebo nie |
Exercise frequency | koľkokrát testovaná osoba cvičí každý týždeň |
Najprv dáta načítame do interaktívnej tabuľky, pomocou ktorej sa dokážeme s dátami jednoducho zoznámiť, a teda neskôr ľahšie analyzovať. Vďaka vlastnostiam danej tabuľky vieme filtrovať zobrazenie len tých informácií, ktoré sú pre nás či už podstatné alebo jednoducho zaujímavé.
library(readxl)
library (DT)
<- read_xlsx("C:/Users/julka/Desktop/Sleep_Efficiency.xlsx")
dat
datatable(dat, options= list(pageLength=10), caption="Súbor údajov o účinnosti spánku")
Medzi základne informácie o respondentoch patria pohlavie a vek. V nasledujúcich grafoch sa pozrieme na pomer zastúpenia pohlaví a následne zobrazíme vekové rozloženie práve v závislosti od pohlavia.
<- table(dat[[3]])
pocty_hodnot
library(ggplot2)
library(gridExtra)
ggplot(data.frame(pocty_hodnot), aes(x = "", y = Freq, fill = names(pocty_hodnot))) +
geom_bar(stat = "identity", alpha=0.6) +
coord_polar(theta = "y") +
ggtitle("Pohlavie") +
labs(fill = "Hodnoty", xlab=FALSE, ylab=FALSE) +
scale_fill_manual(values=c("#f352af", "#5255f3"))
V grafe pohlavia Figure 1 môžeme vidieť, že výskumu sa zúčastnil takmer vyrovnaný počet žien a mužov. V nasledujúcej analýze údajov sa nebudeme zameriavať na to, či výsledky súvisia s pohlavím respondentov alebo nie. Naša analýza sa bude sústrediť na iné aspekty a faktory ovplyvňujúce účinnosť spánku.
library(ggplot2)
library(gridExtra)
library(ggridges)
<- ggplot(dat, aes(x=Age, fill=Gender)) +
gg1geom_histogram( color="#e9ecef", alpha=0.6, position = 'identity') +
labs(title = "Histogram veku respondetov", x = "Vek", y = "Počet") +
scale_fill_manual(values=c("#eb5b5b", "#5271f3"), labels = c("Muži", "Ženy"), name = "Pohlavia")
<- ggplot(dat, aes(x = Age, y = Gender, fill = Gender)) +
gg2geom_density_ridges(alpha = 0.6, scale = 1, position = "identity") +
labs(title = "Rozsadenie veku respondentov podľa pohlavia", x = "Vek", y = "") +
scale_fill_manual(values = c("#eb5b5b", "#5271f3"), labels = c("Muži", "Ženy"), name = "Pohlavia")
grid.arrange(gg1, gg2, nrow=2)
Na základe uvedeného histogramu Figure 2 môžeme vidieť, že počet respondentov je najnižší v vekovej skupine od 0 do približne 18 rokov a vo vekovej skupine nad 60 rokov. Naopak, najväčší počet žien sa nachádza vo vekovej skupine 25-40 rokov, zatiaľ čo najviac mužov je v preddôchodkovom veku, teda vo vekovej skupine 50-60 rokov. Tieto pozorovania budeme overovať pomocou výpočtu priemeru Equation 1 a mediánu.
Vzorec na priemerný vek je: \[ x_p= \frac{1}{n} \cdot\ \sum_{i=1}^n x_i \tag{1}\] kde xp je výsledný priemer, n počet prvkov a xi jednotlivé prvky
Postup na výpočet mediánu závisí od toho, či máme párny alebo nepárny počet hodnôt:
<- dat[-which(dat$Gender == "Female"), ]
data_muzi<- dat[-which(dat$Gender == "Male"), ]
data_zeny
# Výpočet hodnôt a uloženie do premennej
<- round(c( mean(data_zeny$Age), mean(data_muzi$Age)),0)
vysledky_priemer <- c( median(data_zeny$Age), median(data_muzi$Age))
vysledky_median <- c("Ženy", "Muži")
nazvy
# Generovanie tabuľky pomocou kable()
<- data.frame(Pohlavie = nazvy, Priemer = vysledky_priemer, Medián = vysledky_median)
tabulka
# Výpis tabuľky v kóde R
::kable(tabulka) knitr
Pohlavie | Priemer | Medián |
---|---|---|
Ženy | 37 | 36 |
Muži | 43 | 47 |
Po overení pozorovaní výpočtom (Figure 3) sme naozaj zistili, že tohto výskumu sa zúčastnilo najviac žien v strednom veku a mužov v preddôchodkom veku.
library(lubridate)
library(ggplot2)
# konvertovanie dátumu a času
4]] <- ymd_hms(dat[[4]])
dat[[
# vytvorenie grafu pomocou ggplot2
ggplot(dat, aes(x = format(dat[[4]], "%H:%M"))) +
labs(title = "Čas, kedy idú respondenti spať", x = "Čas", y = "Počet") +
geom_bar(fill="#52f3c5", color="#e9ecef", alpha=0.7)
V predchádzajúcom grafe Figure 4 môžeme vidieť, že pri zaspávaní značne prevláda čas 00:00. Po polnoci je rozloženie už veľmi podobné a nevidíme tam žiadne výrazné výchylky.
library(lubridate)
library(ggplot2)
# konvertovanie dátumu a času
5]] <- ymd_hms(dat[[5]])
dat[[
# vytvorenie grafu pomocou ggplot2
ggplot(dat, aes(x = format(dat[[5]], "%H:%M"))) +
labs(title = "Čas, kedy respondenti vstávaju", x = "Čas", y = "Počet") +
geom_bar(fill="#bb52f3", color="#e9ecef", alpha=0.7)
Respondenti najčastejšie stávajú o 5:00, 7:00 alebo o 9:00 hodine (Figure 5).
Tieto zistené informácie ideme bližšie analyzovať. Zaujíma nás o aké vekové kategórie sa jedná. Myslíme si, že neskoro večer idú spať predovšetkým študenti, teda veková kategória 20-25 rokov. Skoro ráno budú vstávať ľudia do práce, teda respondenti v produktívnom veku. V najbližších výpočtoch ideme zisťovať, či sú naše predikcie správne alebo nie.
library(stringr)
# vytvorenie vektoru obsahujúceho indexy riadkov, kde sa nachádza čas 00:00:00 UTC
<- str_detect(dat$Bedtime, "00:00:00")
indexy
# filtrovanie dát podľa indexov
<- dat[indexy, ]
data_filtrovanie
# Výpočet hodnôt a uloženie do premennej
<- median(data_filtrovanie$Age)
vysledky_priemer <- round(mean(data_filtrovanie$Age),0)
vysledky_median
# Generovanie tabuľky pomocou kable()
<- data.frame(Priemer = vysledky_priemer, Medián = vysledky_median)
tabulka
# Výpis tabuľky v kóde R
::kable(tabulka) knitr
Priemer | Medián |
---|---|
30 | 37 |
library(stringr)
# vytvorenie vektoru obsahujúceho indexy riadkov, kde sa nachádza čas 05:00:00 UTC
<- str_detect(dat$`Wakeup time`, "05:00:00")
indexy
# filtrovanie dát podľa indexov
<- dat[indexy, ]
data_filtrovanie
# Výpočet hodnôt a uloženie do premennej
<- median(data_filtrovanie$Age)
vysledky_priemer <- round(mean(data_filtrovanie$Age),0)
vysledky_median
# Generovanie tabuľky pomocou kable()
<- data.frame(Priemer = vysledky_priemer, Medián = vysledky_median)
tabulka
# Výpis tabuľky v kóde R
::kable(tabulka) knitr
Priemer | Medián |
---|---|
43 | 41 |
library(ggplot2)
ggplot(dat, aes(x=`Sleep duration` )) +
geom_bar( color="#e9ecef", alpha=0.6, fill="#f35277") +
labs(title = "Histogram času spánku", x = "Čas (v hodinách)", y ="Počet")
Z histogramu Figure 8 môžeme vidieť, že najviac ľudí spí 7 hodín, no tento čas sa už ráta ako hraničné minumum. Dostatok spánku, čo je viac ako 8 hodín, má percentuálne menej respondentov.
My sa budeme zaujímať respodentami, ktorí spia menej ako 7 hodín a pomocou nám dostupným dát, hľadať možné príčiny tejto čiastočnej spánkovej deprivácie.
Vďaka pestrým informáciam, ktoré sa nachádzajú v nami sledovanom súbore dát, vieme hľadať možné príčiny či súvislosti s nedostatočnou dĺžkou spánku. Do nasledujúcich grafov si teda zobrazíme dáta, ktoré by mohli súvisieť s nedostatkom spánku.
library(ggplot2)
<- dat[[6]]<7
riadky<- dat[riadky, ]
data_filtrovanie <- table(data_filtrovanie[[14]])
pocty_hodnot
# graf 1
<- ggplot(data.frame(pocty_hodnot), aes(x = "", y = Freq, fill = names(pocty_hodnot))) +
gg1 geom_bar(stat = "identity", alpha=0.6) +
coord_polar(theta = "y") +
ggtitle("Respondenti s nedostatkom spánku") +
labs(fill = "Hodnoty") +
scale_fill_manual(values=c("#f35952", "#52f359"))
<- dat[[6]]>7
riadky1<- dat[riadky1, ]
data_filtrovanie1 <- table(data_filtrovanie1[[14]])
pocty_hodnot1
# graf 2
<- ggplot(data.frame(pocty_hodnot1), aes(x = "", y = Freq, fill = names(pocty_hodnot1))) +
gg2 geom_bar(stat = "identity", alpha=0.6) +
coord_polar(theta = "y") +
ggtitle("Respondenti s dostatkom spánku") +
labs(fill = "Hodnoty") +
scale_fill_manual(values=c("#f37952", "#7ef352"))
# usporiadanie grafov do 2 stlpcov
grid.arrange(gg1, gg2,ncol=2, top = "Skupina grafov: Status fajčiara")
library(gridExtra)
library(ggplot2)
<- dat[[6]]<7
riadky<- dat[riadky, ]
data_filtrovanie <- table(data_filtrovanie[[14]])
pocty_hodnot
# graf 3
<- ggplot(data_filtrovanie, aes(x=data_filtrovanie[[12]])) +
gg3 geom_bar(color="#e9ecef", alpha=0.6, fill="#f3af52") +
labs(title = "Respondenti s nedostatkom spánku", x = "Množstvo (v mg)", y ="Počet")
<- dat[[6]]>7
riadky1<- dat[riadky1, ]
data_filtrovanie1 <- table(data_filtrovanie1[[14]])
pocty_hodnot1
# graf 4
<- ggplot(data_filtrovanie1, aes(x=data_filtrovanie1[[12]])) +
gg4 geom_bar(color="#e9ecef", alpha=0.6, fill="#5952f3") +
labs(title = "Respondenti s dostatkom spánku", x = "Množstvo (v mg)", y ="Počet")
# usporiadanie grafov do 2 stlpcov
grid.arrange(gg3, gg4,ncol=2, top = "Skupina grafov: Histogram množstva kofeínu")
library(gridExtra)
library(ggplot2)
<- dat[[6]]<7
riadky<- dat[riadky, ]
data_filtrovanie <- table(data_filtrovanie[[14]])
pocty_hodnot
# graf 5
<- ggplot(data_filtrovanie, aes(x=data_filtrovanie[[13]])) +
gg5 geom_bar(color="#e9ecef", alpha=0.6, fill="#f352db") +
labs(title = "Respondenti s nedostatkom spánku", x = "Množstvo (v oz)", y ="Počet")
<- dat[[6]]>7
riadky1<- dat[riadky1, ]
data_filtrovanie1 <- table(data_filtrovanie1[[14]])
pocty_hodnot1
# graf 6
<- ggplot(data_filtrovanie1, aes(x=data_filtrovanie1[[13]])) +
gg6 geom_bar(color="#e9ecef", alpha=0.6, fill="#52dbf3") +
labs(title = "Respondenti s dostatkom spánku", x = "Množstvo (v oz)", y ="Počet")
# usporiadanie grafov do 2 stlpcov
grid.arrange(gg5, gg6,ncol=2, top = "Skupina grafov: Histogram množstva alkoholu")
library(gridExtra)
library(ggplot2)
<- dat[[6]]<7
riadky<- dat[riadky, ]
data_filtrovanie <- table(data_filtrovanie[[14]])
pocty_hodnot
# graf 7
<- ggplot(data_filtrovanie, aes(x=data_filtrovanie[[11]])) +
gg7 geom_bar(color="#e9ecef", alpha=0.6, fill="#52acf3") +
labs(title = "Respondenti s nedostatkom spánku",x = "Počet zobudení", y ="Počet")
# graf 8
<- ggplot(data_filtrovanie1, aes(x=data_filtrovanie1[[11]])) +
gg8 geom_bar(color="#e9ecef", alpha=0.6, fill="#f3e752") +
labs(title = "Respondenti s dostatkom spánku", x = "Počet zobudení", y ="Počet")
# usporiadanie grafov do 2 stlpcov
grid.arrange(gg7, gg8, ncol=2, top = "Skupina grafov: Histogram počtu zobudení")
Teraz vieme jednoducho porovnať, či dané dáta korelujú s dĺžkou spánku. Dokážeme spozorovať nasledujúce informácie:
Takmer polovica respondentov s nedostatkom spánku označila hodnotu “Som fajčiar”. V druhej skupine grafov je takýchto ľudí percentuálne o dosť menej. Vo viacerých štúdiach a vedeckých článkoch bolo dokázané, že nikotín negatívne ovplyvňuje kvalitu spánku. Presnejšie vplýva na celkovú dĺžku spánku a taktiež skracuje dĺžku trvania hlbokej fázy.
Množstvo kofeínu je v oboch prípadoch približne rovnako zastúpene. Avšak vieme si všimnúť, že ľudí s nulovou konzumáciou kofeínu je percentuálne viacej v skupine respondentov s dostatkom spánku.
V prvej skupine grafov nie je veľké zastúpenie kategórie ľudí, ktorí sa cez noc ani raz nezobudili. V druhej skupine grafov je toto zastúpenie vyššie.
Užite alkoholu v danej situácii výrazne nekoreluje.
Podľa doteraz už vykonaných výskumov a štúdií vieme, že nikotín skracuje dĺžku trvania hlbokej fázy spánku. V tejto kapitole ideme analyzovať, či platia tieto informácie aj v našom súbore dát.
library(ggplot2)
library(gridExtra)
<- dat[[14]]=="Yes"
riadky<- dat[riadky, ]
data_filtrovanie
<-ggplot(data_filtrovanie, aes(x=data_filtrovanie[[9]])) +
graf1geom_bar(color="#e9ecef", alpha=0.6, fill="#b152f3") +
labs(title = "Fajčiari", x = "Počet percent", y = "Počet")
<- dat[[14]]=="No"
riadky1<- dat[riadky1, ]
data_filtrovanie1
<-ggplot(data_filtrovanie1, aes(x=data_filtrovanie1[[9]])) +
graf2geom_bar(color="#e9ecef", alpha=0.6, fill="#89f352") +
labs(title = "Nefajčiari", x = "Počet percent", y = "Počet")
grid.arrange(graf1, graf2, ncol=2)
Na prvý pohľad vidíme istú koreláciu dĺžky hlbokého spánku od užívania nikotínu, no pozorovanie ideme overiť výpočtom priemeru tejto hodnoty pre oba prípady.
# Výpočet hodnôt a uloženie do premennej
<- round(mean(data_filtrovanie[[9]]),2)
fajciari <- round(mean(data_filtrovanie1[[9]]),2)
nefajciari
# Generovanie tabuľky pomocou kable()
<- data.frame(Fajčiari = fajciari, Nefajčiari = nefajciari)
tabulka
# Výpis tabuľky v kóde R
::kable(tabulka, caption="Vplyv užívania nikotínu na priemerné zastúpenie hlbokého spánku") knitr
Fajčiari | Nefajčiari |
---|---|
47.89 | 55.37 |
Naozaj vidíme, že fajčenie negatívne oplyvňuje dĺžku hlbokého spánku, a teda môžeme potvrdiť pravdivosť doterajších výskumov.
Cvičenie prispieva k pokojnému a zdravému spánku. Fyzická aktivita predlžuje čas strávený v hlbokom spánku a ten je kľúčový pre regeneráciu tela. Hlboký spánok pomáha posilňovať imunitu, podporuje zdravie srdca a reguluje stres a úzkosť (Mathhew Walker, Phd. 2017).
Ideme skúmať, či respodenti s krátkou hlbokou fázou spánku naozaj vykonávajú menej fyzickej aktivity, ako tí, čo majú spánok kvalitný. Vo všeobecnosti by mal hlboký spánok tvoriť aspoň 30 % celkového času spánku, práve preto rozdelíme respodentov do dvoch skupín: tí čo majú hlboký spánok percentuálne kratší a tí, čo ho majú dlhší.
library(ggplot2)
library(gridExtra)
<- dat[[9]]<30
riadky<- dat[riadky, ]
data_filtrovanie
<-ggplot(data_filtrovanie, aes(x=data_filtrovanie[[15]])) +
graf3geom_bar(color="#e9ecef", alpha=0.6, fill="#f3527e") +
labs(title = "Hlboký spánok pod 30%", x = "Počet cvičení do týždňa", y = "Počet")
<- dat[[9]]>30
riadky1<- dat[riadky1, ]
data_filtrovanie1
<-ggplot(data_filtrovanie1, aes(x=data_filtrovanie1[[15]])) +
graf4geom_bar(color="#e9ecef", alpha=0.6, fill="#52dbf3") +
labs(title = "Hlboký spánok nad 30%", x = "Počet cvičení do týždňa", y = "Počet")
grid.arrange(graf3, graf4, ncol=2)
Vidíme, že fyzická aktivita naozaj vplýva na kvalitu spánku. Po porovnaní grafov vieme jednoducho usúdiť, že ľudia, ktorí cvičia častejšie majú hlboký spánok dlhší, ako tí, čo cvičia menej alebo necvičia vôbec.
Po dôkladnej analýze datasetu týkajúceho sa kvality spánku sme dospeli k zaujímavým záverom a poznatkom o vzťahu medzi spánkovými návykmi a životným štýlom respondentov.
Naša analýza ukázala, že existuje silná korelácia medzi čiastočnou spánkovou depriváciou a niektorými životnými faktormi. Respondenti, ktorí nefajčili, mali tendenciu mať lepšiu kvalitu spánku. Fajčenie totiž môže ovplyvniť spánkový cyklus a prispievať k nepravidelnému spánku a problémom so zaspávaním.
Ďalším faktorom, ktorý sme identifikovali, je konzumácia kofeínu. Respondenti, ktorí obmedzili príjem kofeínu, mali lepšiu spánkovú efektivitu a menej problémov so zaspávaním. Kofeín je známy stimulant, ktorý môže ovplyvniť spánkovú kvalitu a spôsobiť nespavosť, ak sa konzumuje v nadmernom množstve.
Okrem toho sme zistili, že pravidelná fyzická aktivita má pozitívny vplyv na spánok. Respondenti, ktorí sa pravidelne venujú cvičeniu, mali dlhší a kvalitnejší spánok. Fyzická aktivita môže pomôcť uvoľniť telo a myseľ a prispievať k lepšiemu spánku.
Celkovo môžeme povedať, že naša analýza datasetu o kvalite spánku nám poskytla dôležité informácie o tom, ako životný štýl môže ovplyvňovať spánok. Identifikovali sme faktory, ako fajčenie, konzumácia kofeínu a pravidelná fyzická aktivita, ktoré majú významný vplyv na spánkové návyky respondentov.
Týmto sme úspešne splnili náš pôvodný cieľ a získali nové poznatky o vzťahu medzi životným štýlom a kvalitou spánku. Naše výsledky môžu byť cenné pre ďalšie štúdie a pomôžu nám lepšie porozumieť tomu, ako sa staráme o svoj spánok a dosahujeme optimálnu kvalitu spánku.