始める無料で始める

BMIによるアウトカムの評価

BMIの上位10%にいる患者と下位10%にいる患者では、予測される疾患進行(応答、y)にどれくらい差がありますか? 多変量正規分布からサンプリングしたシミュレーション結果を使って、この問いに答えます。

シミュレーション実行はすでに済んでいます。あなたのタスクは、df_results にあるシミュレーション結果を評価することです。

次のライブラリはインポート済みです:pandaspdnumpynpscipy.statsst

この演習はコースの一部です

Pythonで学ぶモンテカルロ・シミュレーション

コースを見る

演習の手順

  • np.quantile() を使って、シミュレーション結果の bmi の10パーセンタイルと90パーセンタイルを計算し、それぞれ bmi_q10bmi_q90 に代入します。
  • bmi_q10bmi_q90 を使って df_summary をフィルタし、予測された y の値を取得します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

simulation_results = st.multivariate_normal.rvs(mean=mean_dia, size=20000, cov=cov_dia)
df_results = pd.DataFrame(simulation_results,columns=["age", "bmi", "bp", "tc", "ldl", "hdl", "tch", "ltg", "glu"])
predicted_y = regr_model.predict(df_results)
df_y = pd.DataFrame(predicted_y, columns=["predicted_y"])
df_summary = pd.concat([df_results,df_y], axis=1)

# Calculate the 10th and 90th quantile of bmi in the simulated results
bmi_q10 = np.quantile(df_summary["bmi"], ____)
bmi_q90 = np.quantile(df_summary["bmi"], ____)

# Use bmi_q10 and bmi_q90 to filter df_summary and obtain predicted y values
mean_bmi_q90_outcome = np.mean(df_summary[____]["predicted_y"]) 
mean_bmi_q10_outcome = np.mean(df_summary[____]["predicted_y"])
y_diff = mean_bmi_q90_outcome - mean_bmi_q10_outcome
print(y_diff)
コードを編集して実行