首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >修复状态模型ols中的截距

修复状态模型ols中的截距
EN

Stack Overflow用户
提问于 2018-06-26 21:15:25
回答 1查看 3.4K关注 0票数 3

在Python的statsmodels.formula.api中,ols功能自动包含和估计一个拦截:

代码语言:javascript
复制
results = sm.ols(formula="s ~ x + y + z", data=somedata).fit()
results.params
(* Intercept 0.632646, x -1.258761, y 0.465076, z 0.497991 *)

因为我把它用在线性概率模型中,有没有办法把截距修正到0.5?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-26 22:03:57

您可以在两个步骤中再现此行为:

  1. 从目标中减去predefined_intercept
  2. 不拦截OLS :在公式中包括"-1“

最起码的例子:

代码语言:javascript
复制
from statsmodels.formula.api import ols
import pandas as pd
import numpy as np

n_samples = 100
predefined_intercept = 0.5

somedata = pd.DataFrame(np.random.random((n_samples, 3)), columns = ['x', 'y', 'z'])
somedata['s'] = somedata['x'] - 2 * somedata['y'] + 5 * somedata['z'] - predefined_intercept

results = ols(formula="s ~ x + y + z - 1", data=somedata).fit()
print(results.params)

输出:

代码语言:javascript
复制
x    0.671561
y   -2.315076
z    4.759542

更详细的解释请参见官方的公式示例记事本

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51051460

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档