【发布时间】:2015-10-19 19:32:18
【问题描述】:
如下所示的a 和b 是相同的数量,但在R 中以两种不同的方式计算。它们大部分相同,但有几个很大的不同。我不明白为什么会这样。
theta0 <- c(-0.4, 10)
OS.mean <- function(shape, rank, n=100){
term1 <- factorial(n)/(factorial(rank-1)*factorial(n-rank))
term2 <- beta(n-rank+1, rank) - beta(n-rank+shape+1, rank)
term1*term2/shape
}
OS.mean.theta0.100 <- OS.mean(theta0[1], rank=seq(1, 100, by=1))
Bias.MOP <- function(shape, scale, alpha){
scale*shape*OS.mean.theta0.100[alpha*100]/(1-(1-alpha)^shape) - scale
}
a <- rep(0, 98)
for(i in 2:99){
a[i-1] <- Bias.MOP(theta0[1], theta0[2], i/100)
}
plot(a)
b <- Bias.MOP(theta0[1], theta0[2], seq(0.02, 0.99, by=0.01))
plot(b)
a-b
另外一件奇怪的事情如下。
b[13] # -0.8185083
Bias.MOP(theta0[1], theta0[2], 0.14) # -0.03333929
它们应该是相同的。但他们显然不是。为什么?
【问题讨论】:
-
检查
((2:99)/100) - seq(0.02, 0.99, by=0.01)。 -
@Pascal 它们与 e-17 的差异非常接近。但是你会看到
a-b的一些条目是0.3。这正常吗?顺便问一下,哪种方法更好? -
杂项:为什么这些数字不相等
-
OP 没有评论订单 e-16 等的微小差异。他们评论的是订单 e-1 上的一些不同点:索引 13、28、56、57。跨度>
-
@20824 你知道的,你可以自己尝试所有这些东西..
标签: r