'23/11/05更新:コードの可読性を向上させました。
本記事では、Pythonで任意の数の組み合わせによるDOE(実験計画法)を作成する雛形コードを載せました。
使用方法は、本コード中にある「param_dict」と名付けた辞書に、作成したい水準の各パラメータを設定するだけです。例えば、下記例では入力因子にLength, Weight, Young_modulus, CTE, Testerの5つを設定し、各々のパラメータ(媒介変数)数は、4, 2, 3, 3, 2個を設定した場合です。
param_dict = {
'Length1': (1, 2, 3, 4),
'Weight': (10, 50),
'Young_modulus': (100, 150, 200),
'CTE':(8e-6, 17e-6, 20e-6),
'Tester':('A', 'B')
}
上記の設定で本コードを実行すると、下図のような144水準(=4×2×3×3×2)の水準表をcsvファイルで作成することができます。
■本プログラム
from itertools import product
import pandas as pd
import datetime
now = datetime.datetime.now()
now = now.strftime("%y%m%d")
save_file_path = f"{now}_doe.csv"
input_params = {
'Length1': (1, 2, 3, 4),
'Weight': (10, 50),
'Young_modulus': (100, 150, 200),
'CTE':(8e-6, 17e-6, 20e-6),
'Tester':('A', 'B')
}
combinations = list(product(*input_params.values()))
df = pd.DataFrame(combinations, columns=input_params.keys())
df.to_csv(save_file_path, sep=",", index=False, encoding="utf-8")
(参考)ExcelVBAで同様のことをしたい場合は下記リンクを参照ください。
hk29.hatenablog.jp
(参考)Pythonにて乱数による水準表を作成したい場合は下記リンクを参照ください。
hk29.hatenablog.jp
以上
<広告>
リンク
リンク