如何从OLS回归结果中创建变量?

2024-06-02 14:25:10 发布

您现在位置:Python中文网/ 问答频道 /正文

import numpy as np
import pandas as pd
from scipy import stats
import statsmodels.api as sm 
import matplotlib.pyplot as plt

d = {'City': ['Tokyo','Tokyo','Lisbon','Tokyo','Madrid','Lisbon','Madrid','London','Tokyo','London','Tokyo'], 
     'Card': ['Visa','Visa','Visa','Master Card','Bitcoin','Master Card','Bitcoin','Visa','Master Card','Visa','Bitcoin'],
     'Client Number':[1,2,3,4,5,6,7,8,9,10,11],
     }

d = pd.DataFrame(data=d).set_index('Client Number')

df = pd.get_dummies(d,prefix='', prefix_sep='')


X = df[['Lisbon','London','Madrid','New York','Tokyo','Bitcoin','Master Card','Visa','No','Yes']]
Y = df['Total']

X1 = sm.add_constant(X)
reg = sm.OLS(Y, X1).fit()

reg.summary()

enter image description here

我想导入每个变量的coef,以便将模型应用于新数据。我该怎么做


Tags: importmasterclientnumberdfasvisacard
1条回答
网友
1楼 · 发布于 2024-06-02 14:25:10

reg.params包含参数估计值。摘要中列出的其他数量在reg.bse(标准误差)、reg.tvalues(t-统计)和reg.pvalues(P-值)中提供

在文档中可以看到完整的可用属性集:

https://www.statsmodels.org/devel/generated/statsmodels.regression.linear_model.RegressionResults.html

如果要将相同的参数应用于不同的数据集,最简单的方法是使用新数据构建新的OLS模型,例如

mod = OLS(y_new, x_new)

然后使用predict方法

mod.predict(reg.params)

其中res.params来自您的原始拟合。请注意,x_new在原始回归中的相同位置具有相同的变量的情况必须如此

相关问题 更多 >