乐趣区

关于算法:R语言非参数模型厘定保险费率局部回归广义相加模型GAM样条回归

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

本文将剖析了几种用于制订保险费率的平滑技术。

  • 保费没有细分

该价格应与纯溢价相干,而纯溢价与频率成正比,因为

没有协变量,预期频率应为

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-0.5033  -0.3719  -0.2588  -0.1376  13.2700  

Coefficients:
            Estimate Std. Error z value Pr(>|z|)    
(Intercept)  -2.6201     0.0228  -114.9   <2e-16 ***
\-\-\-
Signif. codes:  0‘***’0.001‘**’0.01‘*’0.05‘.’0.1‘’1 

(Dispersion parameter for poisson family taken to be 1)

    Null deviance: 12680  on 49999  degrees of freedom
Residual deviance: 12680  on 49999  degrees of freedom
AIC: 16353

Number of Fisher Scoring iterations: 6
> exp(coefficients(regglm0))
(Intercept) 
 0.07279295

因而,如果咱们不想思考到潜在的异质性,通常将其 视为百分比,即概率,因为

能够解释为没有索赔的可能性。让咱们将其可视化为驾驶员年龄的函数,



  > plot(a,yp0,type="l",ylim=c(.03,.12))




  
> segments(a\[k\],yp1\[k\],a\[k\],yp2\[k\],col="red",lwd=3)

咱们的确会为所有驾驶员预测雷同的频率,例如对于 40 岁的驾驶员,

> cat("Frequency =",yp0\[k\],"confidence interval",yp1\[k\],yp2\[k\])
Frequency = 0.07279295  confidence interval 0.07611196 0.06947393

当初咱们思考一种状况,其中咱们尝试思考异质性,例如按年龄,

  • (规范)泊松回归

在(对数)泊松回归的想法是假如而不是的,咱们应该有,其中

在这里,让咱们只思考一个解释变量,即

咱们有

> plot(a,yp0,type="l",ylim=c(.03,.12))
> abline(v=40,col="grey")
> lines(a,yp1,lty=2)
> lines(a,yp2,lty=2)
> points(a\[k\],yp0\[k\],pch=3,lwd=3,col="red")
> segments(a\[k\],yp1\[k\],a\[k\],yp2\[k\],col="red",lwd=3)

对于咱们 40 岁的驾驶员的年化索赔频率的预测当初为 7.74%(比咱们之前的 7.28%略高)

> cat("Frequency =",yp0\[k\],"confidence interval",yp1\[k\],yp2\[k\])
Frequency = 0.07740574  confidence interval 0.08117512 0.07363636

不计算预期频率,而是计算比率

在程度蓝线上方,溢价将高于未分段的溢价,而低于此程度。在这里,年龄小于 44 岁的驾驶员将领取更多的费用,而年龄大于 44 岁的驾驶员将领取较少的费用。在引言中,咱们探讨了分段的必要性。如果咱们思考两家公司,一个细分市场,而另一个细分市场持平,那么年长的司机将去第一家公司(因为保险更便宜),而年老的司机将去第二家公司(同样,它更便宜)。问题在于,第二家公司暗中心愿老司机能补救这一危险。然而因为它们曾经不存在了,所以保险价格会太便宜了,公司也会放宽资金(如果没有破产的话)。因而,公司必须应用细分技术能力生存。当初,问题在于,咱们不能确定溢价的这种指数衰减是溢价随年龄变动的正确办法。一种代替办法是应用非参数技术来可视化年龄对索赔频率的_实在_影响。

  • 纯非参数模型

第一个模型能够是思考每个年龄的保费。能够思考将驾驶员的年龄作为回归_因素_,

> plot(a0,yp0,type="l",ylim=c(.03,.12))
> abline(v=40,col="grey")

在这里,咱们 40 岁司机的预测略低于前一个,但置信区间要大得多(因为咱们关注的是投资组合中很小的一类:年龄_恰好在_ 40 岁的司机)

Frequency = 0.06686658  confidence interval 0.08750205 0.0462311

在这里,咱们认为类别太小,溢价也太不稳固了:溢价将从 40 岁到 41 岁降落 20%,而后从 41 岁到 42 岁回升 50%。

> diff(log(yp0\[23:25\]))
        24         25 
-0.2330241  0.5223478

公司没有机会采纳这种策略来确保被保险人。保费的这种_不连续性_是这里的重要问题。

  • 应用年龄段

另一种抉择是思考年龄段,从十分年老的驾驶员到高级驾驶员。

> summary(regglmc1)

Coefficients:
                                   Estimate Std. Error z value Pr(>|z|)    
(Intercept)                         -1.6036     0.1741  -9.212  < 2e-16 ***
cut(ageconducteur, level1)(20,25\]   -0.4200     0.1948  -2.157   0.0310 *  
cut(ageconducteur, level1)(25,30\]   -0.9378     0.1903  -4.927 8.33e-07 ***
cut(ageconducteur, level1)(30,35\]   -1.0030     0.1869  -5.367 8.02e-08 ***
cut(ageconducteur, level1)(35,40\]   -1.0779     0.1866  -5.776 7.65e-09 ***
cut(ageconducteur, level1)(40,45\]   -1.0264     0.1858  -5.526 3.28e-08 ***
cut(ageconducteur, level1)(45,50\]   -0.9978     0.1856  -5.377 7.58e-08 ***
cut(ageconducteur, level1)(50,55\]   -1.0137     0.1855  -5.464 4.65e-08 ***
cut(ageconducteur, level1)(55,60\]   -1.2036     0.1939  -6.207 5.40e-10 ***
cut(ageconducteur, level1)(60,65\]   -1.1411     0.2008  -5.684 1.31e-08 ***
cut(ageconducteur, level1)(65,70\]   -1.2114     0.2085  -5.811 6.22e-09 ***
cut(ageconducteur, level1)(70,75\]   -1.3285     0.2210  -6.012 1.83e-09 ***
cut(ageconducteur, level1)(75,80\]   -0.9814     0.2271  -4.321 1.55e-05 ***
cut(ageconducteur, level1)(80,85\]   -1.4782     0.3371  -4.385 1.16e-05 ***
cut(ageconducteur, level1)(85,90\]   -1.2120     0.5294  -2.289   0.0221 *  
cut(ageconducteur, level1)(90,95\]   -0.9728     1.0150  -0.958   0.3379    
cut(ageconducteur, level1)(95,100\] -11.4694   144.2817  -0.079   0.9366    
\-\-\-
Signif. codes:  0‘***’0.001‘**’0.01‘*’0.05‘.’0.1‘’1 








> lines(a,yp1,lty=2,type="s")
> lines(a,yp2,lty=2,type="s")

在这里,咱们取得以下预测,

对于咱们 40 岁的驾驶员来说,当初的频率为 6.84%。

Frequency = 0.0684573  confidence interval 0.07766717 0.05924742

咱们应该思考其余类别,以查看预测是否对值敏感,

对于咱们 40 岁的司机来说,得出以下值:

Frequency = 0.07050614  confidence interval 0.07980422 0.06120807

所以在这里,咱们没有打消_不连续性_问题。这里的一个想法是思考_挪动区域_:如果指标是预测 40 岁驾驶员的频率,则应该以 40 为核心。而对于 35 岁的驾驶员,距离应该以 35 为核心。

  • 挪动均匀

因而,思考一些_部分_回归是很天然的,只应思考年龄_靠近_ 40 岁的驾驶员。这_简直_与_带宽无关_。例如,介于 35 和 45 之间的驱动程序能够被认为靠近 40。在实践中,咱们能够思考子集函数,也能够在回归中使用权重

> value=40
> h=5

要查看产生了什么,让咱们思考一个动画,感兴趣的年龄在一直变动,

在这里,对于咱们 40 岁的人来说,

Frequency = 0.06913391  confidence interval 0.07535564 0.06291218

咱们取得了能够解释为_部分_回归的曲线。然而在这里,咱们没有思考到 35 没有像 39 那样靠近 40。这里的 34 假如与 40 间隔很远。显然,咱们能够改良该技术:能够思考内核函数,即,越靠近 40,权重就越大。

> value=40
> h=5

在上面绘制

在这里,咱们对 40 的预测是

Frequency = 0.07040464  confidence interval 0.07981521 0.06099408

这就是_核回归技术_的思维。然而,如幻灯片中所述,能够思考其余非参数技术,例如样条函数。

  • 用样条平滑

在 R 中,应用样条函数很简略(某种程度上比内核平滑器简略得多)

> library(splines)

当初对咱们 40 岁司机的预测是

Frequency = 0.06928169  confidence interval 0.07397124 0.06459215

请留神,此技术与另一类_模型无关_,即所谓的狭义相加模型,即 GAM。

该预测与咱们下面取得的预测十分靠近(次要区别在于十分老的驾驶员)

Frequency = 0.06912683  confidence interval 0.07501663 0.06323702
  • 不同模型的比拟

无论哪种形式,所有这些模型都是无效的。所以兴许咱们应该比拟它们,

在上图中,咱们能够可视化这 9 个模型的预测下限和上限。水平线是不思考异质性的预测值。


参考文献

1. 用 SPSS 预计 HLM 档次线性模型模型

2.R 语言线性判别分析(LDA),二次判别分析(QDA)和正则判别分析(RDA)

3. 基于 R 语言的 lmer 混合线性回归模型

4.R 语言 Gibbs 抽样的贝叶斯简略线性回归仿真剖析

5. 在 r 语言中应用 GAM(狭义相加模型)进行电力负荷工夫序列剖析

6. 应用 SAS,Stata,HLM,R,SPSS 和 Mplus 的分层线性模型 HLM

7.R 语言中的岭回归、套索回归、主成分回归:线性模型抉择和正则化

8.R 语言用线性回归模型预测空气质量臭氧数据

9.R 语言分层线性模型案例

退出移动版