执行看似无关的回归 R 时出错
Error when performing Seemingly Unrelated Regression R
我想在 'systemfit' 包的 R 中做大量看似无关的回归 (SUR)。为了方便处理包含的变量数量,我想自动化该过程。我 运行 出错了,但是当使用 for 循环 运行 回归时,手动方式不会给我任何错误。我使用下面的代码。我收到的错误是:
Error in solve(sigma, tol = solvetol) :
Lapack routine dsptrf returned error code 11
我使用下面的代码。
region=12
vars=4
# Performing Seemingly Unrelated Regression per variable and every region
for (i in 1:vars){
system <- list()
for (j in 1:region){
eq_single <- data_mat[,j]~data_mat[,j+12] + data_mat[,j+24] + data_mat[,j+36]
system[[j]] <- eq_single
}
sur <- systemfit(system, method="SUR")
}
# Manually performing Seemingly Unrelated Regression for 2 regions only
Y1 <- data_mat[,1]
Y2 <- data_mat[,region]
X2 <- cbind(data_mat[,j+region] + data_mat[,26])
eq1 <- Y1 ~ data_mat[,13] + data_mat[,25]
eq2 <- Y2 ~ X2
system <- list(eq1=eq1, eq2=eq2)
sur <- systemfit(system, method="SUR")
summary(sur)
我对 R 非常缺乏经验,我确信我做错了什么。如果是这样,我做错了什么?
提前致谢!
R 中的公式未计算,因此 j+12
存储为完全相同:"j+12"
而不是 13
、14
等。这就是您结束的原因在 eq_single
.
中多次使用相同的公式
另请注意,您当前的代码中未使用 vars
。
library(systemfit)
region=12
vars=4
# Performing Seemingly Unrelated Regression per variable and every region
# for (i in 1:vars){ # i is not used in the loop
system <- list()
for (j in 1:region){
# using paste0() to create correct formulas
eq_single <- formula(paste0('data_mat[,',j,'] ~ data_mat[,',j+12,'] +
data_mat[,',j+24,'] + data_mat[,',j+36,']'))
system[[j]] = eq_single
}
sur <- systemfit(system,method="SUR")
# }
我想在 'systemfit' 包的 R 中做大量看似无关的回归 (SUR)。为了方便处理包含的变量数量,我想自动化该过程。我 运行 出错了,但是当使用 for 循环 运行 回归时,手动方式不会给我任何错误。我使用下面的代码。我收到的错误是:
Error in solve(sigma, tol = solvetol) :
Lapack routine dsptrf returned error code 11
我使用下面的代码。
region=12
vars=4
# Performing Seemingly Unrelated Regression per variable and every region
for (i in 1:vars){
system <- list()
for (j in 1:region){
eq_single <- data_mat[,j]~data_mat[,j+12] + data_mat[,j+24] + data_mat[,j+36]
system[[j]] <- eq_single
}
sur <- systemfit(system, method="SUR")
}
# Manually performing Seemingly Unrelated Regression for 2 regions only
Y1 <- data_mat[,1]
Y2 <- data_mat[,region]
X2 <- cbind(data_mat[,j+region] + data_mat[,26])
eq1 <- Y1 ~ data_mat[,13] + data_mat[,25]
eq2 <- Y2 ~ X2
system <- list(eq1=eq1, eq2=eq2)
sur <- systemfit(system, method="SUR")
summary(sur)
我对 R 非常缺乏经验,我确信我做错了什么。如果是这样,我做错了什么?
提前致谢!
R 中的公式未计算,因此 j+12
存储为完全相同:"j+12"
而不是 13
、14
等。这就是您结束的原因在 eq_single
.
另请注意,您当前的代码中未使用 vars
。
library(systemfit)
region=12
vars=4
# Performing Seemingly Unrelated Regression per variable and every region
# for (i in 1:vars){ # i is not used in the loop
system <- list()
for (j in 1:region){
# using paste0() to create correct formulas
eq_single <- formula(paste0('data_mat[,',j,'] ~ data_mat[,',j+12,'] +
data_mat[,',j+24,'] + data_mat[,',j+36,']'))
system[[j]] = eq_single
}
sur <- systemfit(system,method="SUR")
# }