用Python语言jupyter模拟样本量等于100的数据,模拟200次,进行逐步回归,最后用AIC准则选择变量
时间: 2024-03-16 18:46:48 浏览: 14
好的,以下是一个使用Python语言在jupyter中模拟样本量等于100的数据,进行200次逐步回归,并使用AIC准则选择变量的示例代码:
```python
import numpy as np
import pandas as pd
import statsmodels.api as sm
# 设置随机数种子,以便复现结果
np.random.seed(123)
# 模拟数据
n = 100
X = np.random.randn(n, 5) # 5个自变量
y = np.random.randn(n) # 因变量
# 逐步回归模拟200次,并使用AIC准则选择变量
results = []
for i in range(200):
best_aic, best_model, best_cols = np.inf, None, []
for j in range(1, 6):
for cols in combinations(range(5), j):
X_ = sm.add_constant(X[:, cols])
model = sm.OLS(y, X_).fit()
if model.aic < best_aic:
best_aic, best_model, best_cols = model.aic, model, cols
results.append({
'aic': best_aic,
'params': best_model.params,
'rsquared_adj': best_model.rsquared_adj,
'selected_cols': best_cols
})
# 将结果存储在数据框中
df = pd.DataFrame(results)
# 输出结果
print(df.head())
```
这段代码会生成一个包含100个样本和5个自变量的数据集,并对该数据集进行200次逐步回归。对于每次回归,程序使用AIC准则选择最佳自变量,并记录AIC值、模型系数、调整R方值和选择的自变量。最后,程序将结果存储在一个数据框中,并输出前几行。
请注意,上述代码中的combinations函数是从itertools库中导入的,用于生成自变量组合。如果您的Python环境中没有安装该库,请先使用pip进行安装。