计算 r 中因子水平的置信区间
Calculate confidence interval for factor levels in r
我有一个包含约 2,204 项鸟类调查的数据集。我使用(每个 sex/total 每个性别的调查数量的 1 数量)计算了每个性别的检测率。我想计算每个性别的检出率的置信区间。数据集如下所示:
bird
sex
outcome
a
f
1
a
f
0
a
f
1
a
f
0
a
f
1
b
m
1
b
m
0
b
m
0
b
m
1
b
m
1
c
f
1
c
f
0
c
f
1
c
f
0
c
f
1
我用这个代码来计算每个性别的检出率:
df$outcome <- as.numeric(df$outcome)
detection_sex <- df %>%
group_by(sex) %>%
summarise(dr = mean(sex))
男性检出率为59%,女性检出率为56%。我不确定如何为每个性别提取 95% CI。我有 729 份女性调查和 1,475 份男性调查,所以我使用此代码来尝试获得 95% CI:
Hmisc::binconf(1475, 2204)
这产生了:
PointEst Lower Upper
0.3307623 0.3114294 0.350684
这不可能,因为男性的平均检出率为 59%。有没有办法让每个性别的平均检出率达到 95%CI?
如果我没理解错的话,你想独立计算每个性别的检出率的置信区间,对吗?
如果是这样,您可以尝试以下操作。按 sex
分组后,您可以对 Hmisc
中的二项式概率使用 binconf
并包含参数以提供每个 sex
.
所需的所有结果
调用 binconf
时,第一个参数将是检测到的结果总数(或 sum(outcome)
)。第二个参数是鸟的总数surveyed/observations(或n()
)。
结果包括以下内容(对于每个 sex
):X
是 outcome
的总数,N
是观察总数,PointEst
这是均值的点估计值,以及上下置信区间估计值。
默认值为 0.05 的 alpha 和 Wilson 区间。
library(tidyverse)
library(Hmisc)
df %>%
group_by(sex) %>%
summarise(CI = list(binconf(sum(outcome),
n = n(),
include.x = T,
include.n = T,
return.df = T))) %>%
unnest(CI)
输出
# A tibble: 2 × 6
sex X N PointEst Lower Upper
<chr> <dbl> <dbl> <dbl> <dbl> <dbl>
1 f 6 10 0.6 0.313 0.832
2 m 3 5 0.6 0.231 0.882
我有一个包含约 2,204 项鸟类调查的数据集。我使用(每个 sex/total 每个性别的调查数量的 1 数量)计算了每个性别的检测率。我想计算每个性别的检出率的置信区间。数据集如下所示:
bird | sex | outcome |
---|---|---|
a | f | 1 |
a | f | 0 |
a | f | 1 |
a | f | 0 |
a | f | 1 |
b | m | 1 |
b | m | 0 |
b | m | 0 |
b | m | 1 |
b | m | 1 |
c | f | 1 |
c | f | 0 |
c | f | 1 |
c | f | 0 |
c | f | 1 |
我用这个代码来计算每个性别的检出率:
df$outcome <- as.numeric(df$outcome)
detection_sex <- df %>%
group_by(sex) %>%
summarise(dr = mean(sex))
男性检出率为59%,女性检出率为56%。我不确定如何为每个性别提取 95% CI。我有 729 份女性调查和 1,475 份男性调查,所以我使用此代码来尝试获得 95% CI:
Hmisc::binconf(1475, 2204)
这产生了:
PointEst Lower Upper
0.3307623 0.3114294 0.350684
这不可能,因为男性的平均检出率为 59%。有没有办法让每个性别的平均检出率达到 95%CI?
如果我没理解错的话,你想独立计算每个性别的检出率的置信区间,对吗?
如果是这样,您可以尝试以下操作。按 sex
分组后,您可以对 Hmisc
中的二项式概率使用 binconf
并包含参数以提供每个 sex
.
调用 binconf
时,第一个参数将是检测到的结果总数(或 sum(outcome)
)。第二个参数是鸟的总数surveyed/observations(或n()
)。
结果包括以下内容(对于每个 sex
):X
是 outcome
的总数,N
是观察总数,PointEst
这是均值的点估计值,以及上下置信区间估计值。
默认值为 0.05 的 alpha 和 Wilson 区间。
library(tidyverse)
library(Hmisc)
df %>%
group_by(sex) %>%
summarise(CI = list(binconf(sum(outcome),
n = n(),
include.x = T,
include.n = T,
return.df = T))) %>%
unnest(CI)
输出
# A tibble: 2 × 6
sex X N PointEst Lower Upper
<chr> <dbl> <dbl> <dbl> <dbl> <dbl>
1 f 6 10 0.6 0.313 0.832
2 m 3 5 0.6 0.231 0.882