ols回归结果分析表python_个股与指数的回归分析(自带python ols 参数解读)

python金融风控评分卡模型和数据分析微专业课(博主亲自录制视频):http://dwz.date/b9vv

http://blog.csdn.net/csqazwsxedc/article/details/51336322(转)

# 一 个股与指数的回归分析 ## 1.1 数据加载 加载分析所需的Python库

import statsmodels.api as sm

import statsmodels.formula.api as smf

import statsmodels.graphics.api as smg

import patsy

%matplotlib inline

import matplotlib.pyplot as plt

import numpy as np

import pandas as pd

from pandas import Series,DataFrame

from scipy import stats

import seaborn as sns

确定起止时间为2015年1月1日至2015年12月31日

import datetime

start = datetime.datetime(2015,1,1)

end = datetime.datetime(2015,12,31)

获取”上证综指”2015年股价数据,记为datasz; 获取”机器人”公司2015年股价数据,记为datajqr。

from pandas.io.data import DataReader

datass = DataReader("000001.SS","yahoo",start,end)

datajqr = DataReader("300024.SZ","yahoo",start,end)

D:\software\新建文件夹 (4)\lib\site-packages\pandas\io\data.py:33: FutureWarning: The pandas.io.data module is moved to a separate package (pandas-datareader) and will be removed from pandas in a future version. After installing the pandas-datareader package (https://github.com/pydata/pandas-datareader), you can change the import “from pandas.io import data, wb“ to “from pandas_datareader import data, wb“. FutureWarning)

datass.head()

OpenHighLowCloseVolumeAdj Close

Date

2015-01-05

3350.52

3350.52

3350.52

3350.52

0

3350.52

2015-01-06

3351.45

3351.45

3351.45

3351.45

0

3351.45

2015-01-07

3373.95

3373.95

3373.95

3373.95

0

3373.95

2015-01-08

3293.46

3293.46

3293.46

3293.46

0

3293.46

2015-01-09

3285.41

3285.41

3285.41

3285.41

0

3285.41

datajqr.head()

OpenHighLowCloseVolumeAdj Close

Date

2015-01-01

39.39

39.39

39.39

39.39

0

39.37083

2015-01-02

39.39

39.39

39.39

39.39

0

39.37083

2015-01-05

38.83

39.33

37.30

39.01

20750100

38.99101

2015-01-06

38.76

41.29

38.50

41.22

24357600

41.19994

2015-01-07

41.21

41.60

40.05

40.18

16364700

40.16044

## 1.2 个股与上证指数数据探索性分析

close_ss = datass["Close"]

close_jqr = datajqr["Close"]

得到上证综指2015年各交易日收盘价的简单统计结果,如下所示。共有233个上证综指的股价数据,指数的平均值为3739.79,最小值为2927.29,最大值为5166.35。

close_ss.describe()

count 233.000000 mean 3739.794893 std 538.105387 min 2927.290000 25% 3320.680000 50% 3617.060000 75% 4034.310000 max 5166.350000 Name: Close, dtype: float64 得到机器人公司2015年各交易日收盘价的简单统计结果,如下所示。共有261个上证综指的股价数据,股价的平均值67.31,最小值为39.01,最大值为128.00。

close_jqr.describe()

count 261.000000 mean 67.317433 std 20.643055 min 39.010000 25% 51.800000 50% 68.500000 75% 82.550000 max 128.000000 Name: Close, dtype: float64 观察上证综指和机器人公司的股价波动图,如下所示,可以看到,上证综指与机器人公司的股价波动有着相对一致的趋势,机器人公司股价波动较上证综指更大。

fig,ax = plt.subplots(nrows=1,ncols=2,figsize=(15,6))

close_ss.plot(ax=ax[0])

ax[0].set_title("SZZZ")

close_jqr.plot(ax=ax[1])

ax[1].set_title("JQR")

stock = pd.merge(datass,datajqr,left_index = True, right_index = True)

stock = stock[["Close_x","Close_y"]]

stock.columns = ["SZZZ","JQR"]

stock.head()

SZZZJQR

Date

2015-01-05

3350.52

39.01

2015-01-06

3351.45

41.22

2015-01-07

3373.95

40.18

2015-01-08

3293.46

40.15

2015-01-09

3285.41

39.36

根据股价得到上证综指和机器人公司的日收益率序列,如下所示。

daily_return = (stock.diff()/stock.shift(periods = 1)).dropna()

daily_return.head()

SZZZJQR

Date

2015-01-06

0.000278

0.056652

2015-01-07

0.006714

-0.025230

2015-01-08

-0.023856

-0.000747

2015-01-09

-0.002444

-0.019676

2015-01-12

-0.017072

0.004827

观察日收益率序列的简单统计值,如下所示。上证综指日收益率平均值为0.000556,最小值为-0.0849,最大值为0.0769.机器人公司股价的平均值为0.003665,最小值为-10.00,最大值数据为异常值。

daily_return.describe()

SZZZJQR

count

232.000000

232.000000

mean

0.000556

0.003665

std

0.025194

0.050061

min

-0.084907

-0.100017

25%

-0.011398

-0.021297

50%

0.002583

-0.000724

75%

0.016720

0.026968

max

0.076940

0.209524

观察异常值数据

daily_return[daily_return["JQR"] > 0.105]

SZZZJQR

Date

2015-10-12

0.07694

0.209524

经分析,该日股价数据异常的原因主要是10月8日和10月9日两个交易日的股价数据缺失,导致该日收益率的计算基数为2015年9月30日。

画出上证综指和机器人公司日收益率波动图

fig,ax = plt.subplots(nrows=1,ncols=2,figsize=(15,6))

daily_return["SZZZ"].plot(ax=ax[0])

ax[0].set_title("SZZZ")

daily_return["JQR"].plot(ax=ax[1])

ax[1].set_title("JQR")

画出上证综指和机器人公司日收益率直方图和密度图,如下所示,可以发现,总体上,上证综指和机器人公司日收益率服从正态分布。相对而言,机器人公司的日收益率较上证综指偏低。

fig,ax = plt.subplots(nrows=1,ncols=2,figsize=(15,6))

sns.distplot(daily_return["SZZZ"],ax=ax[0])

ax[0].set_title("SZZZ")

sns.distplot(daily_return["JQR"],ax=ax[1])

ax[1].set_title("JQR")

画出上证综指和机器人公司股价日收益率散点图,如下所示。

fig,ax = plt.subplots(nrows=1,ncols=1,figsize=(12,6))

plt.scatter(daily_return["JQR"],daily_return["SZZZ"])

plt.title("Scatter Plot of daily return between JQR and SZZZ")

散点图表明,上证综指和机器人公司的股价可能存在线性的正相关关系。

1.3 个股与上证综指回归分析

import statsmodels.api as sm

加入截距项。

daily_return["intercept"]=1.0

以个股为自变量,上证综指为因变量,对个股和上证综指进行回归分析。得到回归结果,如下所示。

model = sm.OLS(daily_return["JQR"],daily_return[["SZZZ","intercept"]])

results = model.fit()

results.summary()

OLS Regression Results

Dep. Variable:

JQR

R-squared:

0.382

Model:

OLS

Adj. R-squared:

0.379

Method:

Least Squares

F-statistic:

142.0

Date:

Fri, 18 Mar 2016

Prob (F-statistic):

8.29e-26

Time:

22:16:56

Log-Likelihood:

421.79

No. Observations:

232

AIC:

-839.6

Df Residuals:

230

BIC:

-832.7

Df Model:

1

Covariance Type:

nonrobust

coefstd errtP>|t|[95.0% Conf. Int.]

SZZZ

1.2275

0.103

11.915

0.000

1.025 1.431

intercept

0.0030

0.003

1.151

0.251

-0.002 0.008

Omnibus:

8.703

Durbin-Watson:

1.824

Prob(Omnibus):

0.013

Jarque-Bera (JB):

9.653

Skew:

0.350

Prob(JB):

0.00801

Kurtosis:

3.714

Cond. No.

39.8

一元最小二乘法回归结果表明,机器人公司的股票日收益率与上证综指日收益率之间存在显著的正相关关系。其中,可决系数为0.382,表明上证综指日收益率变量对机器人日收益率变量有较强的解释力,模型拟合结果较好,F统计量和Omnibus统计量的P值都接近于0,自变量的作用显著。t统计量的P值接近于0,表明上证综指变量显著。自变量系数为1.2275,表明机器人公司股票的日收益率波动比上证综指大,该个股的风险更大,可能获得的收益和损失也更大。平均上证综指日收益率波动1%,个股日收益率波动1.2275%。Durbin-Waston检验的值为1.824,表明收益率数据不存在序列相关性。Jarque-Bera的P值接近于0,表明日收益率数据服从正态分布。

python机器学习生物信息学系列课(博主录制):http://dwz.date/b9vw

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值