【发布时间】:2017-10-04 06:28:17
【问题描述】:
我有一个包含两个变量的数据框,即性别和城镇 (Df1)。我想计算性别的优势比(女性=1),我想按城镇计算,这样我最终得到了 Df1 的三个优势比。
我的实际数据集包含更多城镇,所以我想知道是否有比手动输入观察次数到 Epitools::oddsratio() 更通用的方法?
谢谢!
起点(df):
Df1 <- data.frame(gender=c("m","m","m","f","f","f","m","m","m","f","m","f","m","f","f","f","f","f","f","f"), town=c("ny","la","ny","la","ny","la","ny","la","ny","la","ny","la","ny","la","ma","ma","ma","ma","ma","ma"))
到目前为止的代码:
library(epitools)
Df2 <- matrix(c(12,20,8,20),byrow=TRUE,ncol=2)
dimnames(Df2) <- list(Group=c("females","males"),MI=c("subtotal","total"))
oddsratio(Df2)
注意:赔率(字面意思是两个赔率之间的比率)
假设 10 名男性中有 7 名被录取:p=0.7, q=1-0.7=0.3
假设 10 名女性中有 3 名被录取:p=0.3, q=1-0,3=0.7
男性录取几率:0.7/0.3=2.333(被录取/不被录取)
女性录取几率:0.3/0.7=0.429
入院优势比:OR=2.333/0.429=5.44,
即男性被录取的几率是女性的 5.44 倍。
【问题讨论】:
-
什么是优势比?它是如何计算的?
-
oddsratio(table(Df1$town, Df1$gender))为您提供三个优势比,其中第一个城镇作为基线。这是你想要的吗? -
epitools::oddsratio(table(Df1$town, Df1$gender)) 为我返回错误
-
请分享预期的输出
-
另外,假设我们考虑
la,您的数据表明la有5女性和2男性。你怎么知道其中有多少是admitted??这个值是从哪里来的?
标签: r