gpt4 book ai didi

r - 如何将具有相同协变量的个体的二项式响应数据分解为伯努利,反之亦然?

转载 作者:行者123 更新时间:2023-12-01 23:36:53 25 4
gpt4 key购买 nike

我想使用讨论的二项式数据实现二元逻辑回归 here .此外,我想添加一个变量来标识来自同一二项式数据点的解聚合的每个二进制数据点,以便我可以在分析中正确解释它们的相关性。

下面我展示了到目前为止我尝试的结果。它成功地复制了具有各自协变量的行,但尚未生成二进制变量。任何帮助将非常感激。

#输入二项式数据的结构#

DT<-tibble::tibble(Successes = c(2,3,3), Trials=c(3,4,5), X1=c("Yes", "No", "Yes"), X2=c(10.7, 11.3, 9.9))
# A tibble: 3 x 4
Successes Trials X1 X2
<dbl> <dbl> <chr> <dbl>
2 3 Yes 10.7
3 4 No 11.3
3 5 Yes 9.9

#我目前的尝试#

DT.expanded <- DT[rep(seq(nrow(DT)), DT$Trials), ]

DT.expanded
# A tibble: 12 x 4
Successes Trials X1 X2
<dbl> <dbl> <chr> <dbl>
2 3 Yes 10.7
2 3 Yes 10.7
2 3 Yes 10.7
3 4 No 11.3
3 4 No 11.3
3 4 No 11.3
3 4 No 11.3
3 5 Yes 9.9
3 5 Yes 9.9
3 5 Yes 9.9
3 5 Yes 9.9
3 5 Yes 9.9

#输出二进制数据的预期结构#

# A tibble: 12 x 4
Success X1 X2
<chr> <chr> <dbl>
1 Yes 10.7
1 Yes 10.7
0 Yes 10.7
1 No 11.3
1 No 11.3
1 No 11.3
0 No 11.3
1 Yes 9.9
1 Yes 9.9
1 Yes 9.9
0 Yes 9.9
0 Yes 9.9

在此先感谢您的帮助。

最佳答案

对于这种扩展,我发现生成一个列表列是最简单的,其中每行的列表元素是该行的二进制向量,您可以使用 c 创建它>rep 用于适当数量的 0 和 1。获得列表列后,您可以扩展数据框以适应。例如,

library(tidyverse)

df <- tibble(
Successes = c(2,3,3),
Trials = c(3,4,5),
X1 = c("Yes", "No", "Yes"),
X2 = c(10.7, 11.3, 9.9)
)

df <- df %>% mutate(binary = map2(Successes, Trials,
~ c(rep(1, .x),
rep(0, .y - .x))))
df
#> # A tibble: 3 x 5
#> Successes Trials X1 X2 binary
#> <dbl> <dbl> <chr> <dbl> <list>
#> 1 2 3 Yes 10.7 <dbl [3]>
#> 2 3 4 No 11.3 <dbl [4]>
#> 3 3 5 Yes 9.9 <dbl [5]>

df2 <- df %>% unnest()
df2
#> # A tibble: 12 x 5
#> Successes Trials X1 X2 binary
#> <dbl> <dbl> <chr> <dbl> <dbl>
#> 1 2 3 Yes 10.7 1
#> 2 2 3 Yes 10.7 1
#> 3 2 3 Yes 10.7 0
#> 4 3 4 No 11.3 1
#> 5 3 4 No 11.3 1
#> 6 3 4 No 11.3 1
#> 7 3 4 No 11.3 0
#> 8 3 5 Yes 9.9 1
#> 9 3 5 Yes 9.9 1
#> 10 3 5 Yes 9.9 1
#> 11 3 5 Yes 9.9 0
#> 12 3 5 Yes 9.9 0

关于r - 如何将具有相同协变量的个体的二项式响应数据分解为伯努利,反之亦然?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56821928/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com