[R program]リスクとオッズ、リスク比とオッズ比の関係
オッズでリスクを近似することが良くあって、pが小さいときは近似が良いとよく言われる。
実際はどんな感じになっているのか?
#------リスクとオッズの関係 #---リスクとオッズ risk <- seq(0, 1, 0.01) odds <- risk/(1 - risk) plot(risk, odds, type="l", xlim=c(0, 0.2), ylim=c(0, 0.2)) abline(a=0, b=1, lty=2) #---リスク比とオッズ比 library("scatterplot3d") risk.f <- function(x, y){x/y} odds.f <- function(x, y){(x/(1 - x))/(y/(1 - y))} risk2 <- seq(0, 0.3, 0.005) risk.ratio <- outer(risk2, risk2, risk.f) odds.ratio <- outer(risk2, risk2, odds.f) #odds.ratio <- outer(odds, odds, risk.f) layout(rbind(c(1,1,1),c(2,3,4)), height=c(2, 1)) #3次元プロットと2次元プロットを同時に描く #3次元 persp(risk2, risk2, risk.ratio , zlim=c(0, 100), ticktype = "detailed", theta = 40, phi = 30, expand = 0.5, col = "lightblue", xlab="risk1", ylab="risk2", zlab="ratio (1/2)") par(new=T) #2つのグラフを上書きする persp(risk2, risk2, odds.ratio , zlim=c(0, 100), ticktype = "detailed", theta = 40, phi = 30, expand = 0.5, col = "lightgreen", xlab="", ylab="", zlab="") legend("topleft", legend=c("risk ratio", "odds ratio"), pch=15, col=c("lightblue", "lightgreen")) #2次元 risk1.1 <- 0.1 #risk1.1の値を変えて断面図を描く risk.ratio1 <- risk1.1/risk2 odds.ratio1 <- (risk1.1/(1 - risk1.1))/(risk2/(1 - risk2)) plot(risk2, risk.ratio1, type="l", xlab="risk2", ylab="", main="risk1=0.1", col="black" ,ylim=c(0, 40)) lines(risk2, odds.ratio1, lty=2, col="red") legend("topright", legend=c("risk ratio", "odds ratio"), lty=c(1:2), col=c("black", "red")) risk1.1 <- 0.3 risk.ratio1 <- risk1.1/risk2 odds.ratio1 <- (risk1.1/(1 - risk1.1))/(risk2/(1 - risk2)) plot(risk2, risk.ratio1, type="l", xlab="risk2", ylab="", main="risk1=0.3", col="black" ,ylim=c(0, 40)) lines(risk2, odds.ratio1, lty=2, col="red") legend("topright", legend=c("risk ratio", "odds ratio"), lty=c(1:2), col=c("black", "red")) risk1.1 <- 0.6 risk.ratio1 <- risk1.1/risk2 odds.ratio1 <- (risk1.1/(1 - risk1.1))/(risk2/(1 - risk2)) plot(risk2, risk.ratio1, type="l", xlab="risk2", ylab="", main="risk1=0.6", col="black" ,ylim=c(0, 40)) lines(risk2, odds.ratio1, lty=2, col="red") legend("topright", legend=c("risk ratio", "odds ratio"), lty=c(1:2), col=c("black", "red")) #dev.copy(pdf, file="risk_odds.pdf") #dev.off()
結果はこんな感じ↓
上の図は凄く分かりにくいけどリスク比の曲面が薄い青で描かれている。