非参数模型厘定保险费率:局部回归、广义相加模型GAM、样条回归

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

由Kaizong Ye,Sherry Deng撰写

保费没有细分

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

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

×

关于机器学习中的参数模型和非参数模型之间的解释并没有一个完全一致的解答,


有从是不是对数据的分布做了相关假设进行分析的


 也有是从模型的参数量大小进行解答的


二者好像是一致的,但是个人觉得如下使用是不是对数据分布进行了假设来区分并不是特别好理解。


非参数模型(non-parametric model)和参数模型(parametric model)作为数理统计学中的概念,现在也常用于机器学习领域中。

在统计学中,参数模型通常假设总体服从某个分布,这个分布可以由一些参数确定,如正态分布由均值和标准差确定,在此基础上构建的模型称为参数模型;非参数模型对于总体的分布不做任何假设或者说是数据分布假设自由,只知道其分布是存在的,所以就无法得到其分布的相关参数,只能通过非参数统计的方法进行推断。


所以说,参数模型和非参数模型中的“参数”并不是模型中的参数,而是数据分布的参数。


 


看了各种解答之后,我觉得二者可以这样进行区分:


一、首先需要明确的是 非参数模型并不是说模型中没有参数!


这里的non-parametric类似单词priceless,并不是没有价值,而是价值非常高,无价,也就是参数是非常非常非常多的!(注意:所谓“多”的标准,就是参数数目大体和样本规模差不多)


而:可以通过有限个参数来确定一个模型,这样的方式就是“有参数模型”,也就是这里说的参数模型,如线性回归、Logistic回归(假定样本维度为N,则假定N个参数theta1,theta2…thetaN)。


二、其次:参数模型 :对学到的函数方程有特定的形式,也就是明确指定了目标函数的形式 — 比如线性回归模型,就是一次方程的形式,然后通过训练数据学习到具体的参数。


所以参数机器学习模型包括两个部分:

1、选择合适的目标函数的形式。

2、通过训练数据学习目标函数的参数。


通常来说,目标函数的形式假设是:对于输入变量的线性联合,于是参数机器学习算法通常被称为“线性机器学习算法”。


 三、非参数机器学习算法:对于目标函数形式不作过多的假设的算法称为非参数机器学习算法。通过不做假设,算法可以自由的从训练数据中学习任意形式的函数。


对于理解非参数模型的一个好例子是k近邻算法,其目标是基于k个最相近的模式对新的数据做预测。这种理论对于目标函数的形式,除了相似模式的数目以外不作任何假设。


四、最后:


常见的参数机器学习模型有:

1、逻辑回归(logistic regression)

2、线性成分分析(linear regression)

3、感知机(perceptron)(假设分类超平面是wx+b=0)


参数机器学习算法有如下优点:

1、简洁:理论容易理解和解释结果。

2、快速:参数模型学习和训练的速度都很快。

3、数据更少:通常不需要大量的数据,在对数据的拟合不很好时表现也不错。


参数机器学习算法的局限性:

1、拘束:以指定的函数形式来指定学习方式。

2、有限的复杂度:通常只能应对简单的问题。

3、拟合度小:实际中通常无法和潜在的目标函数完全吻合,也就是容易出现欠拟合。


 


常见的非参数机器学习模型有:

1、决策树

2、朴素贝叶斯

3、支持向量机(SVM的例子中,SVM的参数α数目和样本数目相同,从定义看来,因为参数数目和样本规模相当,所以属于无参数模型。当然,SVM通过得到支撑向量的方式,只有若干样本的参数α不为0,从这个角度,SVM还属于“稀疏模型”,这又属于另外一码事了。)

4、神经网络


非参数机器学习算法的优势有:

1、可变性:可以拟合许多不同的函数形式。

2、模型强大:对于目标函数不做假设或者作出很小的假设。

3、表现良好:对于训练样本数据具有良好的拟合性。


非参数机器学习算法的局限性:

1、需要更多数据:对于拟合目标函数需要更多的训练数据。

2、速度慢:因为需要训练跟多的参数,所以训练过程通常比较慢。

3、过拟合:有较高的风险发生过拟合,对于预测的效果解释性不高。



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

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


This image has an empty alt attribute; its file name is image.png

专栏

精算科学

关于结合数学、统计方法以及程序语言对经济活动来做风险分析、评估的见解。

探索专栏

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

  > 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

R语言对巨灾风险下的再保险合同定价研究案例:广义线性模型和帕累托分布Pareto distributions分析

阅读文章


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


随时关注您喜欢的主题


在水平蓝线上方,溢价将高于未分段的溢价,而低于此水平。在这里,年龄小于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个模型的预测上限和下限。水平线是不考虑异质性的预测值。


可下载资源

关于作者

Kaizong Ye拓端研究室(TRL)的研究员。在此对他对本文所作的贡献表示诚挚感谢,他在上海财经大学完成了统计学专业的硕士学位,专注人工智能领域。擅长Python.Matlab仿真、视觉处理、神经网络、数据分析。

本文借鉴了作者最近为《R语言数据分析挖掘必知必会 》课堂做的准备。

​非常感谢您阅读本文,如需帮助请联系我们!

 
QQ在线咨询
售前咨询热线
15121130882
售后咨询热线
0571-63341498