実験の設定

Pythonで学ぶ実験計画法

James Chapman

Curriculum Manager, DataCamp

実験計画の定義

 

  • プロセス
  • 目的統制のある方法
  • 明確な結論を導く
    • 仮説に基づく

experimental-design.png

1 https://www.sciencedirect.com/topics/earth-and-planetary-sciences/experimental-design
Pythonで学ぶ実験計画法

確かな記述を作る

X は Y におそらく影響した。小さい誤りリスクがある可能性

 

  • 正確で定量的な表現

P値により、X が Y に影響したと示唆。第I種の過誤リスクは10%

  • 第I種の過誤: 帰無仮説を誤って棄却

 

  • 目標: 実験計画統計解析
Pythonで学ぶ実験計画法

なぜ実験計画か

 

多くの分野で有用:

  • 医学研究
  • マーケティング
  • プロダクト分析
  • 農業
  • 政策立案

why.png

Pythonで学ぶ実験計画法

用語

     

  • 被験者 (Subjects) = 実験対象(人、従業員、ユーザー など)

被験者(この場合は人物)。

Pythonで学ぶ実験計画法

用語

     

  • 被験者 (Subjects) = 実験対象(人、従業員、ユーザー など)
  • 処置 (Treatment) = 一方の群に与える変更

被験者のグループに処置を適用。

Pythonで学ぶ実験計画法

用語

     

  • 被験者 (Subjects) = 実験対象(人、従業員、ユーザー など)
  • 処置 (Treatment) = 一方の群に与える変更

処置群に処置を適用。

Pythonで学ぶ実験計画法

用語

     

  • 被験者 (Subjects) = 実験対象(人、従業員、ユーザー など)
  • 処置 (Treatment) = 一方の群に与える変更
  • 対照 (Control) = 変更を与えない群

被験者を処置群と対照群に分割。

Pythonで学ぶ実験計画法

被験者の群分け

     

  • 被験者を群にどう割り当てるか?
    • 選択肢1 - 非ランダム(DataFrame を分割)
    • 選択肢2 - ランダム割当

     

  • : 200人の身長が heights DataFrame にある
    id  height
0    0  177.98
1    1  174.17
2    2  178.89
Pythonで学ぶ実験計画法

非ランダム割当

 

DataFrame のスライスで割当

group1_nonrandom = heights.iloc[0:100,:]
group2_nonrandom = heights.iloc[100:,:]

compare_df = pd.concat( [group1_nonrandom['height'].describe(), group2_nonrandom['height'].describe()], axis=1) compare_df.columns = ['group1', 'group2'] print(compare_df)
  • 大きく異なる!(平均が9cm差)

 

 

       group1  group2
count  100.00  100.00
mean   170.32  179.19 <--
std      3.28    3.50
min    159.28  175.03
25%    168.06  176.57
50%    170.75  178.03
75%    173.09  180.79
max    174.92  191.32
Pythonで学ぶ実験計画法

ランダム割当

     

  • .sample() を使用
    • n または frac(0〜1の比率)
group1 = heights.sample(frac=0.5,
                        replace=False,
                        random_state=42)

group2 = heights.drop(group1.index)
print(compare_df)
  • かなり近い!(<1cm)

 

       group1  group2
count  100.00  100.00
mean   175.10  174.41 <--
std      5.39    5.78
min    163.07  159.28
25%    171.32  170.17
50%    175.22  174.86
75%    178.32  177.85
max    189.78  191.32
Pythonで学ぶ実験計画法

割当のまとめ

 

  • 被験者は群にランダムに割り当てる
    • 観測された変化を正しく帰属できる

 

  • ランダム割当: .sample()
  • 差の確認: .describe()

被験者を処置群と対照群にランダムに割当。

Pythonで学ぶ実験計画法

Ayo berlatih!

Pythonで学ぶ実験計画法

Preparing Video For Download...