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

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