我一直试图通过实施滚动窗口回归并计算和记录过去每一天的估计值和最后一天之间的差异来回溯测试回归的可预测性(试图获得一步预测) ,在一个专栏中.
我尝试在滚动回归中应用Christoph_J的答案返回多个对象
代码中没有语法错误.但是,我不确定是否存在语义错误.是行的值i的"预言"一栏,该行的事前预测i的值OpCl列?
library(zoo)
library(dynlm)
library(quantmod)
sp <- getSymbols("^GSPC", auto.assign=FALSE)
sp$GSPC.Adjusted <- NULL
colnames(sp) <- gsub("^GSPC\\.","",colnames(sp))
sp$Number<-NA
sp$Number<-1:nrow(sp)
sp$OpCl <- OpCl(sp)
sp$ClHi <- HiCl(sp)
sp$LoCl <- LoCl(sp)
sp$LoHi <- LoHi(sp)
#### LAG
spLag <- lag(sp)
colnames(spLag) <- paste(colnames(sp),"lag",sep="")
sp <- na.omit(merge(sp, spLag))
### REGRESSION
f <- OpCl ~ Openlag + Highlag + OpCllag + ClHilag
OpClLM <- lm(f, data=sp)
#sp$OpClForecast <- NA
#sp$OpClForecast <- tail(fitted(OpClLM),1)
#####################################################
rolling.regression <- function(series) { …Run Code Online (Sandbox Code Playgroud) 我试图在R(统计编程语言)中编写一个函数,这将允许我自动计算线性回归(lm)
问题:回归是通过"步"函数计算的,因此所选系数不能提前知道.问题
自动识别由阶梯函数选择的系数.
Vlookup和交叉乘以结果Ex."View(OpenCoefs)"的第二列(估计)与原始数据帧"sp"的各列的最后一行(最后一天)
理想的解决方案是一个函数,我只需键入"run()",它将返回每个回归的"y"s,即第二天标准普尔500指数的预测(开盘价,最低价,最高价,收盘价) .
该代码从雅虎财经网站检索数据,因此如果您运行它,它就可以运行.
这是代码.
sp <- read.csv(paste("http://ichart.finance.yahoo.com/table.csv?s=%5EGSPC&a=03&b=1&c=1940&d=03&e=1&f=2014&g=d&ignore=.csv"))
sp$Adj.Close<-NULL
sp<-sp[nrow(sp):1,]
sp<-as.data.frame(sp)
for ( i in 2:nrow( sp ) ) {
sp[ i , "Gr_Open" ] <-
( sp[ i , "Open" ] / sp[ i - 1 , "Open" ] ) - 1
}
for ( i in 2:nrow( sp ) ) {
sp[ i , "Gr_High" ] <-
( sp[ i , "High" ] / sp[ i - 1 , "High" ] ) - 1
} …Run Code Online (Sandbox Code Playgroud) 我在上一个问题(自动vlookup和乘以R的乘法系数)中应用了不同的数据集给Joshua Ulrich的答案,它给出了一个我无法解决的错误.
新数据集:巴西的Bovespa指数
(sp <-read.csv(" http://www.bolsapt.com/download/historico/%5EBVSP/de-01-01-2000-a-04-02-2013/ ")
spLag <- lag(sp)
Error in hasTsp(x) : invalid time series parameters specified
Run Code Online (Sandbox Code Playgroud)
最好的祝福