測定値の正規化

Python による生体医療画像解析

Stephen Bailey

Instructor

分析ワークフロー

グループワークフロー

Python による生体医療画像解析

OASISの集団データ

df.shape
(400, 5)
df.sample(5)
                age sex  alzheimers  brain_vol    skull_vol
    ID                                                        
    OAS1_0272   75   F        True    851.451  1411.125695
    OAS1_0112   69   F       False    894.801  1434.146892
    OAS1_0213   48   F       False    925.859  1412.781004
    OAS1_0311   22   F       False    980.163  1363.413762
    OAS1_0201   85   F       False    904.104  1420.631447
Python による生体医療画像解析

仮説検定

男性と女性

Python による生体医療画像解析

仮説検定

帰無仮説: 2つの集団の平均脳容積 ($\mu_{m}, \mu_{w}$) は等しい。

$$ H_{null}: \mu_{w} = \mu_{m} $$ $$ H_{alt}\ : \mu_{w} \ne \mu_{m} $$

$$ t = \frac{\bar X - \mu}{s / \sqrt{n}} $$

scipy.stats.ttest_ind() で実装

Python による生体医療画像解析

仮説検定

brain_m = df.loc[df.sex == 'M', 'brain_vol']

brain_f = df.loc[df.sex == 'F', 'brain_vol']
from scipy.stats import ttest_ind results = ttest_ind(brain_m, brain_f)
results.statistic
results.pvalue
10.20986
5.03913e-22

$t$統計量が大きく$p$値が低いため、有意差があることが示唆されます。

Python による生体医療画像解析

相関する測定値

df[['brain_vol', 'skull_vol']].corr()
                'brain_vol' 'skull_vol'
    'brain_vol'      1.000       0.736
    'skull_vol'      0.736       1.000

脳と頭蓋骨の散布図

Python による生体医療画像解析

正規化

df['brain_norm'] = df.brain_vol / df.skull_vol

brain_norm_m = df.loc[df.sex == 'M', 'brain_norm'] brain_norm_f = df.loc[df.sex == 'F', 'brain_norm'] results = ttest_ind(brain_norm_m, brain_norm_f)
results.statistic
results.pvalue
-0.94011
0.34769

元の結果は性別ではなく頭のサイズによるものと考えられます。

Python による生体医療画像解析

画像における多くの潜在的交絡因子

画像取得

  • コントラスト
  • 解像度
  • 視野

被験者 / 対象

  • 年齢
  • 性別
  • 病態

コンテキスト

  • 病院
  • 放射線科医
  • 機器

データ品質

  • フォーマット
  • アーティファクト
Python による生体医療画像解析

おめでとうございます!

画像ワークフロー

Python による生体医療画像解析

頑張ってください!

Python による生体医療画像解析

Preparing Video For Download...