tabulka <- read.csv2 (file = "fronta.csv") summary (tabulka) A.j <- as.character (tabulka$doba_cekani) k <- length (A.j) t.j <- seq (0, 24, by = 3) # Z nahodneho vyberu mame empiricke cetnosti N.j <- tabulka$pocet_zakazniku n <- sum (N.j) # Odhad parametru lambda v Poissonove rozdeleni prumer.j <- seq (1.5, 22.5, by = 3) lambda <- 1 / (sum (prumer.j * N.j) / n) lambda # Dopocitame teoreticke cetnosti z predpokkladu exponencialniho rozdeleni s lambda F.j <- pexp (t.j, lambda) p.j <- diff (F.j) # Soucet pravdepodobnosti ale neni 1, nebot chybi kategorie "> 24" A.j <- c (A.j, "> 24") k <- length (A.j) N.j <- c (N.j, 0) p.j <- c (p.j, 1 - pexp (24, lambda)) sum (p.j) # kontrola: soucet psti = 1 # Sloupcove grafy empirickych a teoretickych cetnosti Matice <- rbind (N.j, n * p.j) # umistime empiricke i teoreticke cetnosti do jedne matice jako dva radky barplot (Matice, names.arg = A.j, beside = TRUE, main = "doba cekani", ylab = "pocet zakazniku", col = c("orange", "cyan"), las = 2) # Podminka dobre aproximace n * p.j >= 5 # Yarnoldovo kriterium q <- sum (n * p.j < 5) / k q n * p.j >= 5 * q # Podle podminky dobre aproximace bychom spojily posledni dve dcvojice kategorii # Podle Yarnoldova kriteria bude stacit spojit posledni 2 kategorie do nove "> 21" A.j2 <- A.j[1:(k-1)] k2 <- length (A.j2) A.j2[k2] <- "> 21" N.j2 <- c (N.j[1:(k2-1)], N.j[k2] + N.j[k]) p.j2 <- c (p.j[1:(k2-1)], p.j[k2] + p.j[k]) Matice <- rbind (N.j2, n * p.j2) # umistime empiricke i teoreticke cetnosti do jedne matice jako dva radky barplot (Matice, names.arg = A.j2, beside = TRUE, main = "doba cekani", ylab = "pocet zakazniku", col = c("orange", "cyan"), las = 2) # Yarnoldovo kriterium q <- sum (n * p.j2 < 5) / k2 q n * p.j2 >= 5 * q # OK # Testovaci statistika K <- sum (N.j2^2 / (n * p.j2)) - n # Kvantil a porovnani K # Stupne volnosti snizujeme navic o 1 za odhadnuty parametr lambda qchisq (0.95, df = k2 - 1 - 1) K >= qchisq (0.95, df = k2 - 1 - 1) # Hypotezu o shode dat s exponencialnim rozdelenim testem dobre shody nezamitame # Jednoduchy test N.j <- tabulka$pocet_zakazniku X <- rep (prumer.j, N.j) Q <- (n-1) * var (X) / (mean (X))^2 Q q1 = qchisq (0.025, n-1) q2 = qchisq (0.975, n-1) c (q1, q2) Q <= q1 | Q >= q2 # Hypotezu o shode dat s exponencialnim rozdelenim jednoduchym testem zamitame