Advertisement

R——判断数据是否符合某一分布

阅读量:

首先这篇文章判断数据是否服从某一分布(二)——简单易用fitdistrplus包 - ywliao - 博客园 (cnblogs.com)

有提到fitdistrplus的应用,适用于基本的方法。本文章想根据他写的部分进行一定的补充。

如果从网络上找到了保险公司损失数据,对于损失会有频率(每天发生损失的次数,ex:1.1号发生损失8次,1.2号发生损失3次)和严重性(每次损失的金额,ex:1000,4000,200等)。如果想预测一年总损失,那就需要对这些损失的分布进行判断,选择最适合的分布。

这个代码同时会算出P值,AIC等指标可以用来检测拟合结果哦

首先导入

library(fitdistrplus)

library(actuar)
library(eva)

  1. 泊松分布
    fit_poi<-fitdist(DATA,'pois')
    summary(fit_poi)
    gofstat(fit_poi)

  2. 负二项分布
    fit_nb<-fitdist(DATA,'nbinom')
    summary(fit_nb)
    gofstat(fit_nb)

3.正态分布

fnorm.DATA1<-fitdist(DATA1,'norm')

summary(fnorm.DATA1)

gofstat(fnorm.DATA1)

ks.test(DATA1,'pnorm',mean=fnorm.DATA1estimate[1],sd=fnorm.DATA1estimate[2])

4.伽马分布

fg.DATA1<-fitdist(data1,'gamma',start = list(scale=1,shape=1))
summary(fg.DATA1)
gofstat(fg.DATA1)
ks.test(DATA1,'pgamma',fg.DATA1estimate[1],fg.DATA1estimate[2])

5.GPD广义帕累托分布

library(mev)
gpdDATA1<-fit.gpd(DATA1,threshold = 0)
gpdDATA1nllh AICDATA1<-gpdDATA1nllh*2+4
AICDATA1
library(gPdtest)
fgdp.DATA1=gpd.fit(x=DATA1,method = 'amle')
ks.test(DATA1,'pgpd',loc=0,scale=fgdp.DATA1[2,1],shape=fgdp.DATA1[1,1])

全部评论 (0)

还没有任何评论哟~