首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何找到betareg包接受的最小浮点值?

如何找到betareg包接受的最小浮点值?
EN

Stack Overflow用户
提问于 2018-09-17 21:01:20
回答 1查看 156关注 0票数 2

我在R中执行一个β回归,它需要0到1之间的值,端点排除在外,即( 0,1 )而不是0,1。

我的数据集中有大约0和1的值,所以我想将它们转换为最小的邻居,例如0.0000.0001和0.9999.9999。我使用了.Machine$double.xmin (这给出了2.225074e-308),但是betareg()仍然给出了一个错误:

无效的因变量,所有观察必须在(0,1)中。

如果我使用0.000001和0.999999,我会得到一组不同的错误:

1:在betareg.fit(X,Y,Z,权值,偏移量,链接,link.phi,类型,控制)中:无法反转信息矩阵:迭代过早停止 2:在sqrt(wpp):chol.default(K)中的错误:4阶的前导小调不是正定的

只有当我使用0.0001和0.9999时,我才能没有错误地运行。有什么方法可以用betareg改进这个最小值吗?还是我应该对此感到高兴?

EN

回答 1

Stack Overflow用户

发布于 2018-09-18 14:07:44

eps (从0到1的位移)试一试,首先等于1e-4 (如这里所示),然后再用1e-3。如果模型的结果与你所关心的没有任何不同,那就太好了。如果是的话,你需要对非常小心,因为这意味着你的答案会对假设非常敏感。

在下面的例子中,色散参数phi变化很大,但是截距和斜率参数变化不大。

如果您确实发现对于您的特定数据,参数会发生令人担忧的变化,那么您需要更仔细地考虑零和1产生的过程,并对该过程进行适当的建模。

  • 审查数据模型:0/1通过最小/最大检测阈值产生,将0/1值建模为实际处于尾部某个位置或
  • 一个障碍/零一通货膨胀模型:零和一是通过与其他数据分离的过程产生的,使用二项式或多项模型来描述零对(0,1)比1,然后在(0,1)分量上使用Beta回归)。

对于CrossValidated来说,有关这些步骤的问题可能比对这些步骤更合适。

样本数据

代码语言:javascript
复制
set.seed(101)
library(betareg)
dd <- data.frame(x=rnorm(500))
rbeta2 <- function(n, prob=0.5, d=1) {
    rbeta(n, shape1=prob*d, shape2=(1-prob)*d)
}
dd$y <- rbeta2(500,plogis(1+5*dd$x),d=1)
dd$y[dd$y<1e-8] <- 0

试配函数

代码语言:javascript
复制
ss <- function(eps) {
    dd <- transform(dd,
                    y=pmin(1-eps,pmax(eps,y)))
    m <- try(betareg(y~x,data=dd))
    if (inherits(m,"try-error")) return(rep(NA,3))
    return(coef(m))
}
ss(0)  ## fails
ss(1e-8) ## fails
ss(1e-4)
## (Intercept)           x       (phi) 
##   0.3140810   1.5724049   0.7604656
ss(1e-3)  ## also fails
ss(1e-2)
## (Intercept)           x       (phi) 
##   0.2847142   1.4383922   1.3970437
ss(5e-3)
## (Intercept)           x       (phi) 
##   0.2870852   1.4546247   1.2029984

尝试将其用于一系列值。

代码语言:javascript
复制
evec <- seq(-4,-1,length=51)
res <- t(sapply(evec, function(e) ss(10^e)) )
library(ggplot2)
ggplot(data.frame(e=10^evec,reshape2::melt(res)),
       aes(e,value,colour=Var2))+
    geom_line()+scale_x_log10()

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52375639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档