U drugom delu kreirali smo dve promenljive i koristili komandu lm()
da ocenimo regresioni model u kome smo tretirali visina
kao zavisnu promenljivu, a tezina
kao nezavisnu promenljivu. Ponovimo ove dve promenljive:
visina = c (186, 165, 149, 206, 143, 187, 191, 179, 162, 185)
tezina = c (89, 56, 60, 116, 51, 75, 84, 78, 67, 85)
Danas ćemo naučiti kako dobiti korisne dijagnostičke informacije o regresionom modelu, a zatim kako nacrtati reziduale na grafiku. Kao i ranije, ocenimo regresioni model.
lm (visina ~ tezina)
Hajde sada da saznamo nešto više o regresiji. Prvo, sačuvamo regresioni model kao objekat i nazovimo ga prvi_model
, a zatim ćemo upotrebiti komandu summary()
da dobijemo detaljnju informaciju o regresiji.
prvi_model <- lm (visina ~ tezina)
summary(prvi_model)
Evo šta nam R daje.
R nam je dao mnogo dijagnostičkih informacija o regresiji. Najkorisnije od ove informacije su sami koeficijenti, prilagođeni R-kvadrat, F-statistika i p-vrednost za model. Pretpostavljam da znate šta ova dijagnostika znači.
Sada koristimo R komandu predict()
da kreiramo vektor ocenjenih vrednosti.
prvi_model_ocena <- predict(lm(visina ~ tezina))
prvi_model_ocena
Ovo su ocenjene vrednosti:
Sada ćemo ponovo grafički prikazati podatke i regresiju.
plot (težina, visina, pch = 16, cek = 1,3, col = "red", main = "Dijagram rasturanja i regresija u R", xlab = "Težina (kg)", ylab = "Visina (cm)")
abline (102.7071, 0.9539)
Možemo grafički prikazati reziduale pomoću petlje u R i indeksa k
koji se kreće od 1 do broja tačaka podataka. Znamo da ima 10 podataka, ali ako ne znamo broj opservacija možemo ih pronaći, koristimo komandu length()
na promenljivoj visina
ili tezina
.
bopservacija <- length(tezina)
bopservacija
Hajde sada da primenimo petlju i nacrtamo reziduale pomoću naredbe lines()
. Zapamtite sintaksu koju koristimo za crtanje reziduala.
for (k in 1: bopservacija) lines(c(tezina[k], tezina[k]), c(visina[k], prvi_model_ocena[k]))
Evo našeg grafika, uključujući reziduale.
Reklo bi se da ništa od ovoga nije bilo tako teško! 🙂
U 4. delu ćemo pogledati naprednije aspekte regresionih modela i videti šta R nudi.
Sve najbolje za sada!
David
Napomena: Obratiti pažnju na to da smo u R kodu koristili dva operatora dodeljivanja, “=” i “<-”. Mada među njima postoje razlike u ovom postu oni imaju isti efekat, tj. dodeljivanje onoga što je dato na desnoj strani promenljivoj ili objektu na levoj strani. Više detalja o tome u kojim slučajevima koristimo jedan ili drugi operator je dato u R uputstvu.
Dodatak: Korišćeni R kodovi
# Kreiranje promenljivih visina i tezina visina = c(186, 165, 149, 206, 143, 187, 191, 179, 162, 185) tezina = c(89, 56, 60, 116, 51, 75, 84, 78, 67, 85) # Ocena jednostavne regresije lm(visina ~ tezina) # Kreiranje objekta prvi_model u koji smeštamo ocenjeni regresioni model prvi_model <- lm(visina ~ tezina) # Sumarni prikaz objekta prvi_model summary(prvi_model) # Kreiranje objekta prvi_model_ocena u koji smeštamo ocenjene vrednosti regresionog modela prvi_model_ocena <- predict(lm(visina ~ tezina)) # Prikaz ocenjenih vrednosti regresionog modela prvi_model_ocena # Dijagram rasturanja i regresija korišćenjem R plot(tezina, visina, pch = 16, cex = 1.3, col = "red", main = "Moj prvi grafik korišćenjem R", xlab = "Težina (kg)", ylab = "Visina (cm)") abline(102.7071, 0.9539) # Broj observacija u promenljivoj tezina bopservacija <- length(tezina) bopservacija # Petlja koja grafički prikazuje reziduale na dijagramu rasturanja for (k in 1: npoints) lines(c(tezina[k], tezina[k]), c(visina[k], prvi_model_ocena[k]))

Menadžer u New Zealand Institute of Sport i Direktor Sigma Statistics and Research Ltd. Autor knige: R Graph Essentials.