8. Binomna logistička regresija
Binomna logistička regresija predstavlja najčešće korišćenu statističku metodu za ocjenu rejting modela (PD modela, ali nekada je dio i LGD i EAD modela) u oblasti kreditnog rizika. Ona služi za modeliranje binomne ili dihotomne zavisne promjenljive (promjenljiva koja može uzeti samo dvije vrijednosti, npr. 0 i 1, ili dobar i loš i sl.). Funkcionalna forma modela binomne logističke regresije data je formulom:
gdje predstavlja zavisnu promjenljivu (binarni indikator), koeficijente logističke regresije, dok predstavlja set nezavisnih promjenljivih.
Ocjena parametara logističke regresije vrši se maksimiziranjem tzv. funkcije vjerodostojnosti (engleski maximum likelihood), koja ima sljedeći oblik:
gdje predstavlja ukupan broj opservacija, set nezavisnih promjenljivih, modelirani binomni indikator i koeficijente logističke regresije.
Standardne greške ocijenjenih koeficijenata logističke regresije date su formulom:
gdje predstavlja tzv. varijansnu/kovarijansnu matricu koja je izračunata kao dijagonalna matrica varijanse ocijenjenih vrijednosti zavisne promjenljive ( ):
Izvođenje zaključka o statističkoj značajnosti ocijenjenih koeficijenata vrši se na osnovu empirijskih vrijednosti i vjerovatnoća izvedenih iz vrijednosti. Izračunata statistika dobija se kao:
dok se odgovarajuća p vrijednost dobija na osnovu funkcije kumulative vjerovatnoće standardizovanog normalnog rasporeda (aritmetička sredina 0 i standardna devijacija 1). Poređenjem dobijenih p vrijednosti i određenog nivoa značajnosti izvodi se zaključak o statističkoj značajnosti ocijenjenih koeficijenata.
Primjer 60: U fajlu BLR.csv dati su podaci o 1000 klijenata sa indikatorom defaulta kredita (kolona y), kao i podaci o godinama starosti klijenata (kolona age) i ročnosti odobrenog kredita (kolona maturity). Ocijeniti model logističke regresije u kome indikator defaulta predstavlja zavisnu promjenljivu, dok godine klijenata i ročnost predstavljaju nezavisne promjenljive. Pored regresionih koeficijenata, prikazati i standardne greške tih ocjena, kao i z statistiku i odgovarajuće p vrijednosti za procjenu statističke značajnosti koeficijenata.
> #import podataka
> db <- read.csv("BLR.csv", header = TRUE)
> table(db$y)
0 1
700 300
> #definisanje zavisne i nezavisnih promjenljivih
> Y <- as.matrix(db[, "y"])
> X <- as.matrix(cbind(1, db[, c("maturity", "age")]))
> #definisanje funkcije vjerodostojnosti
> log.likelihood <- function(beta.coef, X, Y) {
+ opt.f <- -sum(Y * (X %*% beta.coef - log(1 + exp(X %*% beta.coef))) +
+ (1 - Y) * (-log(1 + exp(X %*% beta.coef))))
+ return(opt.f)
+ }
> #optimizacija funkcije vjerodostojnosti
> beta.coef.start <- rep(0, 3)
> optim.logit <- optim(beta.coef.start, log.likelihood, X = X, Y = Y, method = "BFGS")
> #prikaz ocijenjenih koeficijenata
> coef.e <- optim.logit$par
> coef.e
[1] -1.02285874 0.03747265 -0.01835174
> #ocijenjene vrijednosti zavisne promjenljive
> Y.hat <- exp(X %*% as.matrix(coef.e)) / (1 + exp(X %*% as.matrix(coef.e)))
> W <- diag(c(Y.hat * (1 - Y.hat)))
> #standardna greska ocjene koeficijenata
> beta.coef.se <- sqrt(diag(solve(t(X) %*% W %*% X)))
> beta.coef.se
1 maturity age
0.270817988 0.005734839 0.006658958
> #z vrijednosti
> z.val <- coef.e / beta.coef.se
> z.val
1 maturity age
-3.776923 6.534210 -2.755947
> #p vrijednosti
> p.val <- pnorm(abs(z.val), mean = 0, sd = 1, lower.tail = FALSE) * 2
> p.val
1 maturity age
1.587777e-04 6.394602e-11 5.852239e-03
> #r funkcija
> lr.e <- glm(y ~ maturity + age, data = db, family = "binomial")
> lr.s <- summary(lr.e)
> lr.s
Call:
glm(formula = y ~ maturity + age, family = "binomial", data = db)
Deviance Residuals:
Min 1Q Median 3Q Max
-1.5484 -0.8404 -0.7092 1.2423 2.0817
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -1.023860 0.270812 -3.781 0.000156 ***
maturity 0.037474 0.005735 6.535 6.38e-11 ***
age -0.018323 0.006658 -2.752 0.005925 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 1221.7 on 999 degrees of freedom
Residual deviance: 1169.2 on 997 degrees of freedom
AIC: 1175.2
Number of Fisher Scoring iterations: 4
> y.hat <- predict(lr.e, data = db[, c("age", "maturity")], type = "response")
> head(y.hat)
1 2 3 4 5 6
0.3242934 0.2064890 0.2698074 0.2160615 0.2191812 0.1781954
> #interpretacija koeficijenata
> lr.s$coefficients
Estimate Std. Error z value Pr(>|z|)
(Intercept) -1.02385960 0.270812091 -3.780701 1.563873e-04
maturity 0.03747397 0.005734753 6.534540 6.380536e-11
age -0.01832296 0.006658232 -2.751926 5.924598e-03
> exp(coef(lr.s)[-1, 1])
maturity age
1.0381850 0.9818439
Interpretacija ocijenjenih koeficijenata znatno se olakšava eksponovanjem dobijenih rezultata i u tom slučaju vrši se u terminima vjerovatnoće. Konkretno, u prethodnom primjeru vrijednosti default indikatora 1 znači da je kredit u defaultu, dok vrijednost 0 znači da kredit nije u defaultu. Eksponovani ocijenjeni koeficijent za promjenljivu ročnost (maturity) iznosi 1.038, što bi značilo da se povećanjem ročnosti od 1 mjeseca, povećavaju i šanse da će klijent biti defaultni za 3.8%. Ista interpretacija se može primijeniti i za promjenljivu godine (age), pri čemu povećanje godina starosti klijenta za 1 godinu vodi ka smanjenju vjerovatnoće defaulta za 1.8%. Pored interpretacije samih koeficijenata, njihovu statističku značajnost ispitujemo poređenjem dobijenih p vrijednosti sa odabranim nivoom značajnosti (alpha).
Odabir između više statistički značajnih modela logističke regresije u praksi često se vrši poređenjem vrijednosti informacionih kriterijuma (AIC), poređenjem devijansi, proporcijom ispravno klasifikovanih vrijednosti (matrica konfuzije-engleski confusion matrix, AUC kriva-engleski area under curve) s obzirom na to da logistička regresija predstavlja tzv. klasifikacioni algoritam.
Last updated
Was this helpful?