python回归分析学习笔记3

方程形式: Y = X β + ε Y=X\beta+\varepsilon Y=Xβ+ε

from sklearn import linear_model
import numpy as np

factor_n = 3
sample_n = 50
np.random.seed(100)
x = np.random.rand(sample_n, factor_n)
sigma = np.random.normal(size=sample_n)
y = 5 * x[:, 0] + 10 * x[:, 1] - 8 * x[:, 2] + 0.5 * sigma

model = linear_model.LinearRegression().fit(x, y)
print("sklearn.linear_model")
print(model.intercept_)
print(model.coef_)

在这里插入图片描述

import statsmodels.api as sm
# sklearn中会自动加常数项,statasmodel需要主动调用add_constant
x_add = sm.add_constant(x)
model = sm.OLS(y, x_add).fit()
print("statsmodel.api.OLS:", model.params[:])

在这里插入图片描述

import numpy as np
m = np.linalg.inv(np.dot(np.transpose(x_add), x_add))
param = np.dot(np.dot(m, np.transpose(x_add)), y)
print("矩阵相乘:", param)

在这里插入图片描述
在这里插入图片描述

import cvxopt.solvers as sol
from cvxopt import matrix as mat

P = 2 * np.dot(np.transpose(x_add), x_add)
Q = - 2 * np.dot(np.transpose(x_add), y)
P = mat(P)
Q = mat(Q)
result = sol.qp(P, Q)
print("二次优化", list(result['x'][:]))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值