#vprašanje a - uvoz podatkov

vedno shraniš nov RMarkdown z imenom datoteke, ko daš preber podatke pa napiše ./ime.csv, da ga najde, če ne moreš od C: dalje pisat lokacijo, vedno preveri če so podatki pravilno uvoženi

#rabimo kodo za uvoz podatkov

podatki <- read.table("./Maraton.csv", 
                      header = TRUE,    #v prvi vrstici je ime spremenljivke
                      sep = ";", 
                      dec = ",")

head(podatki)
##   ID Teža Višina Tlak Utrip Hemoglobin Hematokrit Holesterol Glukoza Spol
## 1  1   72  179.0  105    64        160         50        4.9     4.7    1
## 2  2   68  178.0  105    60        158         51        4.8     4.9    0
## 3  3   64  174.0  109    54        155         51        4.5     7.0    0
## 4  4   63  174.0  112    54        153         58        8.0     7.2    0
## 5  5   61  173.5  100    53        152         59        4.6     6.7    0
## 6  6   60  173.0   99    53        158         49        3.9     6.0    0

#vprašanje b - Opredelite enoto proučevanja: enota je posamezen atlet, velikost vzorca je 35. Spremenljivke: ID,teža…

Če pogledamo tabelo: to so razmernostne spremenljivke, to pomeni, da lahko povemo da je nekdo 2x težji oz razmerje, izjema je spol ki je nominalna kategorialna spremenljivka. Vedno bo pisalo kaj je 0 in kaj 1, torej kaj so punce in kaj ženske. Če ne piše kaj je ena in kaj nič mi ne vemo kiro so punce in kaj fanti.

#vprašanje c

mean(podatki$Višina)   #znotraj podazkov imamo več spremenljivk zato damo $ višina
## [1] 176.9571
sd(podatki$Višina)
## [1] 5.85156

Ocenjujemo, da je povprečna višina 176,95 cm. Povprečje +- sd je 68%, dva sd je 95%, tri sd pa 99,7% Sd meri razpršenost spremenljivke okoli povprečja.

#vprašanje d - spremenljivko spol spremenimo v faktor

Kdaj spremenljivko spremenimo v faktor? Ko imamo nominalne št.

podatki$Spol <- factor(podatki$Spol,       #spremenljivka ki jo hočemo spremenit
                       levels = c(0, 1),     #trenutne kode za spol
                       labels = c("Z", "M")) #kode ki pomenijo sedaj 0 in 1

head(podatki$Spol)
## [1] M Z Z Z Z Z
## Levels: Z M

#vprašanje e - opisna stat. za ženske in moške ločeno

library(pastecs) #to veš da je stat. desc v pastecs
round(stat.desc(podatki[ , colnames(podatki) %in% c("Glukoza")]), 2)  #to ni ok ker je za vseh 35 podatkov skupaj
##      nbr.val     nbr.null       nbr.na          min          max        range 
##        35.00         0.00         0.00         3.80         7.20         3.40 
##          sum       median         mean      SE.mean CI.mean.0.95          var 
##       178.65         4.80         5.10         0.18         0.36         1.12 
##      std.dev     coef.var 
##         1.06         0.21
podatkiM <- podatki[podatki$Spol == "M", ]  #nov objekt in iz njega potegnemo samo M
print(summary(podatkiM["Glukoza"]))
##     Glukoza     
##  Min.   :3.800  
##  1st Qu.:4.000  
##  Median :4.600  
##  Mean   :4.536  
##  3rd Qu.:4.700  
##  Max.   :6.000
library(psych)

describeBy(podatki$Glukoza, podatki$Spol) #odgovor na e
## 
##  Descriptive statistics by group 
## group: Z
##    vars  n mean   sd median trimmed  mad min max range skew kurtosis   se
## X1    1 14 5.96 0.93    5.8    5.97 1.33 4.6 7.2   2.6 0.12    -1.62 0.25
## ------------------------------------------------------------ 
## group: M
##    vars  n mean  sd median trimmed  mad min max range skew kurtosis   se
## X1    1 21 4.54 0.7    4.6    4.45 0.74 3.8   6   2.2 0.97    -0.13 0.15
#prvi zavihek je ženske moski, drugi so ocene za Ž, v tretjem so ocene za M ,ko damo knjit vidimo v rezultatih, da so imeli v povprečju višjo st. glukoze Ž, in sicer 5,96 - mean
#n je število žensk 14, sd pove kako spremenljivka varira okoli povprečja, median= polovica ženska ima stopnjo glukoze do vključno 5,8 preostale pa več, Min in max so minimalna raven glukoze in maksimalna raven glukoze pti ženskah. Range je razpon, razlika med min in max je 2,6 oz.ženska z najvišjo st. glukoze ima za 2,6 enot višjo glukozo kot oseba z najnižjo. SKEW - Porazdelitev znotraj žensk je simetrična, ker je 1.12, ker je blizu 0, je asimetrična v desno ker je več kot 0.
#se (y prečna) - standardna napaka ocene aritmetične sredine -  nam pove kako bi varirale ocene če ponavljamo vzorec.
#vaja: testiramo naslednjo domnevo H0: povprečje glukoze je 6.0. kako izračunamo t preizkus iz teh podatkov.......t=povprečje-ar.sredina/se(y)=5.96-6/0,25.....M=n-1=13

#vprašanje f

library(pastecs)
round(stat.desc(podatki[ ,!colnames(podatki) %in% c("ID","spol")]), 2)  #vzemi podatke, po imenih spremenljivk vključi vse razen te - id in spol, če mamo številke damo lahko spredaj -, če pa hočemo z imeni tko kot tuki pa moremo dat klicaj!!!
##                 Teža  Višina    Tlak   Utrip Hemoglobin Hematokrit Holesterol
## nbr.val        35.00   35.00   35.00   35.00      35.00      35.00      35.00
## nbr.null        0.00    0.00    0.00    0.00       0.00       0.00       0.00
## nbr.na          0.00    0.00    0.00    0.00       0.00       0.00       0.00
## min            55.00  166.00   90.00   49.00     143.00      45.00       3.40
## max            81.00  189.00  135.00   64.00     183.00      69.00       8.00
## range          26.00   23.00   45.00   15.00      40.00      24.00       4.60
## sum          2375.00 6193.50 3838.00 1967.00    5445.00    1801.00     167.60
## median         68.00  177.00  108.00   55.00     157.00      51.00       4.70
## mean           67.86  176.96  109.66   56.20     155.57      51.46       4.79
## SE.mean         1.30    0.99    1.79    0.67       1.45       0.82       0.17
## CI.mean.0.95    2.64    2.01    3.64    1.37       2.94       1.66       0.34
## var            59.01   34.24  112.47   15.81      73.13      23.49       1.00
## std.dev         7.68    5.85   10.61    3.98       8.55       4.85       1.00
## coef.var        0.11    0.03    0.10    0.07       0.05       0.09       0.21
##              Glukoza Spol
## nbr.val        35.00   NA
## nbr.null        0.00   NA
## nbr.na          0.00   NA
## min             3.80   NA
## max             7.20   NA
## range           3.40   NA
## sum           178.65   NA
## median          4.80   NA
## mean            5.10   NA
## SE.mean         0.18   NA
## CI.mean.0.95    0.36   NA
## var             1.12   NA
## std.dev         1.06   NA
## coef.var        0.21   NA
round(stat.desc(podatki[ , -c(1, 10)]),2)  #to je 2. način
##                 Teža  Višina    Tlak   Utrip Hemoglobin Hematokrit Holesterol
## nbr.val        35.00   35.00   35.00   35.00      35.00      35.00      35.00
## nbr.null        0.00    0.00    0.00    0.00       0.00       0.00       0.00
## nbr.na          0.00    0.00    0.00    0.00       0.00       0.00       0.00
## min            55.00  166.00   90.00   49.00     143.00      45.00       3.40
## max            81.00  189.00  135.00   64.00     183.00      69.00       8.00
## range          26.00   23.00   45.00   15.00      40.00      24.00       4.60
## sum          2375.00 6193.50 3838.00 1967.00    5445.00    1801.00     167.60
## median         68.00  177.00  108.00   55.00     157.00      51.00       4.70
## mean           67.86  176.96  109.66   56.20     155.57      51.46       4.79
## SE.mean         1.30    0.99    1.79    0.67       1.45       0.82       0.17
## CI.mean.0.95    2.64    2.01    3.64    1.37       2.94       1.66       0.34
## var            59.01   34.24  112.47   15.81      73.13      23.49       1.00
## std.dev         7.68    5.85   10.61    3.98       8.55       4.85       1.00
## coef.var        0.11    0.03    0.10    0.07       0.05       0.09       0.21
##              Glukoza
## nbr.val        35.00
## nbr.null        0.00
## nbr.na          0.00
## min             3.80
## max             7.20
## range           3.40
## sum           178.65
## median          4.80
## mean            5.10
## SE.mean         0.18
## CI.mean.0.95    0.36
## var             1.12
## std.dev         1.06
## coef.var        0.21

#Knit - razumevanje za Utrip:NBR.val je 35 pove, da je vvrorcu 35 enot, nbr.null pove da ni imela nobena oseba tripa 0, nbr.na pove, da ni nobene enote ki manjka,15 je razlika med najvišjim in najnižjim utripom. SEmean - standardna napaka ocene povprečja. CImean0.95 - če bi hotli narediti 95% intervalno oceno -> (1.37 je interval zaupanja) 56.2+- 1,37, dobimo zgornjo in spodnjo mejo. Če bi naredili 100 vzorcev po 35 atletov bi s 95 od 100tih vzorcev ujeli povprečni utrip oz. pravo pop. povprečje, s petimi pa zgrešili. Katera spremenljivka ima največjo variabilnost? Holesterol in Glukoza,ker je coef.var(s/ar. sredina)*100 največji.

#vprašanje g - nariši Hematokrit, histogram -> uporabimo, ko imamo številsko spremenljivko in bi radi narisali njeno porazdelitev

hist(podatki$Hematokrit,  #pokličem spremenjivko
     main = "Frekvenčna porazdelitev za hematokrit",  #ime grafa
     xlab = "Hematokrit", 
     ylab = "Število maratonovcev",
     breaks = seq(40, 80, 2),  #od kje do kje hočemo stolpce
     col = "lightblue",
     border = "black")

#porazdelitev je asimetrična v desno
library(ggplot2)
## 
## Attaching package: 'ggplot2'
## The following objects are masked from 'package:psych':
## 
##     %+%, alpha
ggplot(podatki,aes(x = Hematokrit)) +
  geom_histogram(binwidth = 2, fill = "lightblue", colour = "black")+ 
  ylab("Frekvenca") +  #preimenujemo y os
  scale_x_continuous(limits= c(40, 80), breaks = seq(40, 80, 2.5)) +
  #sami definiramo x skalo od 40-80, limits določimo min in max, z breaks pa kje nam točno izpiše osi
  labs(title = "Frekvenčna porazdelitev za hematokrit") #dodamo ime grafa

  #warning je irelevanten!če vas moti napišemo zraven rja od rchunka warning = FALSE

#vprašanje h - grafikon kvantilov za Glukozo

boxplot(podatki$Glukoza ~ podatki$Spol,
        main = "Graf kvantilov za glukozo ločeno po spolu",
        xlab = "Spol",
        ylab = "Glukoza",
        col = c("pink", "lightblue"),
        border = "black")

naredimo še isto z ggplot

library(ggplot2)
ggplot(podatki, aes(x = Spol, y = Glukoza, fill = Spol)) +    #fill je barva škatle, barvo pa spremeniš, da daš scale_fill_manual
  geom_boxplot() + #do tu napišeš, pa vidiš kaj ti da in kaj moreš dodat
  scale_fill_manual(values = c("pink", "lightblue")) +
  theme_dark() #ozadje

Razlaga: Mediana glukoze je 5,8.

funkcija za mediano za Ž

median(podatki[podatki$Spol == "Z" , ]$Glukoza)  #vzamem podatke, izberem samo tiste vrstice kjer je z(pred vejico) in samo za te vrstice zračunaj mediano
## [1] 5.8