|
|
|
|
|
import numpy as np, pandas as pd |
|
|
|
|
|
rng = np.random.default_rng(0) |
|
|
rows = [] |
|
|
for traj in range(5): |
|
|
T = rng.integers(15, 25) |
|
|
risk = rng.uniform(0.2, 0.8, size=T) |
|
|
sbp = rng.normal(120, 15, size=T) |
|
|
labA = rng.normal(0.0, 1.0, size=T) |
|
|
labB = rng.normal(5.0, 2.0, size=T) |
|
|
|
|
|
|
|
|
action = rng.integers(0, 3, size=T) |
|
|
|
|
|
|
|
|
reward = 1.0 - 2.0*risk - 0.01*sbp |
|
|
|
|
|
for t in range(T): |
|
|
rows.append(dict( |
|
|
subject_id=traj, visit=t, treatment=action[t], |
|
|
risk=risk[t], sbp=sbp[t], labA=labA[t], labB=labB[t], |
|
|
outcome=reward[t], is_last=(t==T-1) |
|
|
)) |
|
|
df = pd.DataFrame(rows) |
|
|
df.to_csv("./data/toy_tabular.csv", index=False) |
|
|
print("[OK] wrote ./data/toy_tabular.csv with", len(df), "rows") |
|
|
|