Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.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 - Fatal编程技术网

R 计算矩阵列的每个可能排列的线性回归

R 计算矩阵列的每个可能排列的线性回归,r,R,我有一个k×n矩阵。我最初设法使用lm函数第1列与每个其他列进行线性回归,并仅提取系数 fore.choose <- matrix(0, 1, NCOL(assets)) for(i in seq(1, NCOL(assets), 1)) { abc <- lm(assets[,1]~assets[,i])$coefficients fore.choose[1,i] <- abc[2:length(abc)] } 最初需要成为 fore.choose <-

我有一个k×n矩阵。我最初设法使用lm函数第1列与每个其他列进行线性回归,并仅提取系数

fore.choose <- matrix(0, 1, NCOL(assets))
for(i in seq(1, NCOL(assets), 1))
{

  abc <- lm(assets[,1]~assets[,i])$coefficients
  fore.choose[1,i] <- abc[2:length(abc)]

}
最初需要成为

fore.choose <- matrix(0, NCOL(assets), NCOL(assets))

我会直接从相关矩阵计算系数,使用beta=corx,y*sdx/sdy,如下所示:

# set up some sample data
set.seed(1)
d <- matrix(rnorm(50), ncol=5)

# get the coefficients
s <- apply(d, 2, sd)
cor(d)*outer(s, s, "/")

我会直接从相关矩阵计算系数,使用beta=corx,y*sdx/sdy,如下所示:

# set up some sample data
set.seed(1)
d <- matrix(rnorm(50), ncol=5)

# get the coefficients
s <- apply(d, 2, sd)
cor(d)*outer(s, s, "/")

我相信一定有比嵌套循环更优雅的方法

fore.choose <- matrix(NA, NCOL(assets), NCOL(assets))
abc <- NULL

for(i in seq_len(ncol(assets))){ # loop over "dependant" columns
  for(j in seq_len(ncol(assets))){ # loop over "independant" columns
     abc <- lm(assets[,i]~assets[,j])$coefficients 
     fore.choose[i,j] <- abc[-1]
  }
}

我相信一定有比嵌套循环更优雅的方法

fore.choose <- matrix(NA, NCOL(assets), NCOL(assets))
abc <- NULL

for(i in seq_len(ncol(assets))){ # loop over "dependant" columns
  for(j in seq_len(ncol(assets))){ # loop over "independant" columns
     abc <- lm(assets[,i]~assets[,j])$coefficients 
     fore.choose[i,j] <- abc[-1]
  }
}

这与我最初想解决这个问题的方式非常相似。从表面上看,它似乎会起作用,我认为它会起作用,除非在将系数写入矩阵时出现问题——行:fore.选择[I,j]我的代码中有一个错误,它应该是seq_len,而不是seq_-1表示写入除截距之外的所有系数。在这种情况下,只有一个。这与我最初想解决这个问题的方式非常相似。从表面上看,它似乎会起作用,我认为它会起作用,除非在将系数写入矩阵时出现问题——行:fore.选择[I,j]我的代码中有一个错误,它应该是seq_len,而不是seq_-1表示写入除截距之外的所有系数。在这种情况下,只有一个。是的,如果你真的喜欢循环。但为什么不直接从相关性中计算出来呢?循环只是我得出结果的第一个想法。不过,我会按照你的建议直接计算。是的,如果你真的喜欢循环的话。但为什么不直接从相关性中计算出来呢?循环只是我得出结果的第一个想法。不过,我会按照你的建议,直接计算它们。