数学笔记-线性代数1
矩阵运算
A.dot(B) # 矩阵A点乘矩阵B
B = np.linalg.inv(A) # 矩阵A求逆
线性回归模型求解
statsmodels统计分析包
statsmodels,OLS(endog, exog),其中endog是因变量Y,exog是自变量X
1、生成模型
import numpy as np
import matplotlib.pyplot as plt
import statsmodels.api as sm
nsample = 200
x = np.linspace(0,10,nsample) # 生成自变量数组,其值在1-10等差排列
X = sm.add_constant(x) # sm.add_constant是在向量左侧加上一列1
beta = np.array([1,10]) # 设置beta0,beta1,其值为0,1
mu = np.random.normal(size=nsample) # 生成误差项mu,其值取自标准正态分布
y = np.dot(X,beta) + mu
2、模型求解
model = sm.OLS(y,x)
result = model.fit() # 模型求解
print(result.params) # 获取模型参数估计值
print(result.summary) # 模拟结果
3、将拟合结果画出来
y_fitted = results.fittedvalues # 调用fittedvalues得到拟合的y
plt.figure(figsize = (12,4))
plt.axis(0, 2, 0, 25) # 设置坐标轴区间
plt.grid(True)
plt.plot(x, y, 'n', label='data') # 绘制原始数据
plt.plot(x, y_fitted, 'r--.', label='OLS') # 绘制拟合数据
plt.legend(loc='best') # 添加图注释
4、离散变量的处理
转化为哑变量
dummy = sm.categorical(x2, drop=True) # 将离散变量变为哑变量