Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
适用于可变窗口大小的R移动窗口模型_R_Time Series_Linear Regression_Modeling - Fatal编程技术网

适用于可变窗口大小的R移动窗口模型

适用于可变窗口大小的R移动窗口模型,r,time-series,linear-regression,modeling,R,Time Series,Linear Regression,Modeling,目前,我正在使用R中的数据帧,其中第一列是日期的数字。现在,我将数据按日期升序排序。我想在20天内拟合一个模型(我提供的代码是一个简单的OLS模型),但现在我不得不假设我每天有124个观测值,需要使用for循环,但事实并非如此。我有没有办法在不做假设的情况下加入一个20天的窗口期?我目前的算法如下。任何帮助都将不胜感激。输入是一个数据集和两个整数,预测和预测 rollerOLS <- function(data, predict, predictor){ res <- list(

目前,我正在使用R中的数据帧,其中第一列是日期的数字。现在,我将数据按日期升序排序。我想在20天内拟合一个模型(我提供的代码是一个简单的OLS模型),但现在我不得不假设我每天有124个观测值,需要使用for循环,但事实并非如此。我有没有办法在不做假设的情况下加入一个20天的窗口期?我目前的算法如下。任何帮助都将不胜感激。输入是一个数据集和两个整数,预测和预测

rollerOLS <- function(data, predict, predictor){
  res <- list()
  alpha <- c()
  beta <- c()
  m <- dim(data)[1]
  for(i in 1:(floor(m/124)-10)){
    data.new <- as.data.frame(data[c((1+(124*(i-1))):((i+9)*124)),])
    data.pred <- as.data.frame(data[c((1+(124*(i+9))):((i+10)*124)-1),])
    n <- dim(data.new)[1]
    k <- dim(data.pred)[1]
    x <- data.new[-1,predictor]
    y <- data.new[-n, predict]
    mod <- lm(y ~ x)
    ts <- mod$coefficients[1] + mod$coefficients[2]*data.pred[-1,predictor] 
    actual <- data.pred[-k,predict]
    alpha[i] <- mod$coefficients[1]
    beta[i] <- mod$coefficients[2]
  }
  coef <- as.data.frame(cbind(alpha, beta))
  res$coefs <- coef
  res <- as.data.frame(res)
  return(res)
}

rollerOLS请显示
dput(数据)
或其
dput(head(数据))
这显然是一个大数据集,因此我只包括数据的head。结构(列表(日期=c(17169.1354166667,17169.1423611111,17169.1458333333,17169.1493055556,17169.1527777817169.15625),开放=c(14.07,13.92,13.96,13.97,13.97,13.98),高=c(14.07,13.97,13.98,13.97,13.99,13.99),低=c(13.97,13.92,13.85,13.97,13.96,13.98),最后价格=c(13.99,13.99,13.97,13.97,13.98),TR=c(0.75,1.5,0.75,1,1,1)),.Names=c(“日期”、“开盘”、“高”、“低”、“最后价格”、“TR”),row.Names=c(NA,6L),class=“data.frame”)请显示
dput(数据)
或其
dput(头部(数据))
这显然是一个大数据集,所以我只包括数据的头部。结构(列表(日期=c(17169.1354166667,17169.1423611111,17169.1458333333,17169.1493055556,17169.1527777817169.15625),开放=c(14.07,13.92,13.96,13.97,13.97,13.98),高=c(14.07,13.97,13.98,13.97,13.99,13.99),低=c(13.97,13.92,13.85,13.97,13.96,13.98),最后价格=c(13.99,13.99,13.97,13.97,13.98),TR=c(0.75,1.5,0.75,1,1,1)),.Names=c(“日期”、“开盘”、“高位”、“低位”、“最后价格”、“TR”),row.Names=c(NA,6L),class=“数据帧”)