医療データ奮闘記

公衆衛生大学院に入った内科系専門医が医師として培った現場感と大学院で培った統計の知識を交えながら、医療や疫学や統計に関する素朴な疑問や本音をつらつら書いています。

R

一般化線形モデルの仕上げ

後輩向けの最後のlectureをファシリテートした。 linear predictor, link function, probability density functionの話の後半二つの内容だった。 x <- c(1:100) par(mfrow=c(1,3)) plot(x,type='l',xlab = "x",ylab = "sum of linear predictor") plot(1/1/(…

なんでもかんでも交絡因子を調整してはいけない

なんでもかんでもいれてはいけない 医学分野の論文で、「これが代替の説明変数かな、とか、とりあえず多めに調整しておけば良いか、と思って説明変数を多数入れる」事がよく行われている。1 collider bias (日本語では、合流点バイアス?)というが、あまり…

二項定理を使って「発生頻度(連続変数)を二値変数に変換する」

線形予測子の和は連続変数であり、それがなぜbinary(二値変数)にできるのかはなかなかイメージがつきにくい。しかし自分でやってみるとイメージが湧くようになる。 発生頻度を1%から100%まで動かして、その発生頻度に従って二項定理を使用して乱数を発生させ…

二次関数に直線を引くとどうなる?

データベース(DB)作成 まずは年齢だけで説明できる血圧が入ったDB(random errorなし)を作成 num <- 40 age <- sample(65:85, num, replace=TRUE) XX <- data.frame(age) XX$sbp <- 130 + (XX$age-65)*1.2 XX$sbp2 <- 100 + (XX$age-72)^2*0.5 head(XX) ## ag…

マルチレベル分析がなぜ必要かの説明をRで簡単に実装して行う

臨床をやっている時には意識していなかったが、施設差を解析に入れないと解析結果が明らかにmisleadingとなる事があるので、Rで実装しておく 個人的には、「その治療法は施設によってやり方が全然違うんちゃうん?」もしくは「その病気の予後は地域によって…

ベイズの考え方をRで簡単に実験してみよう。

ベイズの勉強をしたいと思ったが、何をみてもいまいち実感が湧かなかったため、Rで実験したくなった。(初めの段階の理解は以下の記事参照) yiliaojingji.hatenablog.com 頻度論とベイズは同じ式の形をしてても(同じ確率密度関数の形)解釈が違う。例えば以…

公衆衛生大学院後輩指導論文作成解析用資料(疫学)

Rで解析するための夏休み強化学習50本ノックというものを作った。 自己学習用の資料で、このままやれば50本ノックした際には理解も深まって論文ができている1というものである。答えもR Markdownで作っているのだが、使用したデータベースは公表できないため…

lasso回帰をする時に二値変数と連続変数を同時に扱うにはどうすれば良いのか?

R

と思って調べた。 英語ではいくつかあるが、日本語ではなかなか見当たらなかったし、周りの人1に聞いても意外と誰も答えられなかった。 英語では例えば https://stats.stackexchange.com/questions/69568/whether-to-rescale-indicator-binary-dummy-predict…

対数変換(log変換)して有意差がなくなる事もある??

R

stepwise法で(AICでなく)p値を使って変数選択をする際に対数変換するとしないのとで有意差が変わってしまうのは問題ではないかとカンファレンスで指摘した事がある。 指摘しておいて不安になったので実際やってみた。 height <- c(158,162,177,173,166,168) …

ifelse()関数とfactor型が合わさると恐ろしい事が起こりうる

R

最近論文を書いていて大ダメージを受けたので、共有しておく(reviseの際に気づいたから良いものの、ギリギリで危なかった。) エラーが出ないミスは本当に怖い。 R使っている人はコピペで全部確認できます。 <目的> スポーツ習慣とマラソンでゴールできる…