研究質問を変数に翻訳する
このトピックを終えると
研究質問を読み、結果として測定する値であるアウトカム(outcome)、比較または説明する条件である曝露(exposure)、併せて記録する共変量(covariate)、行を区別する識別子(identifier)を分けられるようになります。また、表の一行が何を表すかを先に決め、その質問に合うデータ契約の草案を作れるようになります。
出発点:質問にはまだ列名がない
次のような質問を考えます。
異なる処理条件で得られた測定値はどのように異なるか?
この文は研究の方向を示しますが、直ちに解析できる表ではありません。「測定値」が何か、処理条件がどの単位に割り当てられたか、一つの条件に独立した単位がいくつあるかが分からないためです。質問をデータに移す最初の段階は統計手法を選ぶことではなく、文中の役割を分けることです。
この時点で、特定の処理の生物学的効果をあらかじめ確定しません。データ設計が許す質問の範囲を先に定めることで、後で計算した数値が示せる以上のことを述べないようにできます。
まず一行の意味を決める
表を作る前に、「一行は何か」に答える必要があります。一行は独立した培養単位かもしれませんし、同じ単位から反復して得た一回の測定かもしれません。どちらの表現も有効ですが、行の意味が異なれば、同じ列名を使っても解析単位は異なります。
例えば、一つの独立単位で三回の技術的測定を行った場合、次の表現が可能です。
| culture_id | treatment | measurement_id | value |
|---|---|---|---|
| C01 | A | M01 | 0.82 |
| C01 | A | M02 | 0.79 |
| C01 | A | M03 | 0.81 |
この表の三行は三回の観測を記録しますが、処理条件が culture_id の水準で割り当てられたなら、独立した処理単位が三つになるわけではありません。観測値の数と独立した情報の量は別に記録する必要があります。biological replicate、technical replicate、experimental unitの区別は、後の要約と推論に直接影響します。この問題は次のトピックで詳しく扱います。
質問を4種類の列に翻訳する
outcome:何を測定して答えるか
outcome は、研究質問において結果として観察する値です。連続した測定値であることも、イベント発生の有無や回数であることもあります。名称より重要なのは測定規則です。値の単位、測定時点、許容範囲、欠測の表現を一緒に記録する必要があります。
「成長」と書くだけでは十分ではありません。特定時点の細胞数なのか、基準時点からの変化量なのか、画像から得た面積指標なのかによって、outcomeの意味は異なります。同じ value という列名でも、測定定義が違えば一つの解析に混ぜてはいけません。
exposure:何を比較または説明するか
exposure は、観察結果を比較する条件または説明変数です。実験では処理条件や用量、観察研究では曝露水準や集団区分として表されることがあります。カテゴリ型か数値型か、研究開始前に決まったか、測定後に計算された値かも確認します。
ただし、exposureを記録したからといって、結果に対する因果効果が自動的に定義されるわけではありません。処理の割当方法、時間順序、交絡の可能性、解析単位も併せて検討しなければなりません。このトピックでは質問を変数に翻訳する範囲だけを扱い、因果的結論は作りません。
covariate:併せて記録する文脈
covariate は、outcomeとexposureを解釈するときに併せて考慮できる変数です。バッチ、測定時点、初期状態のように、研究設計と測定過程の文脈を表すことができます。記録したすべての値が自動的にcovariateになるわけではありません。質問や時間順序に合わない値、または結果を見た後で作られた値は、解釈を変える可能性があります。
したがって、「列が多いほどよいデータ」とは考えません。各列について、なぜ記録したのか、どの単位に属するのか、解析でどのような役割を持ち得るのかを説明できる必要があります。
identifier:行と単位を区別する名前
identifier は、観測値または研究単位を区別するための値です。culture_id、batch_id、measurement_id のように、複数水準のIDがあることがあります。IDは重複を見つけ、グループ構造を確認するために重要ですが、それ自体を生物学的な大きさや効果として解釈しません。
特に、数値のIDを連続変数のようにモデルへ入れないよう注意します。culture_id=10 が culture_id=5 より5倍大きい状態を意味しないなら、その数値は順序や大きさを持つ測定値ではなく名前です。
小さなデータ契約を書く
変数を定めたら、まず次のような契約を書きます。
| 列 | 役割 | データ型 | 単位または許容値 | 一行での意味 |
|---|---|---|---|---|
unit_id | identifier | 文字列 | 一意のID | 独立した研究単位 |
treatment | exposure | カテゴリ型 | A, B | 単位に割り当てられた条件 |
batch | covariate候補 | カテゴリ型 | 事前定義したバッチID | 測定・処理の文脈 |
outcome | outcome | 実数 | 事前に定めた単位 | 一時点の測定値 |
この表は解析結果ではなく、解析前に立てる約束です。outcome の測定単位と時点、treatment の割当水準、反復測定の有無が分からなければ、契約はまだ完成していません。不足情報は推測して埋めるのではなく、確認項目として残します。
研究質問に戻って解釈する
変数に翻訳した後、質問をもう一度読みます。
- 比較したい条件は
exposureとして表されているか? - 結果の測定定義と単位は
outcomeに記されているか? - 一行の単位と処理の割当単位は区別されているか?
- 反復測定とバッチ情報を識別できるか?
- この表が答えられる質問と、答えられない質問は何か?
この点検を通過しても、処理条件の効果が証明されるわけではありません。計算方法、不確実性、研究設計の制約をまだ検討していないためです。ここで得られる成果は、質問を解析可能な言語に変えたことであり、結論をあらかじめ得たことではありません。
よくある失敗と点検法
第一に、すべての列を「変数」と呼び、役割を区別しない場合です。outcomeとidentifierを分けなければ、IDの数値の大きさに意味を与えてしまうことがあります。
第二に、一行を一回の測定と定めた後、その行をすべて独立反復として数える場合です。処理の割当単位と測定単位は異なり得るため、反復構造を別の列として保持する必要があります。
第三に、データに合わせて質問を事後的に変える場合です。解析前に質問と変数の役割を記録し、変更が必要なら何をなぜ変えたのかを残す必要があります。
要点
- 研究質問はoutcome、exposure、covariate、identifierの役割に翻訳できます。
- まず一行の意味と処理の割当単位を定める必要があります。
- IDは単位を区別する名前であり、自動的に解析変数や効果になるものではありません。
- 変数契約にはデータ型、単位、許容値、反復構造を含める必要があります。
- 変数表を作ったからといって、因果性や生物学的重要性が確定するわけではありません。
次のトピックへ
次の記事では、同じ表にある観測値、実験単位、biological replicate、technical replicateを区別します。特に、一つの独立単位の反復測定を標本数として誤って数えるpseudoreplicationの問題を扱います。
参考資料
- Bioconductor OSTA, experimental design: https://bioconductor.org/books/release/OSTA/pages/bkg-exp-design.html
- ASA GAISE Reports: https://www.amstat.org/education/guidelines-for-assessment-and-instruction-in-statistics-education-%28gaise%29-reports
本稿の説明、表、シナリオはBioStatPyが独立して作成した教育用構成です。外部資料の文、表現、例の配列を再現しません。