fpwiki
VýstupMASK upraveno 2026-10-02

masK — Tahák pro R

masK — Tahák pro R

Načtení dat

Data se do R zadávají buď přímo jako vektor, nebo se načtou ze souboru v pracovním adresáři či vybraného v dialogovém okně:

x <- c(4.1, 4.0, 3.8, 3.9, 3.8, 3.8, 3.5, 3.7, 4.0, 4.0)   # přímé zadání hodnot
# x <- read.table("data.txt")[, 1]     # první sloupec souboru v pracovním adresáři
# x <- read.table(file.choose())[, 1]  # první sloupec souboru vybraného v dialogovém okně

Řádky s načtením ze souboru jsou zakomentované znakem #, protože soubor musí ležet v pracovním adresáři R. read.table() vrací datovou tabulku (data.frame), ne vektor. Bez výběru sloupce [, 1] vrátí mean(x) hodnotu NA a shapiro.test(x) skončí chybou. Soubor s více proměnnými ve sloupcích (např. u regrese) se načte celý a sloupce se vyberou podle pořadí: d <- read.table("data.txt"), pak x <- d[, 1] a y <- d[, 2]. Soubor bez řádku se jmény sloupců dostane jména V1, V2, …; jména z prvního řádku souboru načte read.table("data.txt", header = TRUE) a sloupec se pak vybere přes $ (např. d$x).

Volba testu podle počtu výběrů, závislosti a normality dat

SituaceTestR voláníCo odečíst z výstupu
Jeden výběr, normální data — test střední hodnotyjednovýběrový t-testt.test(x, mu = ..., alternative = ...)p-value, interval spolehlivosti, mean of x
Jeden výběr, data nejsou normální — test mediánujednovýběrový Wilcoxonův testwilcox.test(x, mu = c, alternative = ...)p-value
Párová měření, diference normálnípárový t-testt.test(x, y, paired = TRUE)p-value, mean difference
Párová měření, diference nejsou normálnípárový Wilcoxonův testwilcox.test(x, y, paired = TRUE, mu = c)p-value
Dva nezávislé výběry — shoda rozptylů (krok 1)F-testvar.test(x, y)p-value → volba var.equal pro následující t-test
Dva nezávislé výběry, normální data — shoda středních hodnot (krok 2)dvouvýběrový t-testt.test(x, y, var.equal = TRUE/FALSE)p-value, mean of x, mean of y
Dva nezávislé výběry, data nejsou normálnídvouvýběrový Wilcoxonův testwilcox.test(x, y)p-value
Víc než dva nezávislé výběry, data nejsou normálníKruskalův-Wallisův testkruskal.test(y ~ faktor, data)p-value
Víc než dva závislé výběry (dvojné třídění)Friedmanův testfriedman.test(y ~ A | B, data)p-value
Ověření normality dat před volbou testuShapiro-Wilkův testshapiro.test(x)p-value
Shoda dat se zadaným typem rozděleníKolmogorovův-Smirnovův testks.test(x, "pnorm", mu, sigma)p-value

H0 se na hladině významnosti 0,05 zamítá, pokud je p-value nejvýše 0,05, a nezamítá, pokud je vyšší; nezamítnutí neznamená, že H0 platí, jen že data proti ní nejsou v rozporu. U testů normality to znamená, že normalitu dat lze předpokládat, ne že data jsou normální.

Funkce podle kapitol

Náhodné veličiny a rozdělení pravděpodobnosti

RozděleníP(X=k)P(X = k), hustota f(x)f(x)P(X≤k)P(X \le k), F(x)F(x)P(X>k)P(X > k), 1−F(x)1 - F(x)Kvantil xPx_P
Binomické Bi(n,p)Bi(n,p)dbinom(k, n, p)pbinom(k, n, p)pbinom(k, n, p, FALSE)qbinom(P, n, p)
Poissonovo Po(λ)Po(\lambda)dpois(k, lambda)ppois(k, lambda)ppois(k, lambda, FALSE)qpois(P, lambda)
Geometrické G(p)G(p)dgeom(k, p)pgeom(k, p)pgeom(k, p, FALSE)qgeom(P, p)
Hypergeometrické H(N,M,n)H(N,M,n)dhyper(k, M, N-M, n)phyper(k, M, N-M, n)phyper(k, M, N-M, n, FALSE)qhyper(P, M, N-M, n)
Normální N(μ,σ2)N(\mu,\sigma^2)dnorm(x, mu, sigma)pnorm(x, mu, sigma)pnorm(x, mu, sigma, FALSE)qnorm(P, mu, sigma)
Exponenciální E(δ)E(\delta)dexp(x, 1/delta)pexp(x, 1/delta)pexp(x, 1/delta, FALSE)qexp(P, 1/delta)
Studentovo t(k)t(k)dt(x, df = k)pt(x, df = k)pt(x, df = k, lower.tail = FALSE)qt(P, df = k)
Pearsonovo χ2(k)\chi^2(k)dchisq(x, df = k)pchisq(x, df = k)pchisq(x, df = k, lower.tail = FALSE)qchisq(P, df = k)
Fisherovo-Snedecorovo F(k1,k2)F(k_1,k_2)df(x, df1 = k1, df2 = k2)pf(x, df1 = k1, df2 = k2)pf(x, df1 = k1, df2 = k2, lower.tail = FALSE)qf(P, df1 = k1, df2 = k2)
  • Normální rozdělení se v R zadává směrodatnou odchylkou σ\sigma, ne rozptylem σ2\sigma^2.
  • Exponenciální rozdělení se zadává parametrem 1/delta, kde δ\delta je střední hodnota.
  • dgeom(k, p) počítá pravděpodobnost kk neúspěchů před prvním úspěchem.
  • Pravý ocas vrací argument lower.tail = FALSE. Bez jména (jen FALSE) musí stát přesně na jeho pozici, tedy hned za parametry rozdělení. U tt, χ2\chi^2 a FF je na této pozici parametr necentrality ncp, proto se tam lower.tail píše vždy jménem.
  • U spojitých rozdělení je P(X=x)=0P(X = x) = 0; d* vrací hodnotu hustoty, ne pravděpodobnost.

Popisná statistika a datové soubory

FunkceCo vrací
length(x)rozsah souboru nn
min(x), max(x)nejmenší a největší hodnota
mean(x)výběrový průměr
var(x)výběrový rozptyl
sd(x)výběrová směrodatná odchylka
median(x)výběrový medián (stejně jako quantile(x, 0.5, type = 6))
quantile(x, p, type = 6)výběrový pp-kvantil, jak se počítá v kurzu
sort(x) / sort(x, decreasing = TRUE)hodnoty seřazené vzestupně/sestupně
boxplot(x)krabicový graf
h <- hist(x, br = seq(38, 46, by = 1))histogram s danými hranicemi tříd; výsledek třídění v h
h$counts, h$breaks, h$midsčetnosti tříd, hranice tříd, středy tříd
h$densityčetnost třídy dělená nn a šířkou třídy (při šířce 1 relativní četnost)
f <- ecdf(x)empirická distribuční funkce
f(k)hodnota empirické distribuční funkce v bodě kk
knots(f)vzestupně seřazené různé hodnoty souboru

Testování statistických hypotéz

FunkcePoužití
t.test(x, mu = ..., alternative = ...)jednovýběrový t-test
t.test(x, y, paired = TRUE)párový t-test
t.test(x, y, var.equal = TRUE/FALSE)dvouvýběrový t-test
var.test(x, y)F-test shody rozptylů
shapiro.test(x)Shapiro-Wilkův test normality
ks.test(x, "pnorm", mu, sigma)Kolmogorovův-Smirnovův test shody s normálním rozdělením
ks.test(x, "pexp", 1/delta)Kolmogorovův-Smirnovův test shody s exponenciálním rozdělením
wilcox.test(x, mu = c, alternative = ...)jednovýběrový Wilcoxonův test
wilcox.test(x, y, paired = TRUE, mu = c)párový Wilcoxonův test
wilcox.test(x, y)dvouvýběrový Wilcoxonův test
kruskal.test(y ~ faktor, data)Kruskalův-Wallisův test
library(agricolae); Median.test(y, faktor)mediánový test (alternativa ke Kruskalovu-Wallisovu)
friedman.test(y ~ A | B, data)Friedmanův test (friedman.test(y, A, B) jen pro samostatné vektory)

Regresní a korelační analýza

FunkcePoužití
lm(y ~ x)lineární regrese (přímka)
lm(y ~ x + I(x^2))parabolická regrese
lm(y ~ I(1/x))hyperbolická regrese
library(nls2); nls2(y ~ b1 * exp(b2 * x))exponenciální regrese y=b1eb2xy = b_1 e^{b_2 x}
nls2(y ~ b1 * b2^x)regrese y=b1b2xy = b_1 b_2^{x} (v kurzu „mocninná funkce“)
summary(model)odhady parametrů, jejich významnost, koeficient determinace
coef(model)odhadnuté parametry b0,b1,…b_0, b_1, \dots
fitted(model)predikce y^i\hat y_i pro pozorované xix_i
residuals(model)rezidua ei=yi−y^ie_i = y_i - \hat y_i
confint(model, level = 0.95)intervaly spolehlivosti pro parametry modelu
predict(model, interval = "confidence", level = 0.95)interval spolehlivosti pro střední hodnotu y^\hat y
predict(model, interval = "prediction", level = 0.95)predikční interval pro jednotlivou hodnotu yy
predict(model, newdata = data.frame(x = c(7, 8)), interval = "confidence")totéž pro nové hodnoty xx; sloupec se musí jmenovat jako proměnná v modelu
cor(x, y)korelační koeficient
step(model, direction = "both")stepwise výběr proměnných podle AIC
library(car); vif(model)Variance Inflation Factor (multikolinearita)
library(lmtest); dwtest(model)Durbin-Watsonův test autokorelace reziduí
library(whitestrap); white_test(model)Whiteův test homoskedasticity reziduí
shapiro.test(residuals(model))test normality reziduí

Kontingenční tabulky

FunkcePoužití
chisq.test(tab)test nezávislosti dvou kvalitativních znaků
chisq.test(tab, correct = FALSE)totéž pro čtyřpolní tabulku 2 × 2 bez Yatesovy korekce, jak se počítá v kurzu
chisq.test(tab)$expectedočekávané četnosti za platnosti nezávislosti
sqrt(chisq.test(tab, correct = FALSE)$statistic / (sum(tab) * (min(dim(tab)) - 1)))Cramérův koeficient kontingence VV
mcnemar.test(tab, correct = FALSE)McNemarův test pro párovaná kvalitativní data

Regulační diagramy a indexy způsobilosti

FunkcePoužití
library(qcc)balíček pro regulační diagramy a indexy způsobilosti
qcc.groups(x, sample)sestavení logických podskupin z dlouhého formátu dat
qcc(data, type = "R")regulační diagram rozpětí RR; data je matice, řádek = logická podskupina
qcc(data, type = "xbar")regulační diagram průměrů xˉ\bar x
qcc(data, type = "S")regulační diagram výběrových směrodatných odchylek ss
qcc(x, type = "xbar.one")diagram individuálních hodnot xix_i (jedno měření v podskupině, σ\sigma z klouzavých rozpětí)
qcc(c_i, type = "c")diagram počtu neshod cc
qcc(u_i, type = "u", sizes = ...)diagram počtu neshod na jednotku uu; sizes = rozsahy podskupin
qcc(np_i, type = "np", sizes = n)diagram počtu neshodných jednotek npnp (stejné rozsahy nn)
qcc(np_i, type = "p", sizes = ...)diagram podílu neshodných jednotek pp (rozsahy smějí být různé)
q <- qcc(data, type = "xbar")uložení diagramu pro výpočet indexů způsobilosti
process.capability(q, spec.limits = c(LSL, USL), target = T, std.dev = sd(data))indexy CpC_p, CpkC_{pk} a CpmC_{pm} s výběrovou směrodatnou odchylkou všech dat, jak se počítá v kurzu

Výchozí nastavení R, která mění výsledek

ParametrVýchozí hodnota v RCo se změní při jiném nastavení
correct v mcnemar.test()TRUE (Yatesova korekce na kontinuitu)correct = FALSE odpovídá nekorigovanému vzorci počítanému v kurzu ručně
correct v chisq.test()TRUE, uplatní se jen u tabulky 2 × 2correct = FALSE dá hodnotu vzorce pro čtyřpolní tabulku z kurzu
var.equal v t.test()FALSE (Welchova varianta)TRUE použije klasickou dvouvýběrovou statistiku se společným rozptylem — volí se podle výsledku F-testu
alternative v t.test() / wilcox.test() / var.test()"two.sided""greater" / "less" testuje jednostrannou alternativu — musí odpovídat formulaci H1H_1
paired v t.test() / wilcox.test()FALSETRUE testuje dvojice závislých měření (diference), ne dva nezávislé výběry
conf.level v t.test() / var.test()0.95určuje spolehlivost intervalu uvedeného ve výstupu testu (1−α1 - \alpha)
conf.int v wilcox.test()FALSEwilcox.test() vypíše interval spolehlivosti jen s conf.int = TRUE; samotné conf.level výstup nezmění
type v quantile()7type = 6 odpovídá ručnímu výpočtu kvantilů použitému v kurzu
right v hist()TRUE (třídy zleva otevřené, zprava uzavřené)right = FALSE otočí hranice tříd na zleva uzavřené, zprava otevřené
plot v qcc()TRUE (diagram se vykreslí)plot = FALSE jen spočítá meze a vrátí objekt bez vykreslení grafu
std.dev v process.capability()směrodatná odchylka z regulačního diagramu q (z rozpětí nebo směrodatných odchylek v podskupinách)std.dev = sd(data) použije výběrovou směrodatnou odchylku všech dat; indexy vyjdou jinak
target v process.capability()střed tolerance (LSL+USL)/2(LSL + USL)/2jiná cílová hodnota TT změní CpmC_{pm}

Související stránky

Reference

KROPÁČ, J. Statistika A. 4. vyd. Brno: Fakulta podnikatelská VUT, 2011.

MONTGOMERY, D. C. Introduction to Statistical Quality Control. 6. vyd. Hoboken: Wiley, 2009.

KUPKA, K. Statistické řízení jakosti. Pardubice: TriloByte, 1997.

fpwiki
Nejde o oficiální materiály FP VUT. Obsah je výběrový a slouží jako pomůcka ke studiu. GitHub