多元统计分析实验-线性回归

1、实验目的

通过本实验使学生熟练运用python语言编写线性回归分析程序。

2、 实验内容

有以下两组数据,第一组数据为我国2004年31个地区城镇居民年人均可支配收入和年人均消费性支出数据,第二组数据为随机抽查的36个人的当前年薪y(美元)与开始年薪x1(美元)、工作时间x2(月)、先前工作经验x3(月)和受教育年限x4(年)。

多元统计分析实验-线性回归_第1张图片

图1城镇居民年人均可支配收入和年人均消费性支出数据

多元统计分析实验-线性回归_第2张图片

图2 抽样调查得到的36个人的数据资料

使用这两组数据完成以下内容。

1、用SPSS软件对第一组数据和第二组数据进行相关系数、回归方程建模;

2、根据SPSS软件结果,用python语言对第一组数据求可支配收入和消费性支出两个变量的相关系数;

3、根据SPSS软件结果,用python语言对第一组数据建立回归方程模型;

4、根据SPSS软件结果,用python语言对第二组数据求y和各x变量的相关系数;

5、根据SPSS软件结果,用python语言对第二组数据建立回归方程模型。

 

  1. 使用SPSS软件进行数据分析:

第一组数据分析

多元统计分析实验-线性回归_第3张图片

多元统计分析实验-线性回归_第4张图片

第二组数据分析

多元统计分析实验-线性回归_第5张图片

多元统计分析实验-线性回归_第6张图片多元统计分析实验-线性回归_第7张图片

2、用python语言对第一组数据求可支配收入和消费性支出两个变量的相关系数;

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.metrics import r2_score
import statsmodels.api as sm

data = pd.read_csv("数据1.csv",encoding="gbk") #读入数据
data.head()

print(data.corr())

运行结果:

3、用python语言对第一组数据建立回归方程模型;

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.metrics import r2_score
import statsmodels.api as sm

data = pd.read_csv("数据1.csv",encoding="gbk") #读入数据
data.head()

X = data['可支配收入'].values.reshape(-1,1)         #自变量
Y = data['消费性支出'].values.reshape(-1,1)         #因变量

reg = LinearRegression()
reg.fit(X, Y)

a = reg.coef_                  #系数
b = reg.intercept_             #常量
print("回归系数为",a,"  常量为",b)
print("回归方程为: Y(消费性支出) = {:.5} * X(可支配收入) + {:.5}".format(a[0][0], b[0]))

运行结果:

4、用python语言对第二组数据求y和各x变量的相关系数

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.metrics import r2_score
import statsmodels.api as sm

data = pd.read_csv("数据2.csv",encoding="gbk")
data = data.drop(['Unnamed: 0'], axis=1)

print("当前年薪与开始年薪相关系数",data['当前年薪'].corr(data['开始年薪']))
print("当前年薪与工作时间相关系数",data['当前年薪'].corr(data['工作时间']))
print("当前年薪与先前工作经验相关系数",data['当前年薪'].corr(data['先前工作经验']))
print("当前年薪与受教育年限相关系数",data['当前年薪'].corr(data['受教育年限']))

运行结果:

多元统计分析实验-线性回归_第8张图片

5、用python语言对第二组数据建立回归方程模型。

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.metrics import r2_score
import statsmodels.api as sm

data2 = pd.read_csv("数据2.csv",encoding="gbk")
data2.head()
data2.drop(['Unnamed: 0'], axis=1)

Xs = data.drop(['当前年薪','性别'], axis=1)
Y = data['当前年薪'].values.reshape(-1,1)

reg2 = LinearRegression()
reg2.fit(Xs, Y)

#系数
a = reg2.coef_
#常量
b = reg2.intercept_

print("回归系数为",a,"  常量为",b)
print("线性回归方程为: Y(当前年薪) = {:.5} + {:.5}*开始年薪 + {:.5}*工作时间 + {:.5}*先前工作经验 + {:.5}*受教育年限".format(reg2.intercept_[0], reg2.coef_[0][0], reg2.coef_[0][1], reg2.coef_[0][2],reg2.coef_[0][3]))

运行结果:


参考:python线性回归(其中 statsmodels.api 里的summary()能输出模型评估,与spss的结果基本一致) 

           https://blog.csdn.net/hubingshabi/article/details/80172608

相关代码及数据:蓝奏云

 

你可能感兴趣的:(多元统计分析,线性代数,矩阵,python)