《金融大数据分析》-课件 第3章 线性回归_第1页
《金融大数据分析》-课件 第3章 线性回归_第2页
《金融大数据分析》-课件 第3章 线性回归_第3页
《金融大数据分析》-课件 第3章 线性回归_第4页
《金融大数据分析》-课件 第3章 线性回归_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

金融大数据学习第三章:线性回归吴轲中国人民大学20243.1 学习目标理解线性回归的应用范畴熟悉线性回归的函数形式,以及模型中参数理解机器学习常用训练的方法:梯度下降,并了解对该方法在线性回归模型中的具体使用方法的意义掌握如何使用Python训练线性回归模型3.2 案例:预测公司盈利在金融市场中,公司盈利是对公司表现最重要的衡量指标之一。每次公司季报或年报之前,金融分析师经常需要对他们关注的公司作出盈利预测。如果公司表现达不到市场预期,其股票回报往往会出现显著下跌。在传统金融机构中,分析师为了做出相对准确的预测往往需要进行大量的调研。近期的研究发现,通过机器学习的方法,我们同样可以得到非常好的公司盈利预测效果。在本章中,我们的目标是通过机器学习方法来构建一个预测公司每股收益的预测系统。案例数据及分析每股收益预测数据股票代码日期股价净市率资产收益率每股收益6018882016-0644.180.2480.0471.1330006512005-0910.540.4700.0120.5006000312010-0627.090.2960.0661.1900001572012-0610.850.4010.0300.7750020012014-0612.780.4430.0230.500案例数据及分析

3.3 线性回归方法

值得注意的是,本例中,目标变量是一个连续变量。因为理论上来说,该变量可以是任何实数。因此,我们的模型需要能够输出同样的连续变量。对于这一类问题,一个简单而有效的方法是线性回归。接下来,我们将讨论:什么是线性回归(一元以及多元线性回归)如何估计线性回归模型中的参数线性回归参数的意义在程序中如何执行线性回归一元线性回归

一元线性回归

模型训练

模型训练

代价函数

代价函数

梯度下降

梯度下降

梯度下降

梯度下降

多元线性回归

多元线性回归

多元线性回归梯度下降

多元回归注意事项

统计显著性检验

统计显著性检验

3.4拓展:线性方法的其他应用

本章中,我们主要以预测每股收益作为例子来探讨如何使用线性回归。我们以使用线性回归的例子来说明线性回归的广泛用途。为了得到超额投资收益,投资者需要预测未来股票的涨跌。成功的投资者往往可以及时购入未来收益较高的股票并置换出未来收益较低的股票。

我们是否有可能通过搜集到的信息获得超额收益?哪些信息可以帮助更好的预测未来股票回报呢?该问题涵盖本章中讨论的两个重要概念:预测与推断。我们需要知道我们能否使用线性模型来很好的预测未来的股票回报率,并且推断哪些信息对于预测有着较为重要的作用。用线性回归进行回报率预测

用线性回归进行回报率预测

3.5编写线性回归程序

用statsmodel模块进行回归分析1.导入库

使用pandas存储数据。

导入statsmodels的api模块用于线性回归分析(statsmodels是一个用于统计建模和计量经济学的Python库)。

导入statsmodels.tools.eval_measures中的mse函数,用于计算均方误差。import

pandas

as

pd

import

statsmodels.api

as

sm

from

statsmodels.tools.eval_measures

import

mse

用statsmodel模块进行回归分析2.数据读取及处理

读取名为’ols_training.csv’的CSV文件中的数据,并将其存储在df变量中。

定义一个特征列表,定义三个特征名称’pps’,‘bm’,‘roa’。

使用statsmodels的add_constant方法将df中的特征列(不包括常数列)添加常数列,并返回一个包含常数列的新DataFrame。df=pd.read_csv('ols_training.csv')

features=['pps','bm','roa']

X=sm.add_constant(df[features])

用statsmodel模块进行回归分析3.进行回归分析

创建一个OLS模型对象,使用sm.OLS函数,其中因变量为df中的‘eps_basic’列,自变量为X。

使用fit方法对模型进行拟合,并将结果存储在result中。

打印result的摘要信息,包括各个参数的值和统计量等。model

=

sm.OLS(df['eps_basic'],

X)

result

=

model.fit()

print(result.summary())

用statsmodel模块进行回归分析 5.模型拟合:下面来检测我们训练的模型与数据的拟合程度。首先,使用predict方法预测X对应的因变量值,并赋值给ypred变量。将预测的结果添加到df中的”eps_basic_pred”列打印df的前五行,以查看添加的预测列。

使用mse函数计算实际因变量和预测因变量之间的均方误差并显示。得到MSE:0.33674576635864206。ypred

=

result.predict(X)

df["eps_basic_pred"]

=

ypred

print(df.head())

mse_ols

=

mse(df['eps_basic'],

ypred)

print("MSE:",mse_ols)

用sklearn模块进行回归分析1.导入库:

使用pandas储存数据

导入statsmodels的api模块用于线性回归分析

导入sklearn库的sm,是另一个线性回归的库

导入sklearn库的标准化模块,用于对数据进行标准化处理用sklearn模块进行回归分析2.数据读入及处理

读取名为’ols_training.csv’的CSV文件中的数据,将其存储在df变量中。

定义一个特征列表,包含三个特征名称’pps’,‘bm’,‘roa’。

创建一个Standard-Scaler对象,用于对数据进行标准化处理。

对df中的特征数据进行标准化处理(处理后的特征平均值为0,标准差为1)。将标准化处理后的数据x转化为DataFrame格式,并将结果存储在x中,同时定义列名为特征列表features。使用sklearn中的模块必须首先进行这一预处理步骤。用sklearn模块进行回归分析df

=

pd.read_csv('ols_training.csv')

features

=

['pps','bm','roa']

scalar

=

StandardScaler()

scalar.fit(df[features])

x=scalar.transform(df[features])

x=pd.DataFrame(x,columns

=

features)

用sklearn模块进行回归分析

OLS

=

linear_model.LinearRegression()

est1

=

OLS.fit(X=x,y=df['eps_basic'])

print(ercept_)

print(est1.coef_)用sklearn模块进行回归分析4.用statsmodel进行比较

添加截距项(statsmodel不会自动添加截距项)。

创建OLS模型对象,使用sm.OLS函数,其中因变量为df中的‘eps_basic’列,自变量为X_const。并使用fit方法对模型进行拟合,并将结果存储在result中。打印出result的摘要信息X_const

=

sm.add_constant(x)

model

=

sm.OLS(df['eps_basic'],

X_const)

result

=

model.fit()

print(result.summary())

我们发现两种方法系数相同。因为对特征进行过缩放,因此我们得到的系数与未经过特征缩放的程序结果有所不同。经过缩放后,系数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论