有熟悉GPD分布檢驗(yàn)的同志進(jìn)來看看,本人門外漢,現(xiàn)在導(dǎo)師的研究中需要進(jìn)行GPD分布檢驗(yàn),遇到了一些問題需要請(qǐng)教一下,希望各位多多指教。
在利用Cramér-von Mises 統(tǒng)計(jì)量W2 和Anderson- Darling 統(tǒng)計(jì)量A2進(jìn)行GPD分布擬合優(yōu)度檢驗(yàn)的時(shí)候,首先需要產(chǎn)生一個(gè)如下圖所示的臨界值表,以便后續(xù)進(jìn)行擬合優(yōu)度檢驗(yàn)。
關(guān)于產(chǎn)生這個(gè)表的過程,我的理解如下:
1.對(duì)于一系列的形狀參數(shù)值(如0.1,0.2,0.3,...),依次選取其中一個(gè)形狀參數(shù)值(尺度參數(shù)大小取為1),隨機(jī)產(chǎn)生100個(gè)GPD分布隨機(jī)數(shù);
1.1.對(duì)這n個(gè)隨機(jī)數(shù)利用不同的參數(shù)估計(jì)方法(如MOM,PWM,MLE,PL-moments)估計(jì)其形狀參數(shù)和尺度參數(shù);
1.2.利用上一步的估計(jì)參數(shù)值(形狀參數(shù)、尺度參數(shù))計(jì)算,得到一個(gè)w2值和一個(gè)a2值;
對(duì)以上過程(1.1和1.2)重復(fù)N次,得到N個(gè)w2值和a2值,進(jìn)而分別計(jì)算該形狀參數(shù)下的w2和a2的不同的分位數(shù),也就是圖中的一行數(shù)值。最終得到臨界值表。
以下是我用R語言寫的函數(shù)代碼:
quantile_generate<-function(shape_1,scale=1){
#做一萬次循環(huán),每次產(chǎn)生100個(gè)隨機(jī)數(shù),計(jì)算得到一萬個(gè)w2和a2,并分別保存在W2和A2中,
#最后對(duì)W2和A2進(jìn)行分位數(shù)計(jì)算
W2<-c()
A2<-c()
for(j in 1:10^4){
m<-rgp(100,shape_1,scale) #產(chǎn)生100個(gè)隨機(jī)數(shù)
m.mean<-mean(m)
m.var<-var(m)
m.length<-length(m)
#MOM估計(jì)參數(shù)
shape_est<-0.5*(1-((m.mean^2)/(m.var)))
scale_est<-0.5*m.mean*(1+((m.mean)^2/(m.var)))
#計(jì)算W2和A2
gpdj<-1-(1+(shape_est*(m))/(scale_est))^(-1/shape_est)
gpdj<-gpdj[which(is.na(gpdj)==FALSE)]
gpdj<-gpdj[gpdj>0]
m.length1<-length(gpdj)
i<-1:m.length1
c<-(2*i-1)/(2*m.length1)
w2<-1/(12*m.length1)+sum((gpdj-c)^2,na.rm = TRUE)
a2<--m.length1-sum((i*2-1)/m.length1*(log(gpdj)+log(1-gpdj[m.length1-i+1])),na.rm = TRUE)
W2<-c(W2,w2)
A2<-c(A2,a2)
}
w2<-quantile(W2,c(0.001,0.005,0.01,0.025,0.05,0.1,0.25,0.5)) #計(jì)算分位數(shù)
a2<-quantile(A2,c(0.001,0.005,0.01,0.025,0.05,0.1,0.25,0.5)) #計(jì)算分位數(shù)
return(list(w2,a2))
}
在形狀參數(shù)取0.1時(shí),函數(shù)的返回結(jié)果如下:
請(qǐng)問各位這個(gè)結(jié)果為什么這么大(相比前兩張圖中的臨界值)?還有為什么A2會(huì)等于0?
比較著急,希望熟悉GPD的人盡量幫幫忙啊,謝謝各位。!
![廣義帕累托分布擬合優(yōu)度檢驗(yàn)問題]()
W2臨界值表.PNG
![廣義帕累托分布擬合優(yōu)度檢驗(yàn)問題-1]()
A2臨界值表.PNG
![廣義帕累托分布擬合優(yōu)度檢驗(yàn)問題-2]()
函數(shù)運(yùn)行結(jié)果.PNG |