V nalsedovnom vygenerujeme náhodne 500 pozorovaní v normálnom rozdlení so strednou hodnotou 0 a rozptylom 1 a vykreslíme Q-Q graf.
# Generovanie náhodných pozorovaní z normálneho rozdelen
set.seed(123) # Nastavenie semena pre reprodukovateľnosť
data <- rnorm(500, mean = 0, sd = 1)
# Vytvorenie Q-Q grafu
qqnorm(data, main = "Q-Q graf pre normálne rozdelenie")
qqline(data, col = "red") # Pridanie červenej čiar
# vykreslenie histogramu pocetnosti
hist(data, breaks = 20, main = "Histogram náhodných pozorovaní", xlab = "Hodnoty", col = "lightblue")
Q-Q graf (Quantile-Quantile graf) je nástroj používaný na vizualizáciu toho, ako dobre sa rozdelenie dát zhoduje s teoretickým rozdelením, v tomto prípade normálnym rozdelením. - Ak body v Q-Q grafe ležia približne na priamke (červená čiara), znamená to, že dáta sú približne normálne rozdelené. - Ak body odchýlia od priamky, môže to naznačovať, že dáta nie sú normálne rozdelené. Napríklad, ak body vytvárajú zakrivený vzor, môže to naznačovať prítomnosť šikmosti alebo ťažkých chvostov v dátach. - V našom prípade, keďže sme generovali dáta z normálneho rozdelen nia, očakávame, že body v Q-Q grafe budú ležať blízko priamky, čo naznačuje, že dáta sú normálne rozdelené.
# Výpočet základných štatistík pre normálne rozdelenie
mean_n <- mean(data)
var_n <- var(data)
skewness_n <- e1071::skewness(data)
kurtosis_n <- e1071::kurtosis(data)
# Výpis výsledkov
cat("Priemer:", mean_n, "\n")
## Priemer: 0.03459045
cat("Rozptyl:", var_n, "\n")
## Rozptyl: 0.9462803
cat("Šikmosť:", skewness_n, "\n")
## Šikmosť: 0.08586187
cat("Špicatosť:", kurtosis_n, "\n")
## Špicatosť: -0.05820728
V nalsedovnom vygenerujeme náhodne 500 pozorovaní v t rozdelení s 5 stupňami voľnosti a vykreslíme Q-Q graf. Toto rozdelenie je symetrické a vyznačuje sa mimoriadne vysokou špicatosťou ()heavy tails - ťažké chvosty), čo znamená, že má väčšiu pravdepodobnosť extrémnych hodnôt v porovnaní s normálnym rozdelením. Očakávame, že body v Q-Q grafe budú odchýlené od priamky, najmä v oblasti chvostov.
# Generovanie náhodných pozorovaní z t-rozdelenia s 5 stupňami voľnosti
set.seed(123) # Nastavenie semena pre reprodukovateľnosť
data_t <- rt(500, df = 5)
# Vytvorenie Q-Q grafu
qqnorm(data_t, main = "Q-Q graf pre t-rozdelenie s
5 stupňami voľnosti")
qqline(data_t, col = "red") # Pridanie červenej či
# vytvorenie histogramu rozdelenia po4etnosti
hist(data_t, breaks = 20, main = "Histogram náhodných pozorovaní z t-rozdelenia", xlab = "Hodnoty", col = "lightblue")
Teraz vyjadríme niektoré základné štatitiky vypočítané pre generované údaje, a to priemer, rozptyl, šikmosť a špicatosť.
# Výpočet základných štatistík pre t-rozdelenie
mean_t <- mean(data_t)
var_t <- var(data_t)
skewness_t <- e1071::skewness(data_t)
kurtosis_t <- e1071::kurtosis(data_t)
# Výpis výsledkov
cat("Priemer:", mean_t, "\n")
## Priemer: -0.05353715
cat("Rozptyl:", var_t, "\n")
## Rozptyl: 1.991412
cat("Šikmosť:", skewness_t, "\n")
## Šikmosť: -0.1248708
cat("Špicatosť:", kurtosis_t, "\n")
## Špicatosť: 2.768718
V nasledovnom vygenerujeme náhodne 500 pozorovaní F-rodelenia s (5,5) stupňami voľnosti a vykreslíme Q-Q graf. Toto rozdelenie je typické tým, že je silne zošikmmené doprava.
# Generovanie náhodných pozorovaní z F-rozdelenia s (5, 5) stupňami voľnosti
set.seed(123) # Nastavenie semena pre reprodukovateľnosť
data_f <- rf(500, df1 = 5, df2 = 5)
# Vytvorenie Q-Q grafu
qqnorm(data_f, main = "Q-Q graf pre F-rozdelenie s (5, 5) stupňami voľnosti")
qqline(data_f, col = "red") # Pridanie červenej či ary
# vytvorenie histogramu rozdelenia pocetnosti
hist(data_f, breaks = 20, main = "Histogram náhodných pozorovaní z F-rozdelenia", xlab = "Hodnoty", col = "lightblue")
V nasledovnom vygenerujeme náhodne 500 pozorovaní z exponenciálneho rozdelenia so strednou hodnotou 1 a vykreslíme Q-Q graf. Expenenciálne rozdelenie je tiež zošikmené doprava, pričom jeho modus je hneď na začiatku jej definičného oboru (body hneď za nulou na xovej osi).
# Generovanie náhodných pozorovaní z z exponenciálneho rozdelenia so strednou hodnotou 1
set.seed(123) # Nastavenie semena pre reprodukovateľnosť
data_exp <- rexp(500, rate = 1) # Exponenciálne rozdelenie so strednou hodnotou 1
# Vytvorenie Q-Q grafu
qqnorm(data_exp, main = "Q-Q graf pre exponenciálne rozdelenie so strednou hodnotou 1")
qqline(data, col = "red") # Pridanie červenej čiar
# vytvorenie histogramu rozdelenia pocetnosti
hist(data_exp, breaks = 20, main = "Histogram náhodných pozorovaní z exponenciálneho rozdelenia", xlab = "Hodnoty", col = "lightblue")
# Výpočet základných štatistík pre Exp rozdelenie mean_Exp <-
mean(data) var_Exp <- var(data) skewness_Exp <-
e1071::skewness(data) kurtosis_Exp <- e1071::kurtosis(data)
cat(“Priemer:”, mean_Exp, “”) cat(“Rozptyl:”, var_Exp, “”) cat(“Šikmosť:”, skewness_Exp, “”) cat(“Špicatosť:”, kurtosis_Exp, “”)
V nasledovnom vygenerujeme náhodne 500 pozorovaní z rovnomerného rozdelenia na intervale [0,1] a vykreslíme Q-Q graf. Toto rozdelenie je tiež charakterizované ťažkými chvostami.
# Generovanie náhodných pozorovaní z z exponenciálneho rozdelenia so strednou hodnotou 1
set.seed(123) # Nastavenie semena pre reprodukovateľnosť
data_unif <- runif(500, min = 0, max = 1)
# Vytvorenie Q-Q grafu
qqnorm(data_unif, main = "Q-Q graf pre rovnomerné rozdelenie na intervale [0,1]")
qqline(data, col = "red") # Pridanie červenej čiar
# vytvorenie histogramu rozdelenia pocetnosti
hist(data_unif, breaks = 20, main = "Histogram náhodných pozorovaní z rovnomerného rozdelenia", xlab = "Hodnoty", col = "lightblue")
mean_Uni <- mean(data) var_Uni <- var(data) skewness_Uni <- e1071::skewness(data) kurtosis_Uni <- e1071::kurtosis(data)
cat(“Priemer:”, mean_Uni, “”) cat(“Rozptyl:”, var_Uni, “”) cat(“Šikmosť:”, skewness_Uni, “”) cat(“Špicatosť:”, kurtosis_Uni, “”)