///|
/// 示例 1 —— 用 `riantr/moonbit_doubleML` 自带的 DGP 驱动它的 `DoubleMLPLR`。
///
/// moon run examples/plr
///
/// 形状照它的 README:打印真值、估计、标准误与 95% 置信区间。
fn main {
let n = 500
let dim_x = 20
let truth = 1.0
let data = @dml.make_plr_CCDDHNR2018(n, dim_x, truth, 3141)
let dml_data = @dml.DoubleMLData::new(
data.x_get(),
data.y_get(),
data.d_get(),
)
let fitted = @dml.DoubleMLPLR::new(dml_data, n_folds=5).fit()
let (lo, hi) = fitted.confint()
println(
"=== MoonBit DML PLR(数据取自 riantr/moonbit_doubleML 的 DGP)===",
)
println("true theta_0 = \{data.theta_get()}")
println("estimated theta = \{fitted.coef()}")
println("standard error = \{fitted.se()}")
println("95% CI = [\{lo}, \{hi}]")
println("n_obs = \{fitted.n_obs()}")
println("n_features = \{fitted.n_features()}")
}