【问题标题】:Odds ratio calculations general method优势比计算的一般方法
【发布时间】: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,您的数据表明la5 女性和2 男性。你怎么知道其中有多少是admitted ??这个值是从哪里来的?

标签: r


【解决方案1】:

这样的?

library(tidyverse)
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"))

Df1 %>% group_by(town) %>% summarise(
p_males   = sum(gender == "m")/n(),
p_females = sum(gender == "f")/n(),
odds_males = p_males/p_females,
odds_females = p_females/p_males,
odds_ratio = odds_males/odds_females)

【讨论】:

    猜你喜欢
    • 2020-07-16
    • 1970-01-01
    • 2018-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-23
    • 1970-01-01
    • 2013-10-30
    相关资源
    最近更新 更多