Brz početak rada sa R: Regresija (3. Deo)

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]))