本文共 1539 字,大约阅读时间需要 5 分钟。
数据集展示了m城市人口初次来m城市的时间、迁离m城市的时间、现在的收入。现假设外来人口在m城市的居住时间影响他们的收入。试加以分析和证明。
(1)展示数据集的结构。 (2)显示前10条数据记录。 (3)将变量名重新命名为英文变量名。不能使用Excel处理数据。 (4)计算自变量的最小值、中位数、均值、最大值和标准差,要求保留2位小数。注意:因变量转换为对数。 (5)计算因变量(转换为对数值)和自变量的相关系数,要求保留2位小数。 (6)绘制因变量与自变量的散点图。 (7)利用一元线性回归模型对因变量与自变量的关系进行拟合,并进行假设检验。 (8)分别计算因变量的均值、标准差、偏度和峰度,判断因变量的样本值是否符合正态分布。import numpy as npimport pandas as pdfrom matplotlib import pyplot as pltfrom statsmodels.formula.api import ols #数理统计包file_path="/home/cc1997/Desktop/huleihomework/data01.csv"mydata=pd.read_csv(file_path,encoding="gbk")#print(mydata.head(10))#删除空列mydata=mydata.dropna(axis=1)#重命名names=["comeyear","comemon","outyear","outmon","income"]mydata.columns=names#计算居住时间times=mydata["outyear"]*12+mydata["outmon"]-mydata["comeyear"]*12-mydata["comemon"]#如果你的数据只有一列,在指定column时,需要加个中括号times=pd.DataFrame(times,columns=["times"])print(times.head(10),type(times))mydata=mydata.join(times)#取对数mydata["income"]=mydata["income"].apply(np.log)print(mydata.head(10))#求自变量的最大值最小值保留两位小数print("最大值:",mydata["times"].max())print("最小值:",mydata["times"].min())print("平均值:",round(mydata["times"].mean(),2))print("中位数:",mydata["times"].median())#计算因变量和自变量的相关系数print("相关系数",mydata["times"].corr(mydata["income"]))#画图plt.plot(mydata["times"],mydata["income"],'o')plt.xlabel("居住时间")plt.ylabel("对数收入")plt.show()#线性回归和参数估计times=mydata["times"]logincome=mydata["income"]model=ols("logincome~times",data=mydata).fit()print(model.summary())#计算自变量偏度和峰度print("偏度:",logincome.skew())#偏度print("峰度:",logincome.kurt())#峰度
转载地址:http://ljpv.baihongyu.com/