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

作者: 多美丽 | 来源:发表于2019-06-17 00:20 被阅读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)

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

    相关文章

      网友评论

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

        本文链接:https://www.haomeiwen.com/subject/omwnfctx.html