R 计算矩阵列的每个可能排列的线性回归
我有一个k×n矩阵。我最初设法使用lm函数第1列与每个其他列进行线性回归,并仅提取系数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 <-
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表示写入除截距之外的所有系数。在这种情况下,只有一个。是的,如果你真的喜欢循环。但为什么不直接从相关性中计算出来呢?循环只是我得出结果的第一个想法。不过,我会按照你的建议直接计算。是的,如果你真的喜欢循环的话。但为什么不直接从相关性中计算出来呢?循环只是我得出结果的第一个想法。不过,我会按照你的建议,直接计算它们。