医療統計学・医療情報学・遠隔医療 · 15
調査法・データ表の作り方・統計家との協働
Dialogue with a Statistician. Survey. Sample Size. Data Tables
🧠 全体像:統計家は「集めたデータを解析してくれる人」ではなく「何を集めるかを一緒に決める人」である。データを取り終えてから相談するのは、手術が終わってから適応を検討するのと同じで、そこからできることはもう残っていない。この回の内容はすべて「取り返しがつかなくなる前に決めておくこと」の一覧である。
誰が何を決めるのか
臨床研究は医師 medical doctor 医師(medical doctor) medical doctor(医師) と統計家の分業だが、境界を誤解すると研究そのものが破綻する。
| 医師medical doctor 医師(medical doctor)medical doctor(医師) (臨床側)にしか決められないこと | 統計家にしか決められないこと |
|---|---|
| 問いは何か(因果か再現性か、平均の差か分散の差か、差の証明か非劣性 non-inferiority 非劣性(non-inferiority) non-inferiority(非劣性) か) | そのデータで本当にその問いに答えられるか |
| 何をどう測るか(測定誤差measurement error測定誤差(measurement error)measurement error(測定誤差)・精度・単位) | どう計算し、どう解析するか |
| 交絡confounding交絡(confounding)confounding(交絡)として何がありうるか | 必要な標本サイズの推定 |
| 臨床的relevance——どれだけの差なら意味があるか | ランダム化randomization ランダム化(randomization)randomization(ランダム化) の方法 |
| 実行可能性・倫理性 | |
| 研究デザインstudy design 研究デザイン(study design)study design(研究デザイン) (観察/実験/症例集積、反復測定、層別) | |
| 誰のための解析か(学位論文か、学会か、一流誌か) |
そして結果の理解・解釈・次への展開は両者で行う。
⚠️ 「臨床的にどれだけの差なら意味があるか」を統計家が決めることはできない。 これは統計の問題ではなく医学の問題である。心拍数が 2 min⁻¹ 変わることに意味があるかどうかは、統計家には原理的に判断できない。ここを空欄のまま渡すと、標本サイズも計算できず、結果の解釈もできない。
いつ相談するか
flowchart TD
A["研究の問いを立てる"] --> B["<span class='jp-term jp-term-diagram' title='data collection'>データ収集</span>(標本抽出)"]
B --> C["データ整理"]
C --> D["データ解析"]
D --> E["<span class='jp-term jp-term-diagram' title='conclusion'>結論</span>"]
F["⭐ 統計家に相談すべき地点<br>——ここ、収集の前"] --> A
G["よくある実際の相談時期<br>——ここ、解析の直前"] --> D
H["この段階では<br>設計上の欠陥はもう直せない"] --> G
⚠️ できるだけ早く。 標本サイズ、ランダム化randomizationランダム化(randomization)randomization(ランダム化)、測定尺度、交絡因子confounding factor 交絡因子(confounding factor)confounding factor(交絡因子) の記録——これらはどれもデータを取ったあとでは修正できない。「解析だけお願いします」という依頼が最も高くつく。
💡 相談を有効にするには、医師medical doctor 医師(medical doctor)medical doctor(医師) の側が先に図を描いてくるとよい。何を横軸に、何を縦軸に置き、どんな形の結果を期待しているのか。図が描けない研究は、問いがまだ定まっていない。
標本サイズの決め方
「差があるなら、それに気づけるか」——これが検出力 power 検出力(power) power(検出力) の問いである。
| H0 が真 | H0 が偽 | |
|---|---|---|
| H0 を棄却しない | 正しい判断() | 第2種の誤り (偽陰性) |
| H0 を棄却する | 第1種の誤り (偽陽性) | 正しい判断=検出力 |
(詳細は 仮説検定の論理)
5つの量は互いに従属している
flowchart TD
A["標本サイズ n"] --- B["効果量"]
A --- C["ばらつき(SD)"]
A --- D["α と β"]
A --- E["用いる検定"]
F["4つを決めれば残り1つが決まる<br>——独立に選べる量は存在しない"] --- A
| 要素 | 何か | どこから持ってくるか |
|---|---|---|
| 効果量 | 平均の差、比率の差、分布の違い。臨床的relevance そのもの | 先行研究。ただし「検出したい最小の意味ある差」は臨床側が決める |
| ばらつき | SD など。差の検定なら両群の SD | 先行研究。無いか不確かなら予備研究pre-study予備研究(pre-study)pre-study(予備研究) |
| α と β | 第1種・第2種の誤りの許容水準 | 慣習は α = 0.05, β = 0.20。慣習に従わずどちらの誤りが致命的かで変える |
| 用いる検定 | 実際に解析で使う検定 | 事前に決める。あとで変えると計算が無効になる |
💡 効果量が大きいほど、ばらつきが小さいほど、必要な n は小さい。逆に「小さな差を確実に捉えたい」と言った瞬間に n は跳ね上がる。「臨床的に意味のある最小の差」を大きめに設定できるかどうかが、研究を実行可能にする最大の梃子である。
⚠️ 比率の比較では、差だけでは足りない。「5%の差」と言っても 10% vs 15% と 50% vs 55% では必要な n が違う。両群の比率そのものを与える必要がある(比率の場合、ばらつきは比率から決まるので別途 SD は要らない)。
計算してみる
1標本の比率の場合、正規近似での必要例数は次の形になる。 が H0 の比率、 が検出したい真の比率である。
⭐ 分母に (効果量)が2乗で効いていることに注目する。検出したい差を半分にすると必要例数は4倍になる。
例:ある集団で目的の特性の比率が60%であるとされている。それが70%以上なら意思決定を変えたい。「本当は70%でないのに変えてしまう」確率を1%以内、「本当に70%なら90%の確率で気づきたい」とすると、何例必要か。
from scipy.stats import norm
p0, p1, alpha, power = 0.60, 0.70, 0.01, 0.90 # H0の比率、検出したい真の比率
z_a, z_b = norm.isf(alpha), norm.isf(1 - power) # 片側検定
n = ((z_a*(p0*(1-p0))**0.5 + z_b*(p1*(1-p1))**0.5) / (p1 - p0))**2
print(n) # 298.2 → 299例
💡 出力の読み方:出てくるのは「これだけあれば足りる」ではなく「この4条件のもとでこれだけ要る」である。299 という数字は α・β・効果量・検定の選択のすべてに依存しており、どれか1つを緩めれば大きく動く。だから報告では n だけでなく4条件をすべて書く1。
出た数字をそのまま使わない
| 確認 | 内容 |
|---|---|
| 実行可能か | その症例数が現実に集まるか。集まらないなら研究デザイン study design 研究デザイン(study design) study design(研究デザイン) か問いを変える |
| 倫理的か | 必要以上に多くの患者を曝すのは非倫理的。少なすぎて結論 conclusion 結論(conclusion) conclusion(結論) が出ないのも同じく非倫理的(患者を無駄に曝すことになる) |
| 脱落を上乗せ add-on (incremental benefit) 上乗せ(add-on (incremental benefit)) add-on (incremental benefit)(上乗せ) したか | 追跡不能・同意撤回・欠測。想定脱落率 dropout (discontinuation) rate 脱落率(dropout (discontinuation) rate) dropout (discontinuation) rate(脱落率) で割り増す |
| 承認を得たか | 個人・医療データの利用には研究倫理委員会の承認が要る。学位論文でも同じ。申請書には標本サイズと解析方法を書く欄がある——つまり統計家との相談は倫理申請より前に済んでいなければならない |
「臨床的に意味があるのに有意でない」とき
| 原因 | 対処(事前にしかできない) |
|---|---|
| 標本サイズが小さい | 事前に計算する |
| ばらつきが大きい | 測定条件を統一する、反復測定にする |
| 精確に測れていない | 測定法・機器・観察者を揃える |
| 検出力の低い検定を使った | 尺度を落とさない(次節) |
| 検定の仮定が破れている | 分布・独立性を事前に確認する |
| 運が悪かった(標本誤差) | 原理的に避けられない |
⚠️ 「p > 0.05 だったので差はない」と書いてはいけない。 これは差の不在の証明ではなく、単に「この研究では差を検出できなかった」である2。上の表の6行のどれが起きたのかは、p値からは分からない。差がないことを主張したいなら非劣性non-inferiority非劣性(non-inferiority)non-inferiority(非劣性)・同等性の枠組みで、事前に許容差を決めて設計する必要がある。
また、有意でなかった結果に対して事後的に検出力を計算する(post hoc power)ことに意味はない。観測された効果量から逆算 back-calculate 逆算(back-calculate) back-calculate(逆算) した検出力は p値の単調 monotone 単調(monotone) monotone(単調) な変換にすぎず、新しい情報を何ももたらさない。「検出力が低かったので差が出なかった」という事後の弁明は循環論法である。検出力の議論は設計の段階でしか価値をもたない。
逆向きの誤りも同じくらい多い。n が大きければ、臨床的に無意味な差でも有意になる。有意性は relevance を保証しない2。
💡 出力の読む順序
- 効果量 — 差や比の大きさそのもの
- 臨床的relevance — その大きさに意味があるか(例:心拍数 2 min⁻¹ の差)
- 信頼区間confidence interval信頼区間(confidence interval)confidence interval(信頼区間) — 効果の不確実性の幅。ここが「有意でない」の中身を教えてくれる
- p値 — 最後。有意でも臨床的に無意味な差はあるし、有意でなくても差がないとは言えない
測定尺度を落とさない
⚠️ 統計における罪:連続量が測れるのにカテゴリに落とすこと。 尺度が高いほど検定の検出力は高い。
| やってしまうこと | なぜ損か |
|---|---|
| 睡眠時間を「5時間未満/5–6/6–7/7時間超」で聞く | 情報が捨てられ、同じ結論 conclusion 結論(conclusion) conclusion(結論) に到達するのに何倍もの n が要る |
| 血圧を「高血圧/正常」の2値にして解析する | 境界の1 mmHg差が最大の差として扱われ、群内の差はゼロとして扱われる |
| 検査値Labs 検査値(Labs)Labs(検査値) を「陽性/陰性」に落として保存する | 元の値に戻せない。カットオフcut-off カットオフ(cut-off)cut-off(カットオフ) を後で変えられない |
⭐ 数値で答えられるものは数値で集める。 カテゴリ化は解析の段階でいつでもできるが、逆はできない。
データ表の作り方
⚠️ データ表の準備は医師 medical doctor 医師(medical doctor) medical doctor(医師) (データを持っている側)の責任である。 統計家に渡すファイルの品質が、解析にかかる時間と誤りの数をそのまま決める。
構造の原則
解析可能な表の条件は、突き詰めると次の3つに尽きる3。
| 原則 | 内容 |
|---|---|
| 1行1観察 | 症例(観察単位)を行に、変数variables 変数(variables)variables(変数) を列に |
| 1列1変数 variables変数(variables) variables(変数) | 1つの変数 variables 変数(variables) variables(変数) を2列に分けない。性別は「sex」1列であって、「男(該当なら1)」「女(該当なら1)」の2列ではない |
| 1セル1値 | 1つのセルに複数の情報や複数の型を混ぜない |
| 生データだけ | 平均・SD・小計などの計算をデータ表に書かない。解析は統計ソフトが行う |
| 1シートに1つのデータ表 | 同じ症例のデータをシートに分散させない |
⚠️ 空行・空列を入れない(読み込みが途中で切れる)。セルを結合しない。色分けは見た目には有用でも、書式は読み込まれないので情報を色で持たせると必ず失われる。
値と名前の作法
| 項目 | 規則 |
|---|---|
| 変数variables 変数(variables)variables(変数) 名 | 短く・明確に・情報を含む。半角英字と _ . のみ。空白・記号・アクセント付き文字を使わない |
| カテゴリの値 | 同じく短く明確に。表記ゆれを作らない(male / Male / M を混在させない) |
| 言語 | 全体で1つに統一する(推奨は英語) |
| 数値変数 variables変数(variables) variables(変数) | 文字を混ぜない。<60 のような表記は数値として読めない。必要ならその値を欠測にして、別に「60未満かどうか」の変数 variables 変数(variables) variables(変数) を作る |
| 小数点 | 全体で同じ記号に統一する(. と , の混在は無言 mutism 無言(mutism) mutism(無言) で壊れる) |
| 症例の識別 | ID変数 variables 変数(variables) variables(変数) を作る。患者名を識別子にしない(同名homonymous 同名(homonymous)homonymous(同名) がありうる、改姓する、空白を含む) |
| 日付 | 日付そのものより「基準日からの経過日数」で入れるほうが安全。日付書式は国と表計算ソフトで解釈が食い違う(01/02/03 は国によって3通りに読める) |
| 欠測 | 1つの記号に統一する(空セルか NA)。欠測を 0 で表すのは最悪——0 は正当な観測値でもありうるので、区別できなくなる |
| 欠測の理由 | 理由が違うなら違うラベルを使う(未測定/拒否/該当なし) |
| 付属文書 | 変数variables 変数(variables)variables(変数) の定義・測定方法・単位・値域・略語を書いた別ファイルを作る。データ表そのものに書かない |
💡 変数variables 変数(variables)variables(変数) の定義を「別ファイルに書く」のは面倒に見えるが、データ表の1行目を変数variables 変数(variables)variables(変数) 名だけの1行に保つためである。説明行が混ざっていると、統計ソフトはそれを最初の観察値として読み込む。
個人情報を分離する
⚠️ 氏名・社会保険番号・電話番号・住所は解析に使われない。 データ表から除き、症例IDだけを共有キーにした別の個人情報シートに分ける。アクセスできる人数 number of people 人数(number of people) number of people(人数) は最小にする。
💡 これは法的義務であるだけでなく、データの質そのものの問題でもある。患者の信頼が失われれば長期の協力が得られず、協力が得られなければ良いデータは集まらない。
壊れた表を直すときに探すもの
すでに集めてしまった表を解析可能な形に戻す作業は、次の順で探すと漏れが少ない。
| # | 探すもの | 直し方 |
|---|---|---|
| 1 | 1行目より上の説明行、変数variables 変数(variables)variables(変数) の定義行 | 情報を付属文書に移して削除。変数variables 変数(variables)variables(変数) 名の行を1行だけにする |
| 2 | 区切りのための空行・空列 | 削除。区切りが情報を持っているなら(例:手術年)変数variables 変数(variables)variables(変数) に変換してから削除 |
| 3 | 書式(色・太字)で持たされた情報 | 変数variables 変数(variables)variables(変数) に変換するか付属文書に移す |
| 4 | 非表示の行・列 | 列名と行番号の連番の飛びで見つける。再表示して中身を確認 |
| 5 | セルのコメント | 読み込まれない。必要なら変数 variables 変数(variables) variables(変数) 化する |
| 6 | 結合セル | 解除する |
| 7 | 表の下や横の補助計算 | 削除。最終行の直下に合計や平均が置かれていると、観察値と見分けがつかない——最も危険な壊れ方 |
| 8 | 欠測の表記ゆれ、0で表された欠測 | 1つの記号に統一 |
| 9 | 個人情報の列 | 別シートへ分離 |
| 10 | 文字列として保存された数値 | 先頭のアポストロフィ、文字書式、小数点記号の食い違いを直す。既定では数値は右寄せ・文字は左寄せになるので、書式の中央揃えを外すと一目で分かる |
| 11 | 文字列として保存された日付 | 日付型に変換。書式の解釈を必ず確認する |
| 12 | 範囲で入力された値(例:60–70) |
この段階では欠測(NA)にするのが無難 |
| 13 | 同じカテゴリの表記ゆれ | 統一する |
| 14 | 1つの変数 variables 変数(variables) variables(変数) が複数列に分かれている(性別が2列) | 1列に統合 |
| 15 | 1つの列に複数の変数 variables 変数(variables) variables(変数) が入っている(併存疾患comorbidity 併存疾患(comorbidity)comorbidity(併存疾患) を1セルに列挙) | 互いに排他でないならそれぞれ独立した列に分ける |
⭐ 原本を上書きしない。 必ず複製に対して作業する。
💡 この一覧は「壊れた表の直し方」だが、本当の教訓は逆側にある——この15項目はすべて、収集の設計段階で避けられた。だから最初の節に戻る:データを取る前に相談する。データベースの側から見た同じ問題(なぜ表計算ソフトの1枚の表が壊れやすいのか、リレーショナルモデルは何を解決するのか)は 情報理論とデータベースで扱う。
調査票と調査
調査survey調査(survey)survey(調査) は、直接には測りにくい、あるいは構造が複雑なアウトカム all-or-none outcomes アウトカム(all-or-none outcomes) all-or-none outcomes(アウトカム) ——行動、健康状態、態度など——を体系的に集める方法である。調査票questionnaire調査票(questionnaire)questionnaire(調査票) はその道具 tool 道具(tool) tool(道具) である。
💡 教材の言い方が正しい:完璧な調査票は作れない。目指すのは「そう悪くない(not too bad)」ものである。 これは投げやりな態度ではなく、測定誤差measurement error 測定誤差(measurement error)measurement error(測定誤差) が原理的にゼロにならない対象を扱っているという認識である。
誤差は連鎖する
flowchart TD
A["対象母集団"] --> B["実際に到達できた人<br>(例:オンライン調査は非利用者に届かない)"]
B --> C["回答してくれた人<br>(回答者は非回答者と系統的に違う)"]
C --> D["最後まで記入した人"]
D --> E["質問を意図どおりに理解して<br>記入した人"]
E --> F["得られたデータ"]
G["各段階で分布が歪む<br>——歪みは掛け算で蓄積する"] --> F
⚠️ 各段階の脱落はランダムではない。オンライン調査はネットを使わない人を落とし、長い調査票は多忙な人を落とし、収入を尋ねる設問は特定の層を落とす。回答率だけを報告して分布の歪みを議論しないのは、この連鎖を無視 neglect 無視(neglect) neglect(無視) することである1。
作り方の原則
| 段階 | やること |
|---|---|
| 1. 考える | 常識に照らす。何を知りたいのかを明確にする |
| 2. 前もって計画する | 標本サイズ、収集方法、倫理・法的手続き |
| 3. 先例を調べる | 多くの領域に検証済みの調査票が既にある。自作より既存の妥当性 validity 妥当性(validity) validity(妥当性) 検証済み尺度を使うほうがほぼ常に良い |
| 4. 試す | 対象母集団に似た小集団で試行し、フィードバックを得て作り直す。1〜3を繰り返してから確定版にする |
試行で確かめるのは3つ——質問が理解できるか、全員が同じ意味に理解するか、想定していない回答があるか。
構成
| 位置 | 内容 |
|---|---|
| 冒頭 | 倫理的・法的な説明(同意、匿名性、データの用途)/調査の目的/連絡先 |
| 前半 | 人口統計的な項目——答えやすく、記入の勢いをつける |
| 中盤 | 主要な設問 |
| 後半 | 重要度の低い設問 |
| 末尾寄り | 機微な設問(収入など)は最後のほう。早く置くと以降の回答率が落ちる |
| 最後 | 「長すぎなかったか」「答えにくくなかったか」を尋ねるメタ設問 |
⭐ できるだけ短く。 長さは回答率と回答の質の両方を下げる。
💡 設問の順序自体が回答に影響する。可能なら設問順を入れ替えた複数版を作って割り付ける——これは一種のランダム化 randomization ランダム化(randomization) randomization(ランダム化) であり、順序効果を平均化できる。
設問の書き方
| 原則 | 良くない例 | 良い例 |
|---|---|---|
| 知りたいことを正確に指す | 「収入は?」 | 「昨年の月平均の手取り収入は?」 |
| 1つの設問で1つのことを聞く | 「強く速く動けますか?」 | 「強く動けますか」「速く動けますか」の2問に分ける |
| 「わからない」「該当なし」を用意する | 選択肢が全部当てはまらないと適当に選ばれる | 明示的な選択肢として置く |
| 多肢選択は Yes/No の並びにする | 長い選択肢リストを提示 | 各項目に Yes/No。リスト全体は読まれず、先頭の選択肢が過剰に選ばれる |
| カテゴリ尺度よりスケールバー | 5段階のカテゴリ | 連続的なスケール |
| 数値で答えられるものは数値で聞く | 睡眠時間を「5時間未満/5–6/…」 | 「昨夜の睡眠時間は何時間ですか」 |
⭐ 最後の1行は前節の「尺度を落とさない」と同じ原則である。調査票の設計は、既にデータ解析の設計である。
まとめ
- 統計家はデータを取る前に呼ぶ。標本サイズ・ランダム化randomizationランダム化(randomization)randomization(ランダム化)・測定尺度・交絡因子confounding factor 交絡因子(confounding factor)confounding factor(交絡因子) の記録は、収集後には修正できない
- 分業の境界:「どれだけの差なら臨床的に意味があるか」は医師 medical doctor 医師(medical doctor) medical doctor(医師) にしか決められない。ここが空欄だと標本サイズも解釈も出てこない
- 標本サイズ・効果量・ばらつき・α と β・用いる検定の5つは互いに従属しており、4つを決めれば残りが決まる。出た数字は実行可能性・倫理性・脱落率dropout (discontinuation) rate 脱落率(dropout (discontinuation) rate)dropout (discontinuation) rate(脱落率) で必ず調整する
- p > 0.05 は「差がない」ではない。原因は6通りあり、p値はどれかを教えない。事後の検出力計算は無意味である
- 出力は 効果量 → 臨床的relevance → 信頼区間confidence interval信頼区間(confidence interval)confidence interval(信頼区間) → p値 の順で読む
- 連続量をカテゴリに落とさない。 カテゴリ化はあとでできるが、逆はできない
- データ表は1行1観察・1列1変数 variables変数(variables) variables(変数)・1セル1値・生データのみ。欠測は1つの記号に統一し、0 を欠測に使わない。個人情報はIDを介して別ファイルに分ける
- 完璧な調査票は作れない。既存の検証済み調査票を探し、小集団で試して作り直す。誤差は「到達→回答→完答→正しい理解」の各段階で非ランダムに蓄積する
出典
- 1.The Strengthening the Reporting of Observational Studies in Epidemiology (STROBE) statement: guidelines for reporting observational studies(Journal of Clinical Epidemiology(STROBE Initiative、著者 Erik von Elm, Douglas G. Altman, Matthias Egger ら)・2008)観察研究の報告に必要な22項目——標本サイズの決定根拠、欠損データの扱い、変数の定義と測定方法を事前に決めて報告すること閲覧 2026-08-17
- 2.The ASA Statement on p-Values: Context, Process, and Purpose(The American Statistician(American Statistical Association、著者 Ronald L. Wasserstein, Nicole A. Lazar)・2016)p値はH0が正しい確率ではないこと、p > 0.05 は差の不在の証明ではないこと、p値だけで科学的結論や政策決定を下してはならないこと閲覧 2026-08-17
- 3.Tidy Data(Journal of Statistical Software(著者 Hadley Wickham)・2014)解析可能なデータ表の3条件——1列1変数、1行1観察、1セル1値。および散らかった表の典型的な壊れ方(列名が値になっている、1列に複数変数が入っている等)閲覧 2026-08-17