以下のコードは、割引レベル間の移動が毎年評価されるように機能します。例: 1 年間請求なし、割引レベルを上げる、翌年請求する、割引レベルを下げる、年に 2 回以上請求する、0% レベルの割引に戻す、これは請求率 0.1、...、0.8。期間を 2 年に変更するとします。たとえば、1 年目または 2 年目に請求がなかった場合は割引レベルを上げ、1 年目または 2 年目に 1 件の請求が行われた場合は割引レベルを下げます。年期間、割引の 0% レベルに低下します。このコードを編集して期間を変更するにはどうすればよいですか?
a <- array(0:0,dim=c(21,5000)) # over time period t=21, 5000 policy holders
d<-array(1:5)
e<-array(1:5) # five discount levels used
p<-array(1:8) # premium charged for 8 separate claim rates
z=0
e[1]=1 # discount 0%
e[2]=.8 # discount 20%
e[3]=.7 # discount 30%
e[4]=.6 # discount 40%
e[5]=.5 # discount 50%
for (l in seq(0.1,0.8,.1)){ # claim rates 0.1,0.2,0.3...0.8
for (j in 1:20){
for (i in 1:5000) {
b<-min(2,rpois(1,l))
if (b==2) {a[j+1,i]=0} # b is the number of claims made, if 2 or more, drop down to 0%discount
if (b==1) {a[j+1,i]=max(0,a[j,i]-1)} # if 1 claim made, drop back one discount level
if (b==0) {a[j+1,i]=min(4,a[j,i]+1)} # if 0 claims made, go to next level of discount
}
}
for (k in 1:5){
d[k]=1000*e[k]*(length(subset(a[21,],a[21,]==(k-1)))/5000)
}
z=z+1;p[z]=sum(d)
}
p