SciPy的初步使用—回归分析

本文介绍了如何利用SciPy进行一元线性回归分析,通过读取数据和可视化来初步观察数据的相关性,并借助StatsModels的OLS功能进行深入的回归分析。
摘要由CSDN通过智能技术生成

SciPy致力于解决科学计算,它的不同子模块对应于不同应用,如插值、积分、优化、图像处理、特殊函数等。

利用SciPy进行一元线性回归分析,首先读取数据并可视化,初步观察其相关性,代码如下:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import datetime as dt

#修改matplotlib库的字体使其显示中文
plt.rcParams['font.sans-serif']=['SimHei']    #正常显示正文标签
plt.rcParams['axes.unicode_minus']=False      #正常显示负号

data=pd.read_csv('data.csv',index_col='Date') #获取近两年深沪300与中国平安每日涨跌数据
data.index=[dt.datetime.strptime(x,'%Y-%m-%d') for x in data.index]
data.head()
data.plot(figsize=(10,6))
plt.ylabel('涨跌幅')

效果图如下:

可以发现,两者之间相关性还是比较大的。

接下来用到StatsModels模块,在此应用其强大的OLS(ordinary least square)功能进行回归分析。

import statsmodels.api as sm #导入该模块
x=data['深沪300'].values     #添加常数项
X=sm.add_constant(x)  
y=data['中国平安'].values

#接着,对两者的收益率进行线性回归,斜率即β系数
model=sm.OLS(y,X)
results=model.fit()
results.params
plt.figure(figsize=(10,6))
plt.plot(x,y,'o',label='中国平安-深沪300')
plt.plot(x,results.fittedvalues,'r--',label='ordinary least square')
plt.legend()
plt.xlabel('深沪300')
plt.ylabel('中国平安')
plt.grid(True)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值