2014年2月23日日曜日

研究データを集める方法を語るときに僕が語ること。

親愛なる春樹先生のような文章は書くことが出来ないが、題名をオマージュするだけなら僕にだって出来る。
オマージュした作品(これもオマージュらしいが)

内容は医学、特に臨床研究に特化している。他の人からするとナンノコッチャ3世なので、Ctrl+W推奨です。

この内容は出来るだけ研究を始める初期段階でお伝えしたい内容。QA出ないにしろFAQ出ないにしろ。出来るだけ早く。


話し方が少し読む方によっては失礼な感じになってしまっているのは、構成入れずということでお許しを・・・。


早速本題。後ろ向き研究に関して少しまとめていかなくてはならないと思い筆を取る。厳密には筆ではないが雰囲気が出るので許して欲しい。

まず仮説は出来るだけ多くの人の批判にさらされるべきである。

そうすると多くの場合、すでに解決されていて、多くの場合すでにどこかで調べられている途中である。

しかしやはり相談した人が誰も答えを持っていなかったとしよう。またはそう言われているが、ペーパーになっていなかったとしよう。その時はじめてそれは計画をしなければならないという土俵に乗る。

もちろんわかったほうがいいことだけど、データは取ることが出来ないとか、そういうこともあるだろう。

人は死後の世界のことを知ることは出来無い。何故かと言うと・・・。ということである(割愛)

それでもなお、調べたい仮説をを証明するためのデータを取得する準備が多分出来ると考えよう。そうすれば行ったほうがいいに決まっている。

ただまだ少し早い。研究が出来ると分かれば、人は付随していろんなことを調べたくなる。
ただしそれが逆に首を締めることになる可能性がある。

そのため取得する項目は本当に必要かどうかを何度も何度も話しあうべきである。

研究は出来るだけ小規模にするべきである。それは患者の倫理、後ろ向き試験だとしても、臨床研究者へのデータ収集等の介入は凄まじいものだからである。時には家族との時間を使い、時には休息の時間を使わなくてはならないのである。休みの日にもいつもおらず、自分の相手はしてくれない。そんな子供がまたパパママを見て医者や統計家になりたいと思うだろうか。いや・・・(反語)

(※ただこれを日曜に書いている私は何なのか。という問いを読者はぶつけてくるかもしれないが、私は独身である。それ以上の不必要なツッコミはできれば心の体力が持たなくなるのでやめていただきたい)

話を戻そう。本当に必要、つまり、プライマリに知りたいものに関連していないならそれはモチベーションをそぐ原因となる。それでは必ず必要な関連因子とはなんだろうか。それは例えば直感的に肺がんのなりやすさを調べようとしているのに喫煙習慣について調べないことはないだろうとかそういうような内容である。がんの治療の研究で抗癌剤の情報をとらない研究は殆ど無いし、最近は放射線の情報も取るだろう。感染症の研究でどんな抗菌剤を入れたかを調べない人はいないだろうし、その施設の菌分布を無視して研究は出来ないだろう。また全て重要な情報だとしても、1つくらいかけてもいいだろう。完璧なんかはじめから無理。95点でも素晴らしいじゃないかと考える人もいるだろう。しかし、欠損したデータは使い物にならないことも多い。(私は基本的にデータの欠損にも意味があると考える立場であり、データの補完は推奨していない。)少しだけテクニカルなことを言えば多変量解析では1つでもデータがかけていたらそのデータはなかったこととしなければならない。信頼の置ける共同研究者でさえも暇ではないし、研究グループの事務局となるあなたと同じ興味を持っていると思ったら大間違いである。なぜその変数が必要なのかをきっちりと説明しなくてはならない。

本当に取りたいと決まった変数に関しては、ほぼ同時(数秒遅れるくらいのレベルで)でどのような解析を行うかを検討しておくべきである。わからない場合は、統計家を出来るだけ近くに置き、決めてもらうべきである。データが取ってこられてから解析方法を決めていては、無数にある解析手法のうち、結果の出やすい方法で解析してしまうことができるからである。あなたが思っているほどデータ解析について好意的に見てくれる人は少ないのである。

ここまで決まっているのであれば、あと一息、その解析結果を現場で利用することも考えておくべきである。そのために、閾値を予め決めておくのがよい。多くの指標は◯◯より大きいか小さいかで話をすることが多いからである。また決めることが出来ない場合は、予め統計的に決めるということを決めておくということもバイアスの混入を防ぐために重要な行為である。


そして余裕がアレば、データを取得するワークシート(CRF等)の形にも配慮すべきである。例えば同じ日に取ることが分かっているデータの報告を宝探しをするようにいろいろな紙に転記していれば、誤転記の原因にもなるだろう。例えば、生年月日を記入する時、プルダウン式のweb入力画面において1986年を一桁づつ入力する時1,9,8,7と入力してしまうリスクと1,9,7,6と入力してしまうリスクは同じだけ存在する。そのために4桁のプルダウンとするような事を考えればそのエラーは小さくになる。時間がアレば、いくら時間をかけてもかけ過ぎだということはないのである。


上で述べたことを先に行っておくことで、データ収集後の実務者と統計家のやりとりは体感で半分以下になると考えている。わからない状況で行う議論では建設的な案が出ることが多いが、データが取得された後での議論は、どうやってかっこよく見せるかということばかりに論点が行きがちである。もちろんそうならない準備はあるが、時間等の制約により、真実に辿り着く前に我々は解析を一度止めなくてはならないことがある。

解析結果に納得が行かない臨床家は統計家にいろいろな注文をつけると良い。調整をちゃんと行っているのか、こういう論文で使われている方法ではどうなのか。すべての疑問に統計家は真摯に答えなければならず、答えることが出来なくなることがないように専門性を有しておかなくてはならない。自分が生物統計の専門家集団の一人であることを忘れてはならない。計画の時点では考えていなかった解析をやることは、許されませんというのはナンセンスである。それはただのルールであって、真実がどちらかなのかはまた別の話だからである。探索的という意味を理解しなくてはならない。

多くの統計家は上のような内容が教科書に書かれていたとしても、読み物として読み飛ばしてしまうだろう。ただし、現場に出てから読み直してみると、書いていることがよくわかる。ほんとうによく分かる。

現場には教科書に載っていることはよく起こっていて、更に、載っていることと同じくらい載っていないことが起こっている。専門家としてすぐに答えることが出来ないことがあってはならないのだが、そういう問題にぶち当たるとワクワクする。

今はそれがすごく楽しい。一度であった問題は間違えないように。初めて出会う問題は頭を出来るだけ軽くして。 どのような状況でも知識総動員は忘れずに。

もっともっといろんな仕事を受けることが出来るように頑張ろうと思う。

すごくそう思う。





以上、春樹先生に影響を受けると言いつつも最近読んでいないばかりにあまりにも題名だけになってしまった。

随所にシリアスな話の合間にコミカルなネタを入れていくのは、最近SPECを観た影響なのか、不人事のウォルタービショップの影響なのか。

とりあえずそんな感じなのですが。本年も全体の15%程が過ぎたということで少しだけ驚きの夜。

オリンピックが終わりますね。パラリン始まるまで2週間弱。ちょっと休憩かなって思ったけど、意外と野球のオープン戦も始まってるし、Jリーグも後1週間で始まるし。

楽しみですね-。

以上。

2014年1月9日木曜日

フィッシャーイグザクトメソッド

fisher exact method(fisher検定)はノンパラメトリック検定の1つであり、少数例の時でも背景因子の偏りを確かめることが出来る。

正規性を仮定できる時のみに用いることが出来る上位互換としてカイ二乗検定がある。

研究に使う場合はp値に関しては保守的に考えるべきであると考えているし、ミススペシファイしてしまうリスクを負う必要はないと思っており、正直カイ二乗検定は捨ててしまってもいいと考えている。

さて、fisher検定をRで用いるときはbaseの中にfisher.testという関数がある。

行列等を指定し、大きな行列となる時は作業につかう領域をworkspaceで指定する。

例えば

fisher.test(matrix(2:5,2,2),workspace=100000)

という具合である。多くの場合はp値が欲しいことが多いので

fisher.test(matrix(2:5,2,2),workspace=100000)$p.value

とすれば得ることが出来る。

たまにオッズが欲しくなるが、その場合は

fisher.test(matrix(2:5,2,2),workspace=100000)$estimate

オッズの信頼区間が欲しい場合は(2かける2の時)

fisher.test(matrix(2:5,2,2),workspace=100000)$conf.int


tableのそれぞれのセルの数が知りたければfisher.testをtableに変更すればよい。

もちろんfor文でも使えるので、幾つもの検定を一気に行うことも可能。

しかし、p値が小さすぎるときはデータに戻ることが大切。

そもそもマーカー陰性がいなかったり罹患した人がいなかったりするとオッズが変な値になる(計算出来ない)

計算結果はすぐに出てくるが、解釈をちゃんと行うこと。

それが一番大事。



多分いちばん多い質問。FFFFFAQに認定。



2013年12月25日水曜日

電卓をキーボードのみで開く

ショートカット作れば良い話なんですけどね・・・。



win + R で ファイル名で実行を開く
窓に calc と入力

電卓が出てくる。

ちなみに

notepadでメモ帳
winwordでWord

他もいろいろあるし最近は電卓起動ボタンがあったりするけど。

意外と便利。

2013年12月24日火曜日

Rでのデータの読み込み

Rでデータを読み込む方法はいろいろあるが個人的には2つしか使わない。

read.table("clipboard",header=T)
か
read.csv(file.choose(),header=T)


上はExcelとかからコピーしてそれをそのまま乗っけたい場合
下はcsvファイルを読み込みたいとき。

区切りの認識はオプションで

sep="\t"   ","  " "

等でつけることができる。もっとあるけど実務上はこのくらいで十分。

前向き試験ののデータでは比較的欠損等のデータを扱うことが多いが後ろ向きの場合はかなり乱暴なデータベースで有ることも覚悟の上。

まあそもそも前向き試験の解析をRで行うこと自体があまりないのだけれども。

だから欠損とかをどう扱うかの方がレクチャーの満足度をあげるかもしれないな。

多くの教科書にはその辺りのことは書いていない、書いているけど、その時はよく検討して欲しい。というような内容。そもそもいろんな場合が考えられすぎて一般化しにくいんだと思うけど。

SPSS、JMPともにこの辺りはかなりうまくやってくれる(丸文字等もきっちりよんでくれる)のであまり重要な話ではないけれど。

Rを使っている先生からは必ずと言っていいほど読み込めません。相談は一度はあるので。

QAに認定。ッて感じで。

エクセルでデータベースを作るときのプルダウン

データベースを作るときにセルに入力できる内容を予め指定しておくことはデータベースの質を担保していくために重要である。

データベースソフトにはaccessやFileMaker、さらにはawkを使っているという人もいると思うが、大多数の人はExcelだろう。

個人的にはエクセルでのデータベースの入力はあまり良くないと思っているが、ここまで浸透しているといろいろと反発するのが難しい。

そのため最近はエクセルでも間違わない方法をよく考えている。

さて標題pulldownだがそんなに難しくない。

2003以降の前提としているが上のリボンのところで

データ
入力規則
設定→条件の設定→入力値の種類→リスト→元の値に入力、

値は「,」(半角コンマ)で区切る。

この手間は相当なものになるが、それだけで相当質はあがるはずである。

ちなみにその後Rでの解析を考えているのであれば、空白やコンマを不用意にデータベースに入れ込むべきではない。大きなものになればなるほど確認しづらくなる。


2013年12月23日月曜日

信頼区間の切り捨て切り上げ

結果をまとめるときに信頼区間を考えることがあるけど、この信頼区間は狭ければ狭いほど点推定値の信頼性が増すことになる。

四捨五入などをすると過大評価してしまう可能性がある。もちろん過小評価してしまうことがある。

研究を行う上では、四捨五入をするならする。しないならどのような方法にするかを予め決めておくべきである。

さらに言えば、研究者として出来るだけ広くなるような方法で評価するのがよい。

つまり下側は切り捨て、上側は切り上げるのがよい。

研究者として都合の良いようにとらないこと。

いつも保守的に受け取ること。

そうすることが査読に耐えうる結果提示の一番の近道。

多くある質問ではないが定期的にある質問。

QAとしてあげることにする。




2013年12月22日日曜日

エネオスでTポイントを貯めるとき。

個人的には満タンはあまり入れない。

どこかでガソリンの重さも考えると満タンの66%くらいにしとくほうが良いと聞いたから。

Tポイントは100円で1ポイント(税抜き)なので、2000円払ったら2000円分のポイントは貰えない。

金額指定で2100円か4200円(税込み)で頼めばそれぞれ20p40pちゃんと貰える。

チリツモ的な話題。

ただ4200円分入れると確実に8割位入れたことになるので基本は2100円。

入れる回数が多くなるけど、まあ月に2回もないくらいの話だしね。うん。