中国R语言社区数据-R语言-图表-决策-Linux-Python

R语言:遍历文件&多元回归&股票数据

2019-06-17  本文已影响19人  多美丽

趁着没睡意,趁着周末的小尾巴,写一篇关于R遍历文件并进行回归分析的案例。

先插播一小段:周五的面试经历。一边坐在电脑前敲代码,一边越想着面试不太对劲。面试的是河北广电无线传播公司,一家国企。环境优美,员工热情,面试官也很温柔。在经历职场千百炼的面试官面前不敢造次,自认为还表现不错,面试官也说还可以,过后电话联系。今天周日了,没有消息,莫非是因为不是工作日,那我再期待一下明天好了。

正文开始

今天要呈现的是:对2014年1月2日到2018年12月28日,5只股票进行多元回归分析。因变量:个股当日日收益率,自变量:前两日市场收益率,前1日市场收益率,当日日市场收益率,未来1日日收益率,未来2日日收益率。看着so easy。但是做起来嘛,愣是做了一下午。数据不是很友好噢。

图1:个股存放位置 图2:具体某只个股数据 图3:市场存放位置 图4:市场具体数据

注:每把个股股票数据和市场数据放在同一个文件夹下,是为了方便R程序编写。

从数据看,有这么几个特点:

股票数据是面板数据;

收益率不是直接给的;

能否遍历所有股票同时进行多元回归分析;

市场日收益率计算(相对容易)

市场日收益率=\frac{收盘件}{前收盘价} -1

R代码:

market = read.csv('C:/Users/Administrator/Desktop/段以沛/DiscussionClass/Market.csv',header = T)               #读取市场数据

MR = (market[,5]/market[,6])-1  #计算市场日收益率

个股日收益率计算(相对麻烦)

R代码:

path = 'C:/Users/Administrator/Desktop/discussion'      #设置股票存放的所在文件路径

fileNames = list.files(path)                          #遍历路径中的文件名,即得到5只股票文件名称

IR = sapply(fileNames,function(x){

  newPath = paste(path,x,sep = '/')             #设置股票的存放的具体位置

  newData = read.csv(newPath)                 #读取某只股票数据

  IReturn = (newData[,7]/newData[,8])-1    #计算读取的该只股票的日收益率

})

5个自变量的数据获取过程

因为5个自变量都是关于市场收益率的,只是选取的时间点不同。

MRbefore2————前2日市场收益率

MRbefore1————前1日市场收益率

MRToday————当日日市场收益率

MRafter1————未来1日日市场收益率

MRafter2————未来2日日市场收益率

R代码:

modelData = as.data.frame(IR)

modelData = modelData[c(-1,-2),]

MRbefore2 = head(MR,-4)        #去掉MR后4个数据

MRbefore1 = head(MR,-3)       #去掉MR后3个数据得到MRbefore1 

MRbefore1 = tail(MRbefore1,-1)   #再去掉MRbefore1 前1个数据得到MRbefore1(建模用)

MRToday = head(MR,-2)         

MRToday = tail(MRToday,-2)    

MRafter1 = tail(MR,-3)

MRafter1 = head(MRafter1,-1)

MRafter2 = MR[c(-1:-4)]  #=tail(MR,-4)

INdependentV = data.frame(MRbefore2,MRbefore1,MRToday,MRafter1,MRafter2)  #把这5个变量建一个数据框方便回归使用

多元回归分析

R代码:

myfunction = function(x){

  lm = lm(x~MRbefore2 + MRbefore1 + MRToday + MRafter1 + MRafter2, data = INdependentV)

}

model = apply(modelData,2,myfunction)

这样就完成了对股票的多元回归建模,使用遍历思想使得我们在面对多只股票数据时可以较快的得到结果。而不用分别对每只股票进行回归。

上一篇下一篇

猜你喜欢

热点阅读