拓端tecdat|R语言编程指导逻辑回归和泊松回归模型对发生交通事故概率建模

 

 

原文链接 http://tecdat.cn/?p=14139

 

 

我们已经看到了如何考虑风险敞口,计算包含风险敞口的多个数量(经验均值和经验方差)的非参数估计量。让我们看看如果要对二项式变量建模。

 

这里的模型如下:

  • 未观察到https://latex.codecogs.com/gif.latex?N_i​该期间的索赔数量 https://latex.codecogs.com/gif.latex?[0,1]
  • 索偿的数量  https://latex.codecogs.com/gif.latex?Y_i

 

 

 

 

考虑一种情况,其中关注变量不是索偿的数量,而仅仅是索偿发生的标志。然后,我们希望将事件模型https://latex.codecogs.com/gif.latex?\ {N = 0 \}​对比https://latex.codecogs.com/gif.latex?\ {N%3E0 \}​,解释为不发生发生。鉴于我们只能观察https://latex.codecogs.com/gif.latex?\ {Y = 0 \}​vs   https://latex.codecogs.com/gif.latex?\ {Y%3E0 \}​。利用泊松过程模型,我们可以获得

https://latex.codecogs.com/gif.latex?\mathbb{P}(Y=0)%20=%20\mathbb{P}(N=0)^E

这意味着在一年的前六个月中没有索赔的概率是一年中没有索赔的平方根。假设可以https://latex.codecogs.com/gif.latex?\boldsymbol{X}​通过一些链接函数(使用GLM术语)表示为一些协变量来解释没有索赔的概率,

https://latex.codecogs.com/gif.latex?\mathbb {P}(N = 0 | \ boldsymbol {X})= h(\ boldsymbol {X} ^ {\ text {\ sffamily%20T}} \\粗体符号{\ beta})

现在,因为我们确实观察到  https://latex.codecogs.com/gif.latex?Y​而不是  https://latex.codecogs.com/gif.latex?N

我们有

https://latex.codecogs.com/gif.latex?\mathbb{P}(Y=0|\boldsymbol{X},E)=h(\boldsymbol{X}^{\text{\sffamily%20T} } \ boldsymbol {\ beta})^ E

我们将使用的数据集







> T1= contrat$nocontrat[I==FALSE]
> nombre2 = data.frame(nocontrat=T1,nbre=0)

> sinistres = merge(contrat,nombre)
> sinistres$nonsin = (sinistres$nbre==0)

我们可以考虑的第一个模型基于标准的逻辑回归方法,即

https://latex.codecogs.com/gif.latex?\mathbb {P}(Y = 0 | \ boldsymbol {X},E)= \ left(\ frac {\ exp(\ boldsymbol {X} ^ {\文字{\ sffamily%20T}} \ boldsymbol {\ beta})} {1+ \ exp(\ boldsymbol {X} ^ {\ text {\ sffamily%20T}} \ boldsymbol {\ beta})} \ right)^ Ë

很好,但是很难用标准函数处理。尽管如此,始终有可能通过数值计算给定的最大似然估计量https://latex.codecogs.com/gif.latex?(Y_i,\boldsymbol{X}_i,E_i)​。









> optim(fn=logL,par=c(-0.0001,-.001),
+ method="BFGS")
$par
[1] 2.14420560 0.01040707
$value
[1] 7604.073
$counts
function gradient 
      42       10 
$convergence
[1] 0
$message
NULL


现在,让我们看看基于标准回归模型的替代方案。例如对数线性模型Logistic回归算法)。因为暴露数是年概率的幂,所以如果https://latex.codecogs.com/gif.latex?h​是指数函数(或  https://latex.codecogs.com/gif.latex?h^{-1}​对数链接函数)  ,因为

https://latex.codecogs.com/gif.latex?\mathbb{P}(Y=0|\boldsymbol{X},E)=\exp(E+\boldsymbol{X}^{\text{\sffamily% 20T}} \ boldsymbol {\ beta})

现在,我们对其进行编码,




Error: no valid set of coefficients has been found: please supply starting values

尝试了所有可能的方法,但是无法解决该错误消息,






> reg=glm(nonsin~ageconducteur+offset(exposition),
+ data=sinistresI,family=binomial(link="log"),
+ control = glm.control(epsilon=1e-5,trace=TRUE,maxit=50),
+ start=startglm,
+ etastart=etaglm,mustart=muglm)
Deviance = NaN Iterations - 1 
Error: no valid set of coefficients has been found: please supply starting values

所以我决定放弃。实际上,问题出在https://latex.codecogs.com/gif.latex?\mathbb{P}(Y=0)​接近1 的事实。因为

https://latex.codecogs.com/gif.latex?\mathbb{P}(Y%3E0)=1-\mathbb{P}(Y=0)%20=%201-[1-\mathbb{P }(N%3E0)] ^ E

其中https://latex.codecogs.com/gif.latex?\mathbb{P}(N%3E0)​接近0,所以我们可以用泰勒展开,

https://latex.codecogs.com/gif.latex?\mathbb{P}(Y%3E0)\sim1-1+E\cdot%20\mathbb{P}(N%3E0)]=E\cdot% 20 \ mathbb {P}(N%3E0)]

在这里,暴露数不再显示为概率的幂,而是相乘。如果我们考虑对数链接函数,那么我们可以合并暴露数的对数。

现在可以完美运行了。

现在,要查看最终模型,我们回到Poisson回归模型,因为我们确实有概率模型https://latex.codecogs.com/gif.latex?\mathbb{P}(Y=\cdot)​。

现在我们可以比较这三个模型。我们还应该包括没有任何解释变量的预测。对于第二个模型(实际上,它运行时没有任何解释变量),我们运行

>  regreff=glm((1-nonsin)~1+offset(log(exposition)),
+ data=sinistres,family=binomial(link="log"))

预测

> exp(coefficients(regreff))
(Intercept) 
 0.06776376

可与逻辑回归比较,






> 1-exp(param)/(1+exp(param))
[1] 0.06747777

但是与泊松模型有很大的不同,




(Intercept) 
 0.07279295

我们产生一个图表比较那些模型,









> lines(age,1-yml1,type="l",col="purple")
> abline(h=exp(coefficients(regreff)),lty=2)

 

在这里观察到这三个模型是完全不同的。实际上,使用两个模型,可以进行更复杂的回归分析(例如使用样条曲线),以可视化年龄对发生或不发生交通事故概率的影响。如果将泊松回归(仍为红色)和对数二项式模型与泰勒展开进行比较,我们得到

 

 


参考文献

 

1.R语言多元Logistic逻辑回归 应用案例

 

2.面板平滑转移回归(PSTR)分析案例实现

 

3.matlab中的偏最小二乘回归(PLSR)和主成分回归(PCR)

 

4.R语言泊松Poisson回归模型分析案例

 

5.R语言回归中的Hosmer-Lemeshow拟合优度检验

 

6.r语言中对LASSO回归,Ridge岭回归和Elastic Net模型实现

 

7.在R语言中实现Logistic逻辑回归

 

8.python用线性回归预测股票价格

 

9.R语言如何在生存分析与Cox回归中计算IDI,NRI指标

 

posted @ 2020-07-21 19:11  拓端tecdat  阅读(391)  评论(0编辑  收藏  举报