有谁知道如何在R中生成具有特定等级的矩阵?
我最终想要创建数据矩阵Y = X + E
其中rank(X)= k且E~i.i.d.N(0,sigma ^ 2)。
答案 0 :(得分:1)
最简单的是单位矩阵,它总是满级。所以例如使用方法:
k <- 10
mymatrix <- diag(k)
此处,行和列等于您指定的等级
我想您想模仿回归模型,因此您可能希望拥有比列更多的行(意味着&#39;观察&#39;)(例如&#39;变量&#39;)。以下代码允许您指定:
k <- 5 # rank of your matrix
nobs <- 10 # number of lines within X
X <- rbind(diag(k), matrix(rep(0,k*(nobs-k)), ncol=k))
y <- X + rnorm(nobs)
注意,X - 因此也是y - 现在具有完整的列级别。在这个&#39;模型中没有多重共线性。