Mi a GLM az R-ben?

Az általánosított lineáris modellek a lineáris regressziós modellek egy részhalmaza, és hatékonyan támogatják a nem normális eloszlásokat. Ennek alátámasztására javasolt a glm () függvény használata. A GLM jól működik egy változóval, ha a szórás nem állandó és eloszlásban van. A kapcsolat függvényt úgy definiálják, hogy a válaszváltozót a megfelelő modellhez illeszsse. Az LM modell a családdal és a képlettel egyaránt készül. A GLM modellnek három kulcskomponense van: random (valószínűség), szisztematikus (lineáris prediktor), link komponens (logit függvény). A glm használatának előnye, hogy modellek rugalmassága, nem szükséges állandó szórás, és ez a modell illeszkedik a maximális valószínűség becsléséhez és arányaihoz. Ebben a témában megismerjük a GLM-et R-ben.

GLM funkció

Szintaxis: glm (képlet, család, adatok, súlyok, részhalmaz, Start = null, modell = igaz, módszer = ””)

Itt a családtípusok (ideértve a modelltípusokat) ide tartoznak a binomiális, a Poisson, a Gaussian, a gamma, a kvázi. Mindegyik eloszlás eltérő felhasználást hajt végre, és felhasználható mind besorolásra, mind előrejelzésre. És ha a modell gaussiai, a válasznak valódi egésznek kell lennie.

És amikor a modell binomiális, a válasznak bináris értékekkel kell osztályozni.

És ha a modell Poisson, a válasznak negatívnak kell lennie, numerikus értékkel.

És ha a modell gamma, akkor a válasznak pozitív számértéknek kell lennie.

glm.fit () - A modell illesztéséhez

Lrfit () - logisztikus regressziós illesztést jelöl.

update () - segít a modell frissítésében.

anova () - választható teszt.

Hogyan hozhatunk létre GLM-et R-ben?

Itt meglátjuk, hogyan hozhatunk létre egy egyszerű, általánosított lineáris modellt bináris adatokkal a glm () függvény felhasználásával. És folytatva a Trees adatkészletet.

Példák

// Könyvtár importálása
library(dplyr)
glimpse(trees)

A kategorikus értékek megtekintéséhez tényezőket rendelnek hozzá.

levels(factor(trees$Girth))

// Folyamatos változók ellenőrzése

library(dplyr)
continuous <-select_if(trees, is.numeric)
summary(continuous)

// Beleértve a fa adatkészletet az R keresés Pathattach-jába (fák)

x<-glm(Volume~Height+Girth)
x

Kimenet:

Hívás: glm (képlet = Volume ~ Magasság + Kerület)

együtthatók:

Magasság Girth

-57.9877 0.3393 4.7082

Szabadságfokok: Összesen 30 (azaz Null); 28 Maradék

Null Deviance: 8106

Maradékváltás: 421, 9 AIC: 176, 9

summary(x)

Hívás:

glm (képlet = térfogat ~ magasság + kerület)

Deviance maradványok:

Min. 1Q Medián 3Q Max

-6, 4065 -2, 6493 -0, 2876 2, 2003 8, 4847

együtthatók:

Estimate Std. Hiba t érték Pr (> | t |)

(Lehallgatás) -57.9877 8.6382 -6.713 2.75e-07 ***

Magasság 0.3393 0.1302 2.607 0.0145 *

Girth 4.7082 0.2643 17.816 <2e-16 ***

-

Signif. kódok: 0 '***' 0, 001 '**' 0, 01 '*' 0, 05 '.' 0, 1 '' 1

(A gauss-család diszperziós paramétere 15.06862)

Null eltérés: 8106.08 30 szabadsági fokon

Megmaradt eltérés: 421, 92 a 28 szabadságfokon

AIC: 176, 91

Fisher pontozási iterációk száma: 2

Az összefoglaló függvény kimenete megadja a hívásokat, együtthatókat és maradványokat. A fenti válasz azt mutatja, hogy mind a magasság, mind a kerület együtthatója nem szignifikáns, mivel valószínűsége kevesebb, mint 0, 5. És van két eltérési változat, null és reziduális. Végül, a fisher pontozása egy olyan algoritmus, amely megoldja a maximális valószínűséggel kapcsolatos kérdéseket. A binomiális válasz esetén a válasz vektor vagy mátrix. A cbind () -et arra használják, hogy az oszlopvektorokat mátrixban kössék. És az illeszkedésről szóló összefoglaló részletes információk megszerzéséhez használjuk.

Ehhez hasonlóan a motorháztető teszthez a következő kód kerül végrehajtásra.

step(x, test="LRT")
Start: AIC=176.91
Volume ~ Height + Girth
Df Deviance AIC scaled dev. Pr(>Chi)
421.9 176.91
- Height 1 524.3 181.65 6.735 0.009455 **
- Girth 1 5204.9 252.80 77.889 < 2.2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Call: glm(formula = Volume ~ Height + Girth)
Coefficients:
(Intercept) Height Girth
-57.9877 0.3393 4.7082
Degrees of Freedom: 30 Total (ie Null); 28 Residual
Null Deviance: 8106
Residual Deviance: 421.9 AIC: 176.9

Modell illeszkedik

a<-cbind(Height, Girth - Height)
> a

összefoglaló (fák)

Girth Height Volume
Min. : 8.30 Min. :63 Min. :10.20
1st Qu.:11.05 1st Qu.:72 1st Qu.:19.40
Median :12.90 Median :76 Median :24.20
Mean :13.25 Mean :76 Mean :30.17
3rd Qu.:15.25 3rd Qu.:80 3rd Qu.:37.30
Max. :20.60 Max. :87 Max. :77.00

A megfelelő szórás eléréséhez

apply(trees, sd)
Girth Height Volume
3.138139 6.371813 16.437846
predict <- predict(logit, data_test, type = 'response')

Ezután a válasz-válasz változóra hivatkozunk, a jó válasz illeszkedésének modellezésére. Ennek kiszámításához az USAccDeath adatkészletet fogjuk használni.

Írjuk be az alábbi kivonatokat az R konzolba, és nézzük meg, hogy az évszám és az év négyzet hogyan történik rajtuk.

data("USAccDeaths")
force(USAccDeaths)

// Az 1973-1978 közötti év elemzése.

disc <- data.frame(count=as.numeric(USAccDeaths), year=seq(0, (length(USAccDeaths)-1), 1)))
yearSqr=disc$year^2
a1 <- glm(count~year+yearSqr, family="poisson", data=disc)
summary(a1)

Hívás:

glm (képlet = szám ~ év + évSqr, család = „poisson”, adat = lemez)

Deviance maradványok:

Min. 1Q Medián 3Q Max

-22, 4344 -6, 4401 -0, 0981 6, 0508 21, 4578

együtthatók:

Estimate Std. Hiba z érték Pr (> | z |)

(Elhallgatás) 9.187e + 00 3.557e-03 2582.49 <2e-16 ***

-7.207e-03 2.354e-04 -30.62 év <2e-16 év ***

yearSqr 8.841e-05 3.221e-06 27.45 <2e-16 ***

-

Signif. kódok: 0 '***' 0, 001 '**' 0, 01 '*' 0, 05 '.' 0, 1 '' 1

(A Poisson család diszperziós paramétere 1-nek tekinthető)

Null eltérés: 7357, 4 71 szabadsági fokon

Megmaradó eltérés: 6358, 0 69 szabadságfokon

AIC: 7149.8

Fisher pontozási iterációk száma: 4

A modell legmegfelelőbb ellenőrzéséhez a következő parancs használható a kereséshez

a vizsgálat maradványai. Az alábbiak szerint az érték 0.

1 - pchisq(deviance(a1), df.residual(a1))

(1) 0

A QuasiPoisson család használata az adott adatok nagyobb szórásához

a2 <- glm(count~year+yearSqr, family="quasipoisson", data=disc)
summary(a2)

Hívás:

glm (képlet = szám ~ év + évSqr, család = „quasipoisson”,

adatok = lemez)

Deviance maradványok:

Min. 1Q Medián 3Q Max

-22, 4344 -6, 4401 -0, 0981 6, 0508 21, 4578

együtthatók:

Estimate Std. Hiba t érték Pr (> | t |)

(Elhallgatás) 9.187e + 00 3.417e-02 268.822 <2e-16 ***

év -7.207e-03 2.261e-03 -3.188 0.00216 **

yearSqr 8.841e-05 3.095e-05 2.857 0.00565 **

-

(A quasipoisson család diszperziós paramétere 92, 28857 lesz.)

Null eltérés: 7357, 4 71 szabadsági fokon

Megmaradó eltérés: 6358, 0 69 szabadságfokon

AIC: NA

Fisher pontozási iterációk száma: 4

A Poisson és a binomiális AIC érték összehasonlítása jelentősen eltér. Elemezhetők pontosság és visszahívási arány alapján. A következő lépés annak ellenőrzése, hogy a maradék-variancia arányos-e az átlaggal. Ezután a ROCR könyvtár használatával megtervezhetjük a modell javítását.

Következtetés

Ezért az általánosított lineáris modellnek nevezett speciális modellre összpontosítottunk, amely segít a modell paramétereinek fókuszálásában és becslésében. Elsősorban a folyamatos válaszváltozó potenciálja. És láttuk, hogy a glm hogyan illeszkedik az R beépített csomagokhoz. Ezek a legnépszerűbb módszerek a számlálási adatok mérésére, és az adattudós által alkalmazott osztályozási technikák robusztus eszköze. Az R nyelv természetesen segíti a bonyolult matematikai funkciók elvégzését

Ajánlott cikkek

Ez egy útmutató a GLM számára R-ben. Itt tárgyaljuk a GLM függvényt és a GLM létrehozásának módját R-ben a faadatok példáival és kimeneteivel. A következő cikkben további információkat is megnézhet -

  1. R programozási nyelv
  2. Big Data architektúra
  3. Logisztikus regresszió R-ben
  4. Nagy adat-elemzési munkák
  5. Poisson regresszió az R-ben A Poisson regresszió végrehajtása

Kategória: