线性回归分析

前言:这是学校多元统计分析课程布置的实验(包括基于python的线性代数运算、线性回归分析实验、聚类分析、因子分析和主成分分析),这里分享出来,注解标注的比较全,供大家参考。

1、读取文件“test2-1.csv”,数据为随机抽查的36个人的收入情况,包括当前年薪y(美元)与开始年薪x1(美元)、工作时间x2(月)、先前工作经验x3(月)和受教育年限x4(年)。使用数据完成以下内容。
①用SPSS软件对数据进行相关系数、回归方程建模;
相关系数:
线性回归分析_第1张图片
回归方程建模:
线性回归分析_第2张图片
②根据SPSS软件结果,用python语言对该组数据求y和各x变量的相关系数和y和某两个x变量的偏相关系数;
线性回归分析_第3张图片
③根据SPSS软件结果,用python语言对该组数据建立回归方程模型。

import numpy as np
import pandas as pd
from fractions import Fraction
import statsmodels.api as sm

# 设置矩阵元素输出用分数表示
np.set_printoptions(formatter={'all': lambda x: str(Fraction(x).limit_denominator())})
# 这里如果不设置header=None默认就将数据第一行当作数据头
'''
当前年薪y(美元),开始年薪x1(美元),工作时间x2(月),先前工作经验x3(月),受教育年限x4(年)
corr()求解变量相关系数
'''
df = pd.read_csv("test2-1.csv")
print(df)
y = df['当前年薪']
x1 = df['开始年薪']
x2 = df['工作时间']
x3 = df['先前工作经验']
x4 = df['受教育年限']
print("当前年薪与开始年薪的相关系数:", y.corr(x1))
# print("当前年薪与工作时间的相关系数:", y.corr(x2))
# print("当前年薪与先前工作经验的相关系数:", y.corr(x3))
# print("当前年薪与受教育年限的相关系数:", y.corr(x4))
y_x2x4 = (x2.corr(x4) - x2.corr(y) * x4.corr(y)) / (((1 - x2.corr(y)**2)**0.5) * ((1 - x4.corr(y)**2)**0.5))
print(y_x2x4)
# y_x2x4 = (x2.corr(y) - x2.corr(x4) * y.corr(x4)) / (((1 - x2.corr(x4)**2)**0.5) * ((1 - y.corr(x4)**2)**0.5))
# print("当前年薪和工作时间和受教育年限的偏相关系数:", y_x2x4)
# 根据SPSS得出各个系数结果为x1=1.665,x2=-24.182,x3=-15.480,x4=903.685,常量为-2243.096
constant = -2243.096
c_x1 = +1.665
c_x2 = -24.182
c_x3 = -15.480
c_x4 = +903.685
print(sm.OLS(y, x1))
print("线性回归方程为:y(当前年薪) = {}*x1(开始年薪){}*x2(工作时间){}*x3(先前工作经验)+{}*x4(受教育年限){}".format(c_x1, c_x2, c_x3, c_x4, constant))

线性回归分析_第4张图片

源码
在这里插入图片描述

文件获取,提取码:uj7m

你可能感兴趣的:(python,python,多元统计分析,实验)