问题描述
我使用 netlm()
包中的 sna
将一个变量回归到另一个变量,以获得拟合值和残差值。我将 mode
内的 netlm()
参数设置为无向 "graph"
,QAP 为 10 倍。然后我检查了输出。
输出包含 12,880 个拟合值和残差值,假设我的数据维度为 161 * 161,这意味着它们表示下(或上)对角矩阵数据减去主对角线值的拟合/残差值( (161*161)/2 - 161 = 12880)。如果我想生成一个与我的数据维度相同的新矩阵,并用拟合值填充上下对角线,我如何确保这些值实际上会填充到相应的单元格中?
如果有人能对此有所了解,我们将不胜感激。我在下面提供了我的代码供您参考。
library(sna)
x <- readRDS(url("https://www.dropBox.com/s/v1kz95luew28o7u/xki_ratio2019.rds?dl=1"))
y <- readRDS(url("https://www.dropBox.com/s/yc7md37x6albxog/xki_lag.rds?dl=1"))
model.nl <- netlm(y[[1]],list(x),diag = FALSE,mode = "graph",nullhyp=c("qapx"),reps = 100)
dim(x)
161 161
length(model.nl$residuals)
12880
解决方法
类似的东西
resid <- matrix(NA,161,161)
resid[upper.tri(resid)] <- model.nl$residuals
不确定你是想从我的头顶上去掉 upper.tri 还是 lower.tri,你可能需要转置