所以我有一个像这样的回归间隔
2.5 % 97.5 %
-1.1299063 -0.1777965
如何以编程方式访问值/检查0是否在置信区间内?
我已经尝试过了
interval[1]
但这给了我整个时间间隔。
我也尝试过访问数据框,但这不起作用。
答案 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]