Cvičenie 3.1

Zadanie: Popisná štatistika a grafická analýza dát.
Načítajte dáta WWWusage z dát z R. Vykonajte prvotnú štatistickú analýzu + grafickú analýzu.

  dat <- datasets::WWWusage
  dat
## Time Series:
## Start = 1 
## End = 100 
## Frequency = 1 
##   [1]  88  84  85  85  84  85  83  85  88  89  91  99 104 112 126 138 146 151
##  [19] 150 148 147 149 143 132 131 139 147 150 148 145 140 134 131 131 129 126
##  [37] 126 132 137 140 142 150 159 167 170 171 172 172 174 175 172 172 174 174
##  [55] 169 165 156 142 131 121 112 104 102  99  99  95  88  84  84  87  89  88
##  [73]  85  86  89  91  91  94 101 110 121 135 145 149 156 165 171 175 177 182
##  [91] 193 204 208 210 215 222 228 226 222 220

Na internete som našiel (https://rpubs.com/ajuva/1015545), čo znamenajú hodnoty v tejto databáze. Ide o počet návštev webovej stránky univerzity za týždeň v období od februára 1993 do marca 1995 (spolu 100 týždňov).

Prvotná štatistická analýza:

1. Miery polohy:

Aritmetický priemer:

  ar_pr <- mean(dat)
  cat("Aritmetický priemer:\n", ar_pr)
## Aritmetický priemer:
##  137.08

Geometrický priemer:

  suc <- 1;
  for(i in 1:length(dat)){
    suc <- suc * dat[i] 
  }
  geom_pr <- (suc)^(1/length(dat))
  cat("Geometrický priemer:\n", geom_pr)
## Geometrický priemer:
##  131.3419
  #Toto riešenie som našiel neskôr na internete.
  geom_pr2 <- exp(mean(log(dat)))
  cat("Geometrický priemer:\n", geom_pr2)
## Geometrický priemer:
##  131.3419

Harmonický priemer:

  harm_pr <- length(dat)/(sum(1/dat))
  cat("Harmonický priemer:\n", harm_pr)
## Harmonický priemer:
##  125.7698
  #Priemer bolo možné zistiť aj pomocou príkazov z knižnice "psych"

Median:

  median <- median(dat)
  cat("Median:\n", median)
## Median:
##  138.5

Modus:

  jed <- unique(dat)
  modus <- jed[max(tabulate(match(dat,jed)))]

  cat("Modus:\n", modus)
## Modus:
##  89

Kvantil 0.25:

  kv025 <- quantile(dat,0.25)
  cat("Kvantil 0.25:\n", kv025)
## Kvantil 0.25:
##  99

Kvantil 0.75:

  kv075 <- quantile(dat,0.75)
  cat("Kvantil 0.75:\n", kv075)
## Kvantil 0.75:
##  167.5

Tiež niektoré z predchádzajúcich údajov možno nájsť pomocou príkazu “summary”

  summary(dat)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    83.0    99.0   138.5   137.1   167.5   228.0

2. Miery variability:

Variančné rozpatie:

  varr <- max(dat)-min(dat)
  cat("Variančné rozpatie:\n", varr)
## Variančné rozpatie:
##  145

Výberovy rozptyl:

  sx2 <- 1/(length(dat)-1)*sum((dat-mean(dat))^2)
  cat("Výberovy rozptyl:\n", sx2)
## Výberovy rozptyl:
##  1599.953
  #Aj existuje na to príkaz "var":
  sx2 <- var(dat)
  cat("Výberovy rozptyl:\n", sx2)
## Výberovy rozptyl:
##  1599.953

Výberová smerodajna odchilka:

  sx <- sqrt(sx2)
  cat("Výberová smerodajna odchilka:\n", sx) 
## Výberová smerodajna odchilka:
##  39.99941

Priemerná absolutna odchylka:

  dx <- 1/length(dat)*sum(dat-mean(dat))
  cat("Priemerná absolutna odchylka:\n", dx) 
## Priemerná absolutna odchylka:
##  -1.250555e-14

Kvartilové rozpatie:

  iqr <- IQR(dat)
  cat("Kvartilové rozpatie:\n", iqr) 
## Kvartilové rozpatie:
##  68.5

Variačny koeficient:

  vark <- sx/mean(dat)
  cat("Variačny koeficient:", vark)  
## Variačny koeficient: 0.2917961

3. Odĺahle udaje (outliers):

Najdeme dolný a hornú hranicu odĺahlých udajov:

  k <- 3
  horna_hranica <- quantile(dat, probs=0.75) + k*IQR(dat)
  cat("Horná hranica:\n", horna_hranica) 
## Horná hranica:
##  373
  dolna_hranica <- quantile(dat, probs=0.25) - k*IQR(dat)
  cat("Dolná hranica:\n", dolna_hranica)
## Dolná hranica:
##  -106.5

4. Ďalšie charakteristiky:

Vyberový koeficient šikmosti:

  m3 <- 1/(length(dat)-1)*sum((dat-mean(dat))^3) 
  gamma3 <- m3/(sx)^3
  cat("Vyberový koeficient šikmosti:\n", gamma3)  
## Vyberový koeficient šikmosti:
##  0.3814292

Koeficient špicatosti:

  m4 <- 1/(length(dat)-1)*sum((dat-mean(dat))^4) 
  gamma4 <- m4/(sx)^4
  cat("Koeficient špicatosti:\n", gamma4) 
## Koeficient špicatosti:
##  2.348737

Vidíme, že vyberový koeficient šikmosti je >0 a koeficient špicatosti je <3, čo znamena, že graf rozdelenia by mal byť sprava zašikmeny a plochy. Skontrolujeme to:

  library(ggplot2)
  body <- seq(min(dat)-1, max(dat) + 1, length=length(dat))
  norm_roz <- dnorm(body, mean=mean(dat), sd=sd(dat))*length(dat)
  datnorm <- data.frame(body,norm_roz)
  ggplot(data = datnorm, aes(x = body, y = norm_roz)) + 
                    geom_line(color="red") +
                    labs(title="Normalné rozdelenie WWWusage", y=" ", x="Počet návštevníkov webovej stránky")

Vidíme, že graf rozdelenia je sprava zašikmeny a mierne plochy, pretože koeficient špicatosti (2,35) sa blíži k 3.

Grafickú analýzu:

Nakreslíme si graf počtu návštevníkov webovej stranky v závislosti od čísla týždňa:

  tyz <- c(1:length(dat))
  datgraf <- data.frame(tyz,dat)
  ggplot(data = datgraf, aes(x = tyz, y = dat)) +
                    geom_line(color="blue") +
                    labs(title="Počet návštevníkov webovej stranky", y="Počet návštevníkov", x=" Čislo tyždňa")
## Don't know how to automatically pick scale for object of type <ts>. Defaulting
## to continuous.

Histogram:

  hist(dat, breaks = seq(0,max(dat)+50,10), main="Histogram", xlab = "Počet návštevníkov", ylab = "Pocet")

Boxplot:

  boxplot(dat)

  summary(dat)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    83.0    99.0   138.5   137.1   167.5   228.0

Pomocou boxplotu môžeme uvidieť cely tabuľky z prikazu summary.