こんな感じのデータを見た。
基本的に痛み止めとして処方されている量から、急に痛みが出た時の頓服量(レスキュー)を知りたいわけだが、データがこんな感じなので予測ができず、タイトレーションは適宜やってみて決める、という話。
相関係数がなぜかspearmanでとってて、実際のデータは0.55程度だった。
V1 V2 50 48 50 52 100 52 100 130 50 163 50 146 100 163 100 231 100 259 50 261 100 354 100 378 200 333 400 547 400 409 300 373 200 488 200 490 300 348 300 497 300 518 300 584 200 589 100 706 50 715 100 795 300 797 500 779 900 800 700 100 300 607 300 474 200 347 500 350 500 491 200 425 800 200 800 100 500 376 700 800 400 224 100 462 100 286 100 244 50 167 100 279 200 352 200 617 300 669 400 696 300 301 400 293 400 415 300 477 300 566 300 634 300 455 200 404 100 221 50 116 50 333 100 394 50 190 50 101 100 247 100 348 200 402 300 565 300 636 300 694 100 547 100 617 100 673 200 734 100 751
xl <- c(0, 1000) yl <- c(0, 800) plot(xy, xlim=xl, ylim=yl ,pch=16, xlab="Base opioid dose", ylab="Fentanyl oral dose") abline(h=seq(0, 800, by=50), v=seq(0, 1000, by=100), lty=3) lm0 <- lm(xy[,2] ~ 0 + xy[,1]) abline(0, lm0$coefficients, col=2)
cor(xy[,1], xy[,2], method="spearman")
[1] 0.3737153
相関が低いので、痛み止めの基本処方量からレスキュー量は決められません、と言っているわりには、図では線形回帰で求めた直線が引いてある。実際の直線は右下の外れ値にかなり引っ張られていて、もっと寝た直線になっている。やりたいならロバスト回帰なんてのもあったかも知れない。
比例関係にない、というのはそんな感じだが、無理やりMICでもとればそこそこの相関がある。
library(minerva) mine(xy[,1], xy[,2], alpha=0.9)$MIC
[1] 0.8035229
たぶんこういうデータを見たら、薬理学的に考えても普通はシグモイドを考える。結構無理やりだけどフッティングさせたらこんな感じ。
library(drc) ll <- drm(xy[,2] ~ xy[,1], fct=L.4(fixed=c(-0.01, 50, 800, NA)), robust="median") plot(ll, log="", type="none", xlim=xl, ylim=yl, col=2, xlab="Base opioid dose", ylab="Fentanyl oral dose") points(xy, pch=16) abline(h=seq(0, 800, by=50), v=seq(0, 1000, by=100), lty=3)
実際の使い方は50μgから使い始めて量を増やす、ということになっているらしい。この使い方でうまくいくのならこれでいいんだろう(適当