首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >交叉乘法求取样本比例

交叉乘法求取样本比例
EN

Stack Overflow用户
提问于 2022-08-22 04:11:58
回答 1查看 38关注 0票数 1

我有一个更大的数据集,下面是该数据的子集。范畴是因变量,Day_1和Day_2是自变量。

代码语言:javascript
复制
ID <- c("e-1", "e-2", "e-3", "e-8", "e-9", "e-10", "e-13", "e-16", "e-17", "e-20")
Day_1 <- c(0.58, 0.62, 0.78, 0.18, 0.98, 0.64, 0.32, 0.54, 0.94, 0.87)
Day_2 <- c(0.58, 0.65, 0.25, 0.34, 0.17, 0.82, 0.67, 0.39, 0.49, 0.86)
Category <- c(1, 1, 0, 1, 0, 1, 1, 1, 0, 1)

df <- data.frame(ID, Day_1, Day_2, Category)

由于0和1类的样本大小不同(3 -类别0和7类别1),我想进行交叉乘法。这意味着重复所有类别0数据点7次,所有类别1数据点重复3次,这样都有一个新的样本大小为7*3。最后的数据帧应该包含所有列,作为'df‘,但也包括所有增加的行。

我应该怎么在R里这么做?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-22 05:49:44

这可能是错误的方法,因为您将增加整个样本大小,从而夸大t-统计。

请参见这个带有二进制因变量的小示例。通过将样本大小加倍(而不改变"am"的比例),您将得到不同的结果。

代码语言:javascript
复制
summary(glm(am ~ mpg, mtcars, family='binomial'))
#             Estimate Std. Error z value Pr(>|z|)   
# mpg           0.3070     0.1148   2.673  0.00751 **
  
summary(glm(am ~ mpg, rbind(mtcars, mtcars), family='binomial'))
#             Estimate Std. Error z value Pr(>|z|)   
# mpg          0.30703    0.08121   3.781 0.000156 ***

您需要的是频率w8,它是通过将总体比例(在您的情况下都是.5)除以样本比例得到的。为此您可以使用mapply

代码语言:javascript
复制
mtcars <- transform(mtcars, 
                    w=mapply(`/`, 
                             c(`0`=.5, `1`=.5), 
                             proportions(table(am)))[as.character(am)])

summary(glm(am ~ mpg, mtcars, weights=w, family='binomial'))
#             Estimate Std. Error z value Pr(>|z|)   
# mpg           0.3005     0.1123   2.676  0.00746 **  
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73440135

复制
相关文章

相似问题

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