{
"cells": [
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ 0. , 0.52631579, 1.05263158, 1.57894737, 2.10526316,\n",
" 2.63157895, 3.15789474, 3.68421053, 4.21052632, 4.73684211,\n",
" 5.26315789, 5.78947368, 6.31578947, 6.84210526, 7.36842105,\n",
" 7.89473684, 8.42105263, 8.94736842, 9.47368421, 10. ])"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import numpy as np # 导入包\n",
"import matplotlib.pyplot as plt\n",
"import statsmodels.api as sm\n",
"\n",
"nsample = 20 #生成20个样本点\n",
"x = np.linspace(0, 10, nsample) # 从0-10之间生成20个数\n",
"x"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**一元线性回归**"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[ 1. , 0. ],\n",
" [ 1. , 0.52631579],\n",
" [ 1. , 1.05263158],\n",
" [ 1. , 1.57894737],\n",
" [ 1. , 2.10526316],\n",
" [ 1. , 2.63157895],\n",
" [ 1. , 3.15789474],\n",
" [ 1. , 3.68421053],\n",
" [ 1. , 4.21052632],\n",
" [ 1. , 4.73684211],\n",
" [ 1. , 5.26315789],\n",
" [ 1. , 5.78947368],\n",
" [ 1. , 6.31578947],\n",
" [ 1. , 6.84210526],\n",
" [ 1. , 7.36842105],\n",
" [ 1. , 7.89473684],\n",
" [ 1. , 8.42105263],\n",
" [ 1. , 8.94736842],\n",
" [ 1. , 9.47368421],\n",
" [ 1. , 10. ]])"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"X = sm.add_constant(x) # 生成第一列都是1,第二列是原始数据\n",
"X"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([2, 5])"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#β0,β1分别设置成2,5\n",
"beta = np.array([2,5])\n",
"beta"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([-0.44917782, -0.7881134 , -0.41908437, 0.03441592, -1.52404766,\n",
" -0.00416825, -0.65333685, 1.67840733, 1.52347633, -0.43867697,\n",
" 0.22222029, 0.61150455, -2.23946729, 1.22670988, 0.17836627,\n",
" 0.66150276, -1.77887457, 0.37328361, 1.94511935, -0.05179077])"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#构造一个高斯分布的误差项\n",
"e = np.random.normal(size = nsample)\n",
"e"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ 1.55082218, 3.84346555, 6.84407352, 9.92915276, 11.00226813,\n",
" 15.15372648, 17.13613683, 22.09945996, 24.57610791, 25.24553356,\n",
" 28.53800976, 31.55887297, 31.33948008, 37.4372362 , 39.02047153,\n",
" 42.13518697, 42.32638858, 47.11012572, 51.3135404 , 51.94820923])"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#实际值y\n",
"y = np.dot(X, beta) + e\n",
"y"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [],
"source": [
"#最小二乘法\n",
"model = sm.OLS(y, X)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
"#拟合数据\n",
"res = model.fit()"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([1.58035731, 5.08501122])"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#回归系数\n",
"res.params # 求出的结果就是β0和β1,会有一些差距,因为数据点比较少,可以早多点数据点"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"OLS Regression Results\n",
"\n",
" | Dep. Variable: | y | R-squared: | 0.995 | \n",
"
\n",
"\n",
" | Model: | OLS | Adj. R-squared: | 0.995 | \n",
"
\n",
"\n",
" | Method: | Least Squares | F-statistic: | 3853. | \n",
"
\n",
"\n",
" | Date: | Mon, 09 Nov 2020 | Prob (F-statistic): | 1.89e-22 | \n",
"
\n",
"\n",
" | Time: | 21:52:46 | Log-Likelihood: | -29.445 | \n",
"
\n",
"\n",
" | No. Observations: | 20 | AIC: | 62.89 | \n",
"
\n",
"\n",
" | Df Residuals: | 18 | BIC: | 64.88 | \n",
"
\n",
"\n",
" | Df Model: | 1 | | | \n",
"
\n",
"\n",
" | Covariance Type: | nonrobust | | | \n",
"
\n",
"
\n",
"\n",
"\n",
" | coef | std err | t | P>|t| | [0.025 | 0.975] | \n",
"
\n",
"\n",
" | const | 1.5804 | 0.479 | 3.298 | 0.004 | 0.574 | 2.587 | \n",
"
\n",
"\n",
" | x1 | 5.0850 | 0.082 | 62.075 | 0.000 | 4.913 | 5.257 | \n",
"
\n",
"
\n",
"\n",
"\n",
" | Omnibus: | 1.296 | Durbin-Watson: | 2.429 | \n",
"
\n",
"\n",
" | Prob(Omnibus): | 0.523 | Jarque-Bera (JB): | 0.560 | \n",
"
\n",
"\n",
" | Skew: | -0.408 | Prob(JB): | 0.756 | \n",
"
\n",
"\n",
" | Kurtosis: | 3.073 | Cond. No. | 11.5 | \n",
"
\n",
"
Warnings:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified."
],
"text/plain": [
"\n",
"\"\"\"\n",
" OLS Regression Results \n",
"==============================================================================\n",
"Dep. Variable: y R-squared: 0.995\n",
"Model: OLS Adj. R-squared: 0.995\n",
"Method: Least Squares F-statistic: 3853.\n",
"Date: Mon, 09 Nov 2020 Prob (F-statistic): 1.89e-22\n",
"Time: 21:52:46 Log-Likelihood: -29.445\n",
"No. Observations: 20 AIC: 62.89\n",
"Df Residuals: 18 BIC: 64.88\n",
"Df Model: 1 \n",
"Covariance Type: nonrobust \n",
"==============================================================================\n",
" coef std err t P>|t| [0.025 0.975]\n",
"------------------------------------------------------------------------------\n",
"const 1.5804 0.479 3.298 0.004 0.574 2.587\n",
"x1 5.0850 0.082 62.075 0.000 4.913 5.257\n",
"==============================================================================\n",
"Omnibus: 1.296 Durbin-Watson: 2.429\n",
"Prob(Omnibus): 0.523 Jarque-Bera (JB): 0.560\n",
"Skew: -0.408 Prob(JB): 0.756\n",
"Kurtosis: 3.073 Cond. No. 11.5\n",
"==============================================================================\n",
"\n",
"Warnings:\n",
"[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
"\"\"\""
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#全部结果\n",
"res.summary()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"R-squared:R方值,评估线性回归方程好不好,主要看R方\n",
"Adj. R-squared:\t调整后R方值\n",
"Prob (F-statistic):检验是否可用线性回归方程,越小线性关系越强\n",
"No. Observations:\t观察的样本\n",
"const:常数项,对应β0\n",
"x1:对应β1"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ 1.58035731, 4.256679 , 6.9330007 , 9.60932239, 12.28564409,\n",
" 14.96196578, 17.63828748, 20.31460918, 22.99093087, 25.66725257,\n",
" 28.34357426, 31.01989596, 33.69621766, 36.37253935, 39.04886105,\n",
" 41.72518274, 44.40150444, 47.07782614, 49.75414783, 52.43046953])"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#拟合的估计值\n",
"y_ = res.fittedvalues\n",
"y_"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots(figsize=(8,6))\n",
"ax.plot(x,y,'o',label='data') # 原始数据\n",
"ax.plot(x,y_,'r--.',label='test') #拟合数据\n",
"ax.legend(loc='best')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"可以看到非常接近原始值"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}