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