R语言两阶段最小⼆乘法2SLS回归、工具变量法分析股息收益、股权溢价和surfaces曲面图可视化

简介: R语言两阶段最小⼆乘法2SLS回归、工具变量法分析股息收益、股权溢价和surfaces曲面图可视化

投资者最关心的两个问题就是收益率和股息,两者作为公司经营状况的两个重要方面,往往同时出现在投资报告中,二者之间具有较强的关联性点击文末“阅读原文”获取完整代码数据


目前,国内外对于股票股息收益、股息收益率和股权溢价等方面的研究已有很多,但大多数是关于市场环境或宏观因素对上述指标产生影响的研究。


本文选择沪深两市股票作为研究对象,帮助客户构建两阶段最小二乘法2 SLS回归、工具变量法分析股息收益、股息收益率和股权溢价,旨在探究指标间是否具有显著相关关系。研究结论不仅为投资者提供了分析投资机会的理论依据,还有助于上市公司进行决策分析。此外,文章还对相关行业的发展具有一定指导意义。


1.数据


表格中包括从1965年到2014年的月度数据,需要用到的是:yyyymm(年⽉),

index(s&p 500 price index) , Dividend, D12(dividend yield), Rfree(risk-free rate)

读取数据,查看数据

head(data)
##   yyyymm Index Dividend     D12     E12       b/m    tbl    AAA    BAA  
## 1 196501 87.56  2.51667 2.51667 4.59333 0.4717232 0.0381 0.0443 0.0480  
## 2 196502 87.43  2.53333 2.53333 4.63667 0.4713995 0.0393 0.0441 0.0478  
## 3 196503 86.16  2.55000 2.55000 4.68000 0.4694899 0.0393 0.0442 0.0478  
## 4 196504 89.11  2.57000 2.57000 4.73333 0.4525593 0.0393 0.0443 0.0480  
## 5 196505 88.42  2.59000 2.59000 4.78667 0.4546643 0.0389 0.0444 0.0481  
## 6 196506 84.12  2.61000 2.61000 4.84000 0.4808590 0.0380 0.0446 0.0485  
##      lty       ntis       Rfree         infl    ltr   corpr         svar  
## 1 0.0422 0.01790289 0.003175000 0.0009600000 0.0040  0.0081 0.0001534973  
## 2 0.0424 0.01482236 0.003275000 0.0000000000 0.0014  0.0009 0.0003681211  
## 3 0.0422 0.01913336 0.003275000 0.0009590793 0.0054  0.0012 0.0001431412  
## 4 0.0422 0.01472169 0.003275000 0.0022357074 0.0036  0.0021 0.0001654871  
## 5 0.0423 0.01624416 0.003241667 0.0031867431 0.0018 -0.0008 0.0003363517  
## 6 0.0423 0.01755028 0.003166667 0.0041296061 0.0047  0.0003 0.0018498325  
##             csp CRSP_SPvw CRSP_SPvwx  
## 1 -0.0022007442  0.034791   0.033837  
## 2 -0.0022017761  0.003746  -0.000853  
## 3 -0.0021373681 -0.012213  -0.013685  
## 4 -0.0021429735  0.035612   0.034769  
## 5 -0.0025656153 -0.003122  -0.008354  
## 6 -0.0023808197 -0.046880  -0.048367
#需要用到的是有红色标记的:yyyy(年份),price index(s&p 500 price index),D12(dividend yield),Rfree(risk-free)
CampaignData <- na.omit(subset(AllData, select=c("yyyymm","Index","D12","Rfree","Dividend")))


2.自变量x


⾃变量x是D12(dividend-yield), DY(t)=log[D(t)/P(t-1)],这⾥的D(t)就是表格中的Dividend。P(t-1) 就是表格中的index.

DY=log(Dt/Pt)


3.因变量y


因变量y是股权溢价(equity premium),公式是equity premium=rm(t)-rf(t) 关于rm(t): rm(t)=log[Rm,t]=log[ (P(t)+D(t)) / P(t-1) ],D(t)就是表格中的Dividend.

P(t),P(t-1)就是表格中的index. 关于 rf(t): rf(t)=log[1+Rf(t)],这⾥的Rf(t)就是表格中的Rfree(risk-free rate)

equity_premium=Rm-Rf  
y=equity_premium


4.模型


y(t)=β* x(t-1)+ε(t) (1)

oequity_premium[-1] ~ CampaignData$D12[-n] +I(1:(n-1)), data=CampaignData)

x(t)= ρ* x(t-1)+u(t) (2)

点击标题查阅往期内容


工具变量法(两阶段最小二乘法2SLS)线性模型分析人均食品消费时间序列数据和回归诊断


01

02

03

04


5.工具变量:


z(t)=ρz* z(t-1)+Δx(t) ,其中ρz是z(t-1)的系数,和式⼦(2)中的ρ不是同⼀个值.

这⾥的 z0=0,ρz=1+c/nκ , c=-1,k=0.95

c=-1  
z=0  
ρz=1+c/(n^k)  
for(i in 1:n)z[i+1]=ρz*z[i]+x[i]  
z=z[-1]


6.用两阶段最⼩二乘法做回归, 2SLS


具体做法: (1)通过工具变量计算出z(t-1)的数值

(2)建⽴x(t-1)与z(t-1)的函数关系:x(t-1)=αz(t-1)+ e(t),通过OLS得出α的估计值,

然后得出x(t-1)的估计值。x(t-1)的估计值= α的估计值* z(t-1) (3)把x(t-1)的估计值带⼊到第⼀个式⼦中,即y(t)=β* x(t-1)的估计值+ε(t) ,再

进⾏OLS回归,最后得到β的估计值,以及test-statistic的值,和p-value.

# 建⽴x(t-1)与z(t-1)的函数关系  
  n=length(x)  
  olsmodel <- lm(x[-1] ~ z[-n] +I(1:(n-1)), data=CampaignData)  
#   summary(olsmodel)  
   
  # 得出x(t-1)的估计值  
#   fitted(olsmodel)  
  # 把x(t-1)的估计值带⼊到第1⼀个式⼦中,即y(t)=β*x(t-1)的估计值+ε(t)  
  p=summary(olsmodel)[4]$coefficients[,4][2]  
  return(p)  
p=numeric(0)  
fo){  
    p=c(p,f(x[xx[i]:xx[i+1]],y[yy[j]:yy[j+1]]))

7.p-value surfaces图:


需要的是得到下⾯的这样一张图,⽤p-value 构建的。

具体描述是:所选取的样本区间是从1965年1⽉到2014年12⽉,以5年为⼀个最短的⼦样本。图的y轴为样本的起始点⼀共540个(从1965年1⽉到2009年12⽉), x轴为样本的终点⼀共也是540个(从1970年1⽉到2014年12⽉)。图中的每⼀个点为⼀个⼦样本的p-value的值。

for(j in 1:(length(yy)-1)){  
    p=c(p,f(x[xx[i]:xx[i+1]],y[yy[j]:yy[j+1]]))
persp(xx, yy, z, theta = 30, phi = 30, expand = 0.5, col = "lightblue")



相关文章
|
1月前
|
数据采集 机器学习/深度学习 数据可视化
R语言从数据到决策:R语言在商业分析中的实践
【9月更文挑战第1天】R语言在商业分析中的应用广泛而深入,从数据收集、预处理、分析到预测模型构建和决策支持,R语言都提供了强大的工具和功能。通过学习和掌握R语言在商业分析中的实践应用,我们可以更好地利用数据驱动企业决策,提升企业的竞争力和盈利能力。未来,随着大数据和人工智能技术的不断发展,R语言在商业分析领域的应用将更加广泛和深入,为企业带来更多的机遇和挑战。
|
2月前
|
数据可视化 数据挖掘 数据处理
R语言高级可视化技巧:使用Plotly与Shiny制作互动图表
【8月更文挑战第30天】通过使用`plotly`和`shiny`,我们可以轻松地创建高度互动的数据可视化图表。这不仅增强了图表的表现力,还提高了用户与数据的交互性,使得数据探索变得更加直观和高效。本文仅介绍了基本的使用方法,`plotly`和`shiny`还提供了更多高级功能和自定义选项,等待你去探索和发现。希望这篇文章能帮助你掌握使用`plotly`和`shiny`制作互动图表的技巧,并在你的数据分析和可视化工作中发挥更大的作用。
|
12天前
|
存储 缓存 关系型数据库
MySQL事务日志-Redo Log工作原理分析
事务的隔离性和原子性分别通过锁和事务日志实现,而持久性则依赖于事务日志中的`Redo Log`。在MySQL中,`Redo Log`确保已提交事务的数据能持久保存,即使系统崩溃也能通过重做日志恢复数据。其工作原理是记录数据在内存中的更改,待事务提交时写入磁盘。此外,`Redo Log`采用简单的物理日志格式和高效的顺序IO,确保快速提交。通过不同的落盘策略,可在性能和安全性之间做出权衡。
1576 12
|
13天前
|
存储 消息中间件 大数据
大数据-69 Kafka 高级特性 物理存储 实机查看分析 日志存储一篇详解
大数据-69 Kafka 高级特性 物理存储 实机查看分析 日志存储一篇详解
20 4
|
14天前
|
SQL 分布式计算 Hadoop
Hadoop-19 Flume Agent批量采集数据到HDFS集群 监听Hive的日志 操作则把记录写入到HDFS 方便后续分析
Hadoop-19 Flume Agent批量采集数据到HDFS集群 监听Hive的日志 操作则把记录写入到HDFS 方便后续分析
36 2
|
1月前
|
缓存 监控 算法
分析慢日志文件来优化 PHP 脚本的性能
分析慢日志文件来优化 PHP 脚本的性能
|
1月前
|
数据采集 数据可视化 数据挖掘
R语言在金融数据分析中的深度应用:探索数据背后的市场智慧
【9月更文挑战第1天】R语言在金融数据分析中展现出了强大的功能和广泛的应用前景。通过丰富的数据处理函数、强大的统计分析功能和优秀的可视化效果,R语言能够帮助金融机构深入挖掘数据价值,洞察市场动态。未来,随着金融数据的不断积累和技术的不断进步,R语言在金融数据分析中的应用将更加广泛和深入。
|
29天前
08-06-06>pe_xscan 精简log分析代码 速度提升一倍
08-06-06>pe_xscan 精简log分析代码 速度提升一倍
|
2月前
|
机器学习/深度学习 数据采集 数据可视化
R语言在数据科学中的应用实例:探索与预测分析
【8月更文挑战第31天】通过上述实例,我们展示了R语言在数据科学中的强大应用。从数据准备、探索、预处理到建模与预测,R语言提供了完整的解决方案和丰富的工具集。当然,数据科学远不止于此,随着技术的不断发展和业务需求的不断变化,我们需要不断学习和探索新的方法和工具,以更好地应对挑战,挖掘数据的潜在价值。 未来,随着大数据和人工智能技术的普及,R语言在数据科学领域的应用将更加广泛和深入。我们期待看到更多创新的应用实例,为各行各业的发展注入新的动力。
|
2月前
|
数据采集 存储 数据可视化
R语言时间序列分析:处理与建模时间序列数据的深度探索
【8月更文挑战第31天】R语言作为一款功能强大的数据分析工具,为处理时间序列数据提供了丰富的函数和包。从数据读取、预处理、建模到可视化,R语言都提供了灵活且强大的解决方案。然而,时间序列数据的处理和分析是一个复杂的过程,需要结合具体的应用场景和需求来选择合适的方法和模型。希望本文能为读者在R语言中进行时间序列分析提供一些有益的参考和启示。

热门文章

最新文章