全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
4536 11
2011-08-05
悬赏 20 个论坛币 未解决
我想求一组只有两个值(1和0)的数据的GPD,100多个observation,应用gdp.tail命令,x为数据(只包含1和0两种值)
gpd.x.fit2 = gpd.tail(x,one.tail=F, upper=NA, lower=NA, upper.method="ml",lower.method="ml", plot=F)
但是在调解程序的时候总是出现:
Problem in gpd.lmom(lmom = sample.LMOM(sample), location = locatio..: Either lmom or sample must be supplied!
换成命令
gpd.x.fit2 = gpd.tail(x,one.tail=F, upper=NA, lower=NA, upper.method="lmom",lower.method="lmom", plot=F)
总会出现:
Problem in gpd.lmom(sample = excess, location = 0): Either lmom or sample must be supplied!

此外,请教一下什么时候使用ml,什么时候使用lmom,两者有什么区别呢?
我求这个只是为了做empirical copula的中间过程,希望高手给予帮助!十分感谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2011-8-5 09:51:39

你没弄清楚Fit Generalized Pareto Distribution

  Fits a generalized Pareto (GPD) distribution to excesses over a high threshold.

正常数据运算过程如下:

###########
one.tail = F
upper = NA
lower = NA
upper.method = "ml"
lower.method = "ml"
z=seriesData(brazil.coffee[,2])
data=z[1:100,]
data
#[1] -0.0231670593 -0.0117879558 -0.0079365496  0.0275066458 -0.035506688,....-0.0074627212
n <- length(data)
sorted.data <- sort(data)
#[1] -0.1035406789 -0.0576291128 -0.0512932944 -0.0436750635 -0.0410080237,....0.0650989022
uu1 <- sorted.data[n - trunc(n * 0.15)]
uu2 <- sorted.data[n - trunc(n * 0.15) - 1]
upper <- (uu1 + uu2)/2
upper  # 0.02003258
upper.exceedances <- data[data > upper]
upper.exceedances   
#[1] 0.02750665 0.02178735 0.02353050 0.03189336 0.05241374......
excess <- upper.exceedances - upper
#[1] 0.007474062 0.001754770 0.003497913 0.011860780 0.032381158 ....
gpd.ml(sample = excess, location = 0)
#$par.ests:
#       beta mu        xi
# 0.01967103  0 0.1043923

##########

你的数据{0,1}怎适合Generalized Pareto Distribution

运算过程如下:

s=c(0,1)
b=sample(s,150,replace=T)
b
data1=b
n1 <- length(data1)
n1
sorted.data1 <- sort(data1)
sorted.data1
#[1] 0 0 0 0 0 0......1 1 1
uu11 <- sorted.data1[n1 - trunc(n1 * 0.15)]
uu11   #1
uu21 <- sorted.data[n1 - trunc(n1 * 0.15) - 1]
uu21   #NA
upper1 <- (uu11 + uu21)/2
upper1  #NA
upper.exceedances1 <- data1[data1 > upper1]
upper.exceedances1   # [1] NA NA NA NA NA NA NA...
excess1 <- upper.exceedances1 - upper1
excess1              # [1] NA NA NA NA NA NA NA...
gpd.ml(sample = excess1, location = 0)
#Problem in gpd.....


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-8-5 10:48:34
epoh 发表于 2011-8-5 09:51
你没弄清楚Fit Generalized Pareto Distribution  Fits a generalized Pareto (GPD) distribution to exces ...
请问一下你的意思是我的数据集是无法计算gpd.tail的吗?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-8-5 10:51:16
epoh 发表于 2011-8-5 09:51
你没弄清楚Fit Generalized Pareto Distribution  Fits a generalized Pareto (GPD) distribution to exces ...
那有什么解决方法吗?因为我想使用splus中empirical.copula来计算empirical copula然后做fitted copula,可是这个指令需要提供gpd,我一共两组数据,0,1这个是其中一组指示函数数据。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-8-5 11:31:55

请你看一下数据内容:

U.bmw.gpd <- gpd.2p(bmw[nz.idx], gpd.bmw.fit2)
V.siemens.gpd <- gpd.2p(siemens[nz.idx], gpd.siemens.fit2)
U.bmw.gpd [1:10]
# [1] 0.9925441 0.7206542 0.7612150 0.1507477 0.5346729 0.5346729 0.4550467 0.9780907 0.9923697 0.9465528
V.siemens.gpd[1:10]
# [1] 0.9145424 0.8579186 0.7578505 0.5569159 0.2795327 0.7974766 0.2227103 0.1000796 0.7157944 0.9497442
summary(V.siemens.gpd)
#          Min.       1st Qu.        Median          Mean       3rd Qu.          Max.
# 0.00005549238 0.25004672897 0.50000000000 0.49993328125 0.74995327103 0.99980710871

empcop.bs <- empirical.copula(x = U.bmw.gpd, y = V.siemens.gpd)

function empirical.copula() 只是将x,y串起

最主要是要用到他的一些METHODS :  

Afunc, LAMBDA, pcopula, contour.plot, tail.index, Kendalls.tau, Spearmans.rho.

你为何一定要用gpd

而不用empiricalCDF


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-8-5 11:40:15
epoh 发表于 2011-8-5 11:31
请你看一下数据内容:U.bmw.gpd
现在splus里好像没有ecdf了已经啊~
我现在主要就是想做一下fitted copula,做出图像~
您帮我看看有没有什么非常可行的方法
谢谢您了!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群