R中最大化两个时间序列相关性的多参数网格搜索

R中最大化两个时间序列相关性的多参数网格搜索,r,matrix,multidimensional-array,correlation,r-grid,R,Matrix,Multidimensional Array,Correlation,R Grid,我希望最大化以下相关性: corr(qhat, [0, mu_2, mu_3, mu_4]*inv(I - mu_1*A)*D), 其中qhat是长度为90的时间序列;mu_1、mu_2、mu_3和mu_4基本上是我想要运行网格搜索的参数;Iis为4x4单位矩阵;Ais 4 X 4系数矩阵;这里表示矩阵逆算子;D`是一个维数为4×90的矩阵,是一个由4个变量组成的时间序列。我搜索并发现了一个类似的问题,并试图破解解决方案以满足我的需要。我尝试了以下方法为冗余代码道歉,我想打破一切,所以我尝试

我希望最大化以下相关性:

corr(qhat, [0, mu_2, mu_3, mu_4]*inv(I - mu_1*A)*D), 
其中qhat是长度为90的时间序列;mu_1、mu_2、mu_3和mu_4基本上是我想要运行网格搜索的参数;Iis为4x4单位矩阵;Ais 4 X 4系数矩阵;这里表示矩阵逆算子;D`是一个维数为4×90的矩阵,是一个由4个变量组成的时间序列。我搜索并发现了一个类似的问题,并试图破解解决方案以满足我的需要。我尝试了以下方法为冗余代码道歉,我想打破一切,所以我尝试的是清楚的:

#Define the parameter space 
param_space = expand.grid(
  mu_1 = seq(0, 1, length.out = 11),
  mu_2 = seq(0, 1, length.out = 11),
  mu_3 = seq(0, 1, length.out = 11), 
  mu_4 = seq(0, 1, length.out = 11))

e = as.vector(param_space$mu_1)
f = as.vector(param_space$mu_2)
g = as.vector(param_space$mu_3)
h = as.vector(param_space$mu_4)
P = matrix(c(e,f,g,h),ncol=4)

J = diag(4)
J[1,1]=0
Q = P%*%J

target.val = cor(as.vector(qhat), Q%*%solve(I - param_space$mu_1*A)%*%t(varset))
solution = which.max(target.val)
param_space[solution,]
对象参数空间的最终尺寸为14641 X 4。我使用上面的as.vector函数来避免在R中出现的错误,这些错误与使用非数值对象来执行矩阵运算有关。在实际代码中,上述广义方程中的D已替换为tvarset。对象tvarset的尺寸为4 X 90

这里有一条信息可能有用,也可能没用:当我简单地复制粘贴时

 Q%*%solve(I - param_space$mu_1*A)%*%t(varset)  
在我的控制台中,我得到了与运行上面编写的代码时相同的错误。即

"Error in solve(I - param_space$mu_1 * A) : 
  dims [product 16] do not match the length of object [14641]
此外:警告信息:

In param_space$mu_1 * A :
  longer object length is not a multiple of shorter object length"
因此,我认为我设置的网格搜索不适当。任何帮助都将不胜感激。这实际上是我的第一篇文章,所以我也很欣赏这篇文章。我不想挑剔,但我正在努力避免在R中循环

-克里斯