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中循环
-克里斯