, 𝑋$ ∼ Uniform 0, 1 𝜖 ∼ 𝒩(0, 0.01)) def generate_simulation_data( N: int = 10000, rho: float = 0.0, ) -> tuple[np.ndarray, np.ndarray]: """シミュレーションデータを生成する関数""" mu = np.array([0, 0]) Sigma = np.array([[1, rho], [rho, 1]]) X = np.random.multivariate_normal(mu, Sigma, N) for j in range(2): X[:, j] = sp.stats.norm().cdf(X[:, j]) e = np.random.normal(0, 0.01, N) y = X[:, 0] + X[:, 1] ** 2 + e return X, y X, y = generate_simulation_data() 相関していて一様分布に従うシ ミュレーションデータを作る小技 多変量正規分布でデータを生成し て、それを正規分布のCDFで変換