小编782*_*219的帖子

带约束的简单线性回归

我开发了一种算法来循环 15 个变量并为每个变量生成一个简单的 OLS。然后算法再循环 11 次以产生相同的 15 个 OLS 回归,但 X 变量的滞后每次增加 1。我选择具有最高 r^2 的自变量,并使用 3,4 或 5 个变量的最佳滞后

IE

Y_t+1 - Y_t = B ( X_t+k - X_t) + e
Run Code Online (Sandbox Code Playgroud)

我的数据集如下所示:

Regression = pd.DataFrame(np.random.randint(low=0, high=10, size=(100, 6)), 
                columns=['Y', 'X1', 'X2', 'X3', 'X4','X5'])
Run Code Online (Sandbox Code Playgroud)

到目前为止,我拟合的 OLS 回归使用以下代码:

Y = Regression['Y']
X = Regression[['X1','X2','X3']]

Model = sm.OLS(Y,X).fit()
predictions = Model.predict(X)

Model.summary()
Run Code Online (Sandbox Code Playgroud)

问题是,使用 OLS,您可以获得负系数(我就是这样做的)。我非常感谢您通过以下方式限制该模型的帮助:

sum(B_i) = 1

B_i >= 0
Run Code Online (Sandbox Code Playgroud)

python linear-regression statsmodels

3
推荐指数
1
解决办法
3992
查看次数

标签 统计

linear-regression ×1

python ×1

statsmodels ×1