読者です 読者をやめる 読者になる 読者になる

DPCデータの分析とかやるブログ

DPCデータの分析なんかをテキトーにやってます。

相関係数で疾患別の特徴を見る

Pandas

DPCデータを見ていると、残念ながら「件数は多いのに赤字」という疾患に出くわすことがあります。
なぜ赤字なのか、理由は疾患によりますが、理由の一つに
在院日数が伸びても資源投入に変化がない
というものがります。
DPC入院料は在院日数が伸びるにつれ下がりますが、資源投入がずっと横ばいならば、赤字の原因となるわけですね。
さて、ではどうやってそんな疾患を探せばいいのでしょうか?

分類番号 在院日数 出来高点数
040080x099x0xx 1 3200
040080x099x0xx 2 3100
... ... ...

このようなデータがあるとします。
Pandasには素晴らしい機能がいくつも実装されていますが、今回は.corr()メソッドを使ってみましょう。
該当のデータをdfとすると、
df.corr()
と入力するだけで、以下のような表が出力されます。

在院日数 出来高点数
在院日数 1.0000 0.2388
出来高点数 0.2388 1.0000

この表の意味は、「出来高点数と在院日数のあいだの相関係数は0.2388である」ということです。
・・・うーん。どういうことでしょうか。 相関係数は、-1から+1の間を取る指標で、±0.7以上なら強い相関があると認められます。
マイナスなら負の相関、プラスなら正の相関です。
この例では、負の相関があれば在院日数が伸びるほど出来高点数は下がるわけですね。
一方、正の相関があれば在院日数が伸びるほど出来高点数は上がることになってしまいます(!)
つまり、正の相関があるとか、相関が見られない場合、DPCで想定される通りには推移していない疾患だ、ということです。 もちろん、これはあくまで目安ですし、実際にデータを見るととんでもない外れ値がいて全体を歪めている、なんてこともザラですので、散布図を書くなどして確かめるのがよいでしょう。 Pandasには散布図を手っ取り早く描くメソッドも用意されています。
df.plot(kind='scatter', x='在院日数', y='差異')と入力すれば、すぐに散布図が見れます。とても捗りますね。