Brz početak rada sa R: Uopšteni Linearni Modeli (15. Deo)

U 15. delu pokazaćemo kako kreirati jednostavne uopštene linearne modele u R.
Regresija metodom običnih najmanjih kvadrata daje nam linearne modele za neprekidne promenljive. Međutim, mnogi podaci od interesa za statističare i istraživače nisu neprekidni i zato se moraju koristiti druge metode za stvaranje korisnih prognostičkih modela. Naredba glm() je dizajnirana tako da daje uopštene linearne modele (regresije) za binarne podatke, frekvencije, verovatnoće, proporcije i mnoge druge tipove podataka. U ovom blogu istražujemo upotrebu R naredbe glm() za takve tipove podataka. Hajde da pogledamo jednostavan primer gde modeliramo binarne podatke.
U datoteci mtcars, promenljiva vs označava da li je automobil opremljen V motorom ili linijskim motorom.
Želimo da napravimo model koji će nam pomoći da procenimo verovatnoću vozila sa V motorom ili linijskim motorom sa težinom od 2100 lbs i radnim taktom od 180 kubnih inča. Koristimo glm() funkciju, uključimo promenljive na uobičajeni način i definišimo binomnu raspodelu grešaka, kako sledi:
model <- glm(formula= vs ~ wt + disp, data=mtcars, family=binomial)
summary(model)


Vidimo da uticaj težine vozila pozitivno utiče, dok radni takt ima sasvim mali negativan efekat.
Rezultat modela je nešto drugačiji od onog u običnom modelu najmanjih kvadrata. Detaljnije ćemo objasniti rezultat u sledećem blogu, ali za sada ćemo nastaviti sa našim proračunima.
Kreiramo datoteku pod imenom okvir podataka pod imenom newdata, u koju uključujemo željene vrednosti za naše predviđanje.
newdata = data.frame(wt = 2.1, disp = 180)
Sada koristimo funkciju predict() da izračunamo verovatnoću. Uključujemo argument type = "response" kako bismo dobili našu prognozu.
predict(model, newdata, type="response")

Predviđena verovatnoća je 0.24.
To nije bilo tako teško! U 16. delu objasnićemo detaljnije rezultate koji smo dobili korišćenjem funkcije glm().
Vidimo se kasnije!
David

Dodatak: Korišćeni R kodovi

# Ocena Uopštenog Linearnog Modela i prikaz rezultata. 
model <- glm(formula= vs ~ wt + disp, data=mtcars, family=binomial) 
summary(model)

# Kreiranje proširene datoteke koja uključuje novu vrednost. 
newdata = data.frame(wt = 2.1, disp = 180) 

# Predviđanje na osnovu ocenjenog modela.
predict(model, newdata, type="response")