Reference
https://blog.csdn.net/Da___Vinci/article/details/83475793
基本上是原文照搬,但有稍微的增加,使得整個流程能在Python version 3.7順利走通。
前言
財政收入的規模大小對一個國家來說具有十分重要的意義,本文章分別從財政收入的組成因素和財政收入的影響因素兩個方面入手,對祖國1979-1999年度財政收入情況進行多因素分析。在財政收入影響因素分析上,除了通過理論選出因素并利用統計軟件建立模型分析,還把影響財政收入的結構因素進行了個別分析,最后在分析結論的基礎上,結合當前客觀條件和政策因素對未來財政收入做了一定的期望。
數據
數據來自網絡,一共含有9個因素,GDP、能源消費總量、從業人員總數、全社會固定資產投資總額、實際利用外資總額,全國城鄉居民儲蓄存款年底月、居民人均消費水平、消費品零售總額和居民消費價格指數。數據如下。
其中t: 年份;y:財政收入;x1:GDP;x2:能源消費總量;x3:從業人員總數;x4:全社會固定資產投資總額;x5:實際利用外資總額;x6:全國城鄉居民儲蓄存款年底月;x7:居民人均消費水平;x8:消費品零售總額;x9:居民消費價格指數
import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
from sklearn.linear_model import LinearRegression
data = pd.read_csv('Revenue.csv', sep='\t')
data
data.plot()
image.png
data.describe()
image.png
data.corr()
image.png
data.corr()['y']
t 0.901941
y 1.000000
x1 0.985051
x2 0.862568
x3 0.829253
x4 0.984607
x5 0.946547
x6 0.995125
x7 0.986643
x8 0.990883
x9 0.934222
Name: y, dtype: float64
lrModel = LinearRegression()
y = data['y'].values.reshape(-1, 1)
x = data.iloc[:,2:]
x.plot()
image.png
lrModel.fit(x, y)
lrModel.score(x,y)
# 0.9971458875882132
alpha = lrModel.intercept_[0]
alpha
# 2425.6858933074127
beta = lrModel.coef_[0]
beta
# array([ 0.1000633 , -0.06393532, 0.06399272, -0.09941855,
# 6.08718343, -0.1251754 , -5.19932315, 1.07558855,
# -16.21937074])
最后公式為:
y =2425.6858933074127 + 0.1000633x1 - 0.06393532x2 + 0.06399272x3 - 0.09941855x4 + 6.08718343x5 - 0.1251754x6 - 5.19932315x7 + 1.07558855x8 - 16.21937074x9