2016-09-05 76 views
0

我有一個S & P500數據集爲16年的收益率。當我繪製S & P500的ECDF並將其與等效正態分佈的CDF進行比較時,可以看到P 500數據中存在脂肪尾部。代碼如下: -將尾數據擬合爲R中的廣義帕累託分佈

library(quantmod) # Loading quantmod library 
getSymbols("^GSPC", from = as.character(Sys.Date()-365*16)) # SPX price date for 16 yrs 

SPX <- dailyReturn(GSPC) 
SPX_ecdf <- ecdf(as.numeric(SPX)) # dropping xts class 

plot(SPX_ecdf,lwd=2,col="red")# Plotting the empirical CDF of S&P500 
SPX_mean <- mean(as.numeric(SPX)) 
SPX_sd <- sd(as.numeric(SPX)) 

xseq<-seq(-4,4,.01) 
cumulative<-pnorm(xseq, mean=SPX_mean, sd=SPX_sd) 
lines(xseq,cumulative,col="blue",lwd=2) #Plotting the CDF of a Normal Distribution 
legend(x="topleft",c("Empirical CDF of S&P 500 Daily returns","CDF of the Normal Distribution"),col=c("red","blue"),lwd=c(2,2)) 

現在我想在GPD的幫助下模擬我的數據的尾部。現在,如果我是正確的,那麼形狀參數(ξ> 0)和縮放參數(β> 0)以使尾部成爲一個虛線(如果它真的有尾巴)。

在R中有沒有一種方法來測試這一點,並根據我的數據找到這些參數的值?

曾經有一個叫POT包,其中有一個功能fitgpd我相信會按我的比例和形狀參數。但是這個軟件包不再可用。是否有人知道一些其他軟件包中的類似功能,這些軟件包給我提供了擬合參數?

+0

fExtremes和fitdistrplus軟件包已經存在了很長時間,並且會是我第一次嘗試。 –

回答

0

我認爲這應該爲我工作

library(ismev) 
SPX <- SPX*(-1) # Converting the lower tail to the upper tail 
fit<-gpd.fit(as.numeric(SPX),0.04) # This will fit my data of the upper tail beyond threshold of 0.04 to a GPD 
fit$mle # This should give me the Maximum Likelihood estimates for the scale and shape parameter 

請讓我知道這看起來不錯?