原文連結
拓端資料科技 / Welcome to tecdattecdat.cn
通常,我們在回歸模型中一直說的一句話是“ 請檢視一下資料 ”。
在上一篇文章中,我們沒有檢視資料。如果我們檢視單個損失的分布,那麼在資料集中,我們會看到以下内容:
- > n=nrow(couts)
- > plot(sort(couts$cout),(1:n)/(n+1),xlim=c(0,10000),type="s",lwd=2,col="green")
看來我們的資料庫中有固定成本索賠。在标準情況下,我們如何處理?我們可以在這裡使用混合分布,
與
- 小額索賠的分布
,例如指數分布
- 狄拉克分布
,即
- 分布
,例如Gamma分布或對數正态分布
- > I1=which(couts$cout<1120)
- > I2=which((couts$cout>=1120)&(couts$cout<1220))
- > I3=which(couts$cout>=1220)
- > (p1=length(I1)/nrow(couts))
- [1] 0.3284823
- > (p2=length(I2)/nrow(couts))
- [1] 0.4152807
- > (p3=length(I3)/nrow(couts))
- [1] 0.256237
- > X=couts$cout
- > (kappa=mean(X[I2]))
- [1] 1171.998
在上一篇文章中,我們讨論了所有參數可能與某些協變量相關的想法,即
産生以下模型,
對于機率,我們應該使用多項式模型。回憶一下邏輯回歸模型,如果
,則
即
要導出多元擴充
和
同樣,可以使用最大似然,因為
在這裡,變量
(分為三個級别)分為三個名額(就像标準回歸模型中的任何分類解釋變量一樣)。進而,
對于邏輯回歸,然後使用牛頓拉夫森(Newton Raphson)算法在數值上計算最大似然。在R中,首先我們必須定義級别,例如
- > couts$tranches=cut(couts$cout,breaks=seuils,
- + labels=c("small","fixed","large"))
然後,我們可以定義一個多分類logistic模型回歸
使用一些標明的協變量
- > formula=(tranches~ageconducteur+agevehicule+zone+carburant,data=couts)
- # weights: 30 (18 variable)
- initial value 2113.730043
- iter 10 value 2063.326526
- iter 20 value 2059.206691
- final value 2059.134802
- converged
輸出在這裡
- Coefficients:
- (Intercept) ageconducteur agevehicule zoneB zoneC
- fixed -0.2779176 0.012071029 0.01768260 0.05567183 -0.2126045
- large -0.7029836 0.008581459 -0.01426202 0.07608382 0.1007513
- zoneD zoneE zoneF carburantE
- fixed -0.1548064 -0.2000597 -0.8441011 -0.009224715
- large 0.3434686 0.1803350 -0.1969320 0.039414682
- Std. Errors:
- (Intercept) ageconducteur agevehicule zoneB zoneC zoneD
- fixed 0.2371936 0.003738456 0.01013892 0.2259144 0.1776762 0.1838344
- large 0.2753840 0.004203217 0.01189342 0.2746457 0.2122819 0.2151504
- zoneE zoneF carburantE
- fixed 0.1830139 0.3377169 0.1106009
- large 0.2160268 0.3624900 0.1243560
為了可視化協變量的影響,還可以使用樣條函數
- > library(splines)
- > reg=(tranches~bs(agevehicule))
- # weights: 15 (8 variable)
- initial value 2113.730043
- iter 10 value 2070.496939
- iter 20 value 2069.787720
- iter 30 value 2069.659958
- final value 2069.479535
- converged
例如,如果協變量是汽車的壽命,那麼我們有以下機率
- > predict(reg,newdata=data.frame(agevehicule=5),type="probs")
- small fixed large
- 0.3388947 0.3869228 0.2741825
對于0到20歲的所有年齡段,
例如,對于新車,固定成本所占的比例很小(在這裡為紫色),并且随着車齡的增長而不斷增加。如果協變量是駕駛員居住地區的人口密度,那麼我們獲得以下機率
- # weights: 15 (8 variable)
- initial value 2113.730043
- iter 10 value 2068.469825
- final value 2068.466349
- converged
- > predict
- small fixed large
- 0.3484422 0.3473315 0.3042263
基于這些機率,可以在給定一些協變量(例如密度)的情況下得出索賠的預期成本。但首先,定義整個資料集的子集
- > sbaseA=couts[couts$tranches=="small",]
- > sbaseB=couts[couts$tranches=="fixed",]
- > sbaseC=couts[couts$tranches=="large",]
門檻值由
- > (k=mean(sousbaseB$cout))
- [1] 1171.998
然後,讓我們運作四個模型,
- > reg
- > regA
- > regB
- > regC
現在,我們可以基于這些模型計算預測,
> pred=cbind(predA,predB,predC)
為了可視化每個組成部分對溢價的影響,我們可以計算機率,預期成本(給定每個子集的成本),
- > cbind(proba,pred)[seq(10,90,by=10),]
- small fixed large predA predB predC
- 10 0.3344014 0.4241790 0.2414196 423.3746 1171.998 7135.904
- 20 0.3181240 0.4471869 0.2346892 428.2537 1171.998 6451.890
- 30 0.3076710 0.4626572 0.2296718 438.5509 1171.998 5499.030
- 40 0.3032872 0.4683247 0.2283881 451.4457 1171.998 4615.051
- 50 0.3052378 0.4620219 0.2327404 463.8545 1171.998 3961.994
- 60 0.3136136 0.4417057 0.2446807 472.3596 1171.998 3586.833
- 70 0.3279413 0.4056971 0.2663616 473.3719 1171.998 3513.601
- 80 0.3464842 0.3534126 0.3001032 463.5483 1171.998 3840.078
- 90 0.3652932 0.2868006 0.3479061 440.4925 1171.998 4912.379
現在,可以将這些數字繪制在圖形中,
(水準虛線在我們的資料集中是索賠的平均費用)。
專欄
精算科學
關于結合數學、統計方法以及程式語言對經濟活動來做風險分析、評估的見解。
探索專欄 ➔參考文獻
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語言分層線性模型案例