R中的Anova函数(汽车库)出错

Error with Anova function (car library) in R

我正在进行多元多元回归。 作为响应变量,我有一个函数 [ y(t) ],我在 27 个点的网格和 3 个标量回归量(x1,x2,x3 )。 我已经用 nxq (q=27) 矩阵 Y 替换了响应函数,我需要解决的是:

Y = XB + E

其中 X [nxp (p=3)] 是 x1,x2,x3 列堆叠, B 是回归系数的 p×q 矩阵,E 是误差的 n×q 矩阵。 到目前为止,我所做的是调用 lm: mylm<-lm(Y ~ X) ,它在预测变量上分别对每个因变量进行回归。

现在我想确定一个预测器是否对我得到的所有 27 个模型都有共同贡献,但我不知道如何克服我得到的错误。 当我调用 Anova 这就是我得到的

Anova(mylm)

Error in eigen(qr.coef(if (repeated) qr(x$SSPE[[term]]) else SSPE.qr,  : 
  infinite or missing values in 'x'

并且,例如,如果我想测试 x2 在统计上是否不同于 0,我会得到以下结果

hyp =c(0,0,1,0)
rhs =rep(0,27)
lh.out <- linearHypothesis(mylm, hyp,rhs)

Error in linearHypothesis.mlm(mylm, hyp, rhs) : 
  The error SSP matrix is apparently of deficient rank = 25 < 27

如果问题与矩阵的非奇异性有关,请问如何使用伪逆?

编辑----------------

Here you can find my data

我将您的数据放在 gist 中,因此可以轻松获取。实际上,我从 car 中获取了 Anova() 函数。我认为不同之处在于将所有数据放入数据框(在本例中为 tibble),然后使用 cbind() 创建多变量 DV。

source("https://gist.githubusercontent.com/davidaarmstrong/469e2159d4802bae6fa09bad34527df0/raw/a25a02280841f4df3c6d8c10720f404586498b13/github_data1.r")

mydat <- cbind(Y, X)
mylm <- lm(cbind(V1, V2, V3, V4, V5, V6, V7, 
                 V8, V9, V10, V11, V12, V13, 
                 V14, V15, V16, V17, V18, V19, 
                 V20, V21, V22, V23, V24, V25) ~ 
             PC1D + PC2D + PC1H, data=mydat)
Anova(mylm)
# Type II MANOVA Tests: Pillai test statistic
#      Df test stat approx F num Df den Df    Pr(>F)    
# PC1D  1   0.20085    4.424     25    440 3.981e-11 ***
# PC2D  1   0.18632    4.030     25    440 9.065e-10 ***
# PC1H  1   0.71205   43.522     25    440 < 2.2e-16 ***
# ---
# Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1