python最小二乘法_用python实现最小二乘法

用python实现最小二乘法

在上计量经济学的时候老师布置作业,要用Eviews这个软件实现最小二乘法,但是这个软件突然失灵了,在excel中的数据无法粘贴,这就非常难堪。于是我转向python语言寻求帮助。

最近在看用python库scikit进行机器学习的教程,但是掌握的并不是很好,这刚好是一个练手的机会。

在暑假的时候我们已经进行过许多数据上的操作了,虽然说没有真正的处理好一个数据,但是已经初探了pandas的门径,而这里我们直接用pandas读取excel中所要处理的数据,这要比用别的方式读取显得更为简单一些。import pandas as pdimport numpy as npdf=pd.read_excel(r"D:\BaiduNetdiskDownload\《经济计量学精要》的数据文件\Chapter_03\Table 3_6.xls")

在导入了数据之后我们要对数据进行筛选,什么标题之类的显然不属于我们想要用的信息.df.iloc[6:19]

筛选结果如下图所示: 接着选取数据x和y

x = a.iloc[:,1]y = a.iloc[:,0]x = np.array(x)x = x.reshape(-1,1)y = np.array(y)#为了使用scikit,要将pandas数据转为nump数组 ````值得注意的是,这里有个奇怪的操作:

pythonx = x.reshape(-1,1)似乎要将数组转化为矩阵,一位矩阵?这里是要注意的,我就是在这里没有处理好,引发了后面程序的报错,可以试着将这个语句去除掉,查看程序会有怎样的问题。

python

导入机器学习库

from sklearn import linear_modelreg = linear_model.LinearRegression()reg.fit(x,y)reg.coef_#斜率,为0.41996807,结果与Eviews,matlab得到的结果相近reg.intercept#截距最后用绘图库将数据和拟合结果绘制成图像

pythonimport matplotlib.pyplot as plt#用于作图k=reg.coef_#获取斜率w1,w2,w3,…,wnb=reg.intercept_#获取截距w0x0=xy0=k*x0+bplt.scatter(x,y)plt.plot(x0,y0)````

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值