检查值是否在置信区间内

时间:2014-03-05 04:55:03

标签: r

所以我有一个像这样的回归间隔

        2.5 %        97.5 % 
    -1.1299063   -0.1777965 

如何以编程方式访问值/检查0是否在置信区间内?

我已经尝试过了

interval[1]

但这给了我整个时间间隔。

我也尝试过访问数据框,但这不起作用。

2 个答案:

答案 0 :(得分:2)

这是一种可能性(很多):

两个数字的乘积只能是负数,如果其中一个是正数而另一个是负数,即0在它们之间。

set.seed(42)
CI <- quantile(rlnorm(10), c(0.025, 0.975))
#       2.5%     97.5% 
#  0.6429574 6.8530659 
prod(CI) < 0
#[1] FALSE

CI <- quantile(rnorm(10), c(0.025, 0.975))
#       2.5%     97.5% 
#  -2.607858  2.069176 
prod(CI) < 0
#[1] TRUE

当然,如果你想要冗长,你可以这样做:

unname((CI[1] < 0 && CI[2] > 0) || (CI[1] > 0 && CI[2] < 0))
#[1] TRUE

答案 1 :(得分:1)

如果区间包含零,那么似乎完全过分强调,当真正的问题是区间实际包含零时。当我加入时,我在SO文档和元数据中读到,我们应尽量使每个答案都尽可能准确。所以我们再来一次希望这个修订后的答案也不会被投票。

据我所知,你问的是如何从confint的结果中提取特定数字(查看评论)。

来自confint文档文件


<强>用法

confint(object, parm, level = 0.95, ...)

<强>参数

object - 合适的模型对象

parm - 指定哪些参数的置信区间,数字向量或名称向量。如果缺少,则考虑所有参数。

level - 所需的置信度。

... - 方法的其他参数


来自glm.D93

example(confint)以及一些额外的工作:

> counts <- c(18,17,15,20,10,20,25,13,12)
> outcome <- gl(3, 1, 9); treatment <- gl(3, 3)
> glm.D93 <- glm(counts ~ outcome + treatment, family = poisson())

> ci <- confint(glm.D93)
Waiting for profiling to be done...
> ci
                 2.5 %      97.5 %
(Intercept)  2.6958215  3.36655581
outcome2    -0.8577018 -0.06255840
outcome3    -0.6753696  0.08244089
treatment2  -0.3932548  0.39325483
treatment3  -0.3932548  0.39325483

> class(ci)
[1] "matrix"

> ci[1,]
   2.5 %   97.5 % 
2.695822 3.366556 

> ci[1,1]
[1] 2.695822

因此,在参考您的interval[1]时,请使用interval[1,1]