如何拟合广义逻辑函数?

机器算法验证 物流 广义线性模型
2022-03-28 11:47:28

我正在尝试拟合预测概率的模型:h(X,B)(0,1)

令我震惊的是,在很多情况下,逻辑回归似乎是一个糟糕的链接函数,我期望 S 曲线,但我也期望预测概率的界限远大于 0,远小于 1。

例如,假设我想预测 10 年内首次破产的可能性,并且我有一些特征x(例如,贷款违约的年数)。在这里,我可能期望,对于所有 xp>>0因为很多人因为与贷款违约无关的原因而破产,而且p<<1因为超过某个时间点,更多的贷款违约年数不会增加新破产的风险,因为贷款违约年数并不能完全决定概率,你会期望p<<1.

用逻辑回归拟合这样的概率函数会导致拟合非常差:

在此处输入图像描述

上面的目标函数是“广义逻辑函数”的一个(特例)。在这种情况下:

prob=pmin+(pmaxpmin)logistic(X,B)

有逻辑输入X和系数B. 有没有好的优化方法 pmin,pmaxB 对于这种类型的函数,使得回归误差的测量最小化(对数误差、平方误差......),或者类似的“S”形模型可能比逻辑曲线提供更好的拟合?

1个回答

给定二元响应yi和协变量xi,i=1,2,,n,您的模型的可能性是

L(β0,β1,pmin,pmax)=i=1npiyi(1pi)1yi
其中每个
pi=pmin+(pmaxpmin)11+exp((β0+β1xi).
只需编写一个计算此日志的函数,然后应用一些通用优化算法来针对四个参数在数值上最大化它。例如,在 R 中:

# the log likelihood
loglik <- function(par,y,x) {
  beta0 <- par[1]
  beta1 <- par[2]
  pmin <- par[3]
  pmax <- par[4]
  p <- pmin + (pmax - pmin)*plogis(beta0 + beta1*x)
  sum(dbinom(y, size=1, prob=p, log=TRUE))
}
# simulated data
x <- seq(-10,10,len=1000)
y <- rbinom(n=length(x),size=1,prob=.2 + .6*plogis(.5*x))
# fit the model
optim(c(0, 0.5 ,.1, .9), loglik, control=list(fnscale=-1), y=y,x=x, lower=c(-Inf,-Inf,0,0),upper=c(Inf,Inf,1,1))

请注意,要测试较低平台的证据pmin在您的数据中,您的H0:pmin=0是在参数空间的边界和近似/渐近分布2(logL(θ^1)logL(θ^0))将是自由度为 1 和 0 的卡方分布的混合,请参阅 Self, SG & Liang, K. 非标准条件下最大似然估计量和似然比检验的渐近特性 J. Amer。统计学家。协会,1987,82,605-610。

在更简单的情况下,只有一个平台(所以pmax=1或者pmin=0) 该模型等价于零膨胀二元回归模型,可以使用例如glmmTMBR 包进行拟合。

其它你可能感兴趣的问题