# nacteni datoveho souboru tabulka <- read.table (file = "C3H6O3.txt", skip = 3, header = TRUE) # popisne statistiky datoveho souboru hist (tabulka$Y) summary (tabulka) names (tabulka) length (tabulka) dim (tabulka) # funkce "lm" pro reseni linearniho regresniho modelu model <- lm (Y ~ 1 + x + I(x^2), data = tabulka) # vysledky model # podobne vysledky a dalsi statistiky summary (model) # kdyz vysledek ulozime do nove promenne, muzeme k podrovnym statistikam pristupovat i jednotlive vysledky <- summary (model) # odhady Y se striskou model$fitted.values fitted.values (model) # hodnoty nezavisle a zavisle promenne model$model # matice planu (design matrix) model.matrix (model) # odhady parametru (metodou nejmensich ctvercu) vysledky$coefficients coef (vysledky) # rezidua vysledky$residuals residuals (vysledky) # s = odhad smerodatne odchylky nahodnych chyb vysledky$sigma # stupne volnosti vysledky$df # R^2 = koeficient determinace vysledky$r.squared # R^2 s pruhem = korigovany koeficient determinace vysledky$adj.r.squared # F = hodnota testu prukaznosti modelu (celkovy F-test) vysledky$fstatistic # podivame se na rozsah X-ovych i Y-ovych hodnot, abychom spravne nastavili rozmery grafu range (tabulka$x) range (tabulka$Y) # souradnicovy system, popisky os plot (c (0, 70), c (0, 60), type = "n", xlab = "matka", ylab = "novorozenec") # data zobrazime jako body points (tabulka$x, tabulka$Y, col = "red", pch = 8, lwd = 1.5, cex = 1.0) # nageneruje hustou sit na x-ove ose x <- seq (0, 70, by = 0.1) # prikazem "predict" aplikovanym na vysledky modelu nechame dopocitat y-ove souradnice Yhat <- predict (model, data.frame (x = x)) # vykresline krivku lines (x, Yhat, col = "blue", lwd = 1.5) # grafu muzeme ulozit do souboru prikazem dev.copy2pdf (file = "model.pdf", width = 6, height = 4) # totez lze ucninit pomoci tlacitka Export v R-Studiu # vypocet odhadu vektoru parametru podle klasickeho vzorce Y <- tabulka$Y v <- c (rep (1, 6), tabulka$x) X <- matrix (v, 6, 2) beta <- solve (t(X) %*% X) %*% t(X) %*% Y beta # Porovnejte obdrzeny odhad vektoru parametru metodou nejmensich ctvercu s nalsedujicimi model$coefficients coef (model) # graficke zobrazeni ctvercu rezidui plot (c (0, 70), c (0, 60), type = "n", xlab = "matka", ylab = "novorozenec") w <- sapply (1:length(tabulka$x), function (i) { r <- model$residuals[i] x <- tabulka$x[i] Y <- tabulka$Y[i] if (r > 0) {rect (x - r, Y - r, x, Y, border = "gray", lty = 2, col = "gold")} else {rect (x, Y, x - r, Y - r, border = "gray", lty = 2, col = "gold")} }) points (tabulka$x, tabulka$Y, col = "red", pch = 8, lwd = 1.5, cex = 1.0) lines (x, Yhat, col = "blue", lwd = 1.5) # projdete si priklad znovu, ale s regresni funkci tvaru paraboly, tzn. pro model model2 <- lm (Y ~ 1 + x + I(x^2), data = tabulka) # podivejte se na odhady parametru, vykreslete graf regresni paraboly # porovnejte vysledne styatistiky modelu s predchozim modelem pro regresni primku # ...