贝塔回归的Cook距离可以通过以下步骤计算:
import numpy as np
import pandas as pd
import statsmodels.api as sm
# 创建一个示例数据集
data = {'x1': [1, 2, 3, 4, 5],
'x2': [2, 4, 6, 8, 10],
'y': [3, 5, 7, 9, 11]}
df = pd.DataFrame(data)
# 添加截距项
df['intercept'] = 1
# 拟合线性回归模型
model = sm.OLS(df['y'], df[['intercept', 'x1', 'x2']])
results = model.fit()
# 获取模型的Cook距离
cooks_d = results.get_influence().cooks_distance[0]
# 打印每个观测值的Cook距离
print(cooks_d)
完整代码示例:
import numpy as np
import pandas as pd
import statsmodels.api as sm
# 创建一个示例数据集
data = {'x1': [1, 2, 3, 4, 5],
'x2': [2, 4, 6, 8, 10],
'y': [3, 5, 7, 9, 11]}
df = pd.DataFrame(data)
# 添加截距项
df['intercept'] = 1
# 拟合线性回归模型
model = sm.OLS(df['y'], df[['intercept', 'x1', 'x2']])
results = model.fit()
# 获取模型的Cook距离
cooks_d = results.get_influence().cooks_distance[0]
# 打印每个观测值的Cook距离
print(cooks_d)
这样,你就可以得到每个观测值的Cook距离。
下一篇:贝塔回归的DFFITs