Brz početak rada sa R: Više o regresiji (27. Deo)

U prethodnom delu smo kreirali dve promenljive i korišćenjem lm() komande ocenili regresioni model, tretirajući jednu promenljivu zavisnom, a drugu nezavisnom. Ovde ih ponavljamo ponovo.
visina = c(176, 154, 138, 196, 132, 176, 181, 169, 150, 175)
težina = c(82, 49, 53, 112, 47, 69, 77, 71, 62, 78)

Sada ćemo naučiti kako dobiti korisnu dijagnostičku informaciju o regresionom modelu, a potom kako nacrtati reziduale na grafiku. Kao i ranije ocenimo regresioni model.
lm(visina ~ težina)

Pogledajmo sada nešto detaljnije ocenjenu regresiju. Prvo, sačuvajmo regresioni model kao objekat nazvan mod, a potom koristeći summary() komandu naučimo nešto više o ocenjenoj regresiji.
mod <- lm(visina ~ težina)
summary(mod)
Evo šta nam R daje.

R daje puno dijagnostičkih informacija o ocenjenoj regresiji. Najkorisnije od svih su sami koeficijenti, prilagođeni koeficijent determinacije, F-statistika i p-vrednost modela.
Sada ćemo korišćenjem predict() komande u R kreirati vektor ocenjenih vrednosti.
regmodel <- predict(lm(visina ~ težina))
regmodel
Ovo su ocenjene vrednosti:

Ponovo grafički predstavimo podatke i regresionu liniju.
plot(težina, visina, pch = 16, cex = 1.3, col = "blue", main = "DIJAGRAM RASTURANJA: VISINA PREMA TEŽINI", xlab = "TEŽINA (kg)", ylab = "VISINA (cm)")
abline(lm(visina ~ težina))

Korišćenjem petlje u R i subskripta k koji uzima vrednosti od 1 do broja podataka grafički ćemo predstaviti reziduale. Znamo da ima 10 podataka, ali ako neznamo broj podataka možemo ga naći korišćenjem length() komande na promenljivoj visina ili težina.
Npoints <- length(visina)
npoints

Sada ćemo primeniti petlju i nacrtati reziduale (razlika između posmatranih vrednosti zavisne promenljive i odgovarajućih ocenjenih vrednosti) korišćenjem lines() komande. Uočiti sintaksu korišćenu pri crtanju reziduala.
for (k in 1: npoints) lines(c(težina[k], težina[k]), c(visina[k], regmodel[k]))
Ovo je naš grafik koji uključuje i reziduale.

Ništa od ovoga nije bilo tako teško!
Sledećeg puta razmotrićemo neke naprednije aspekte regresionih modela i videti šta nam tu R nudi. Vidimo se kasnije!
David

Dodatak: Korišćeni R kodovi

# Kreirati dve promenljive. 
visina = c(176, 154, 138, 196, 132, 176, 181, 169, 150, 175)
težina = c(82, 49, 53, 112, 47, 69, 77, 71, 62, 78)

# Oceniti regresioni model. 
lm(visina ~ težina)

# Sačuvati regresioni model kao objekat. 
mod <- lm(visina ~ težina)
summary(mod)

# Kreirati vektor ocenjenih vrednosti. 
regmodel <- predict(lm(visina ~ težina))
regmodel

# Nacrtati podatke i regresionu liniju.
plot(težina, visina, pch = 16, cex = 1.3, col = "blue", main = "DIJAGRAM RASTURANJA: VISINA PREMA TEŽINI", xlab = "TEŽINA (kg)", ylab = "VISINA (cm)")
abline(lm(visina ~ težina)) 

# Naći broj podataka.
npoints <- length(visina)
npoints

# Nacrtati reziduale. 
for (k in 1: npoints) lines(c(težina[k], težina[k]), c(visina[k], regmodel[k]))