R 在lm()上使用anova()进行交互的综合anova忽略了一个因素

R 在lm()上使用anova()进行交互的综合anova忽略了一个因素,r,statistics,lm,anova,R,Statistics,Lm,Anova,我正在进行onmibus方差分析,以测试一个数据集与一个变量和三个因素的交互作用 data$fac1 data$fac2 data$fac3 levels(data$fac1) [1] "1" "2" "3" "4" "5" "6" "7" "8" [9] "9" "10" "11" "12" "13" "14" "15" "16" [17] "17""18" "19" "20" "21" "22" "23" "24" [25] "25""26" "27" "28

我正在进行onmibus方差分析,以测试一个数据集与一个变量和三个因素的交互作用

data$fac1
data$fac2
data$fac3

levels(data$fac1)
[1] "1"  "2"  "3" "4" "5" "6" "7" "8"     
[9] "9"  "10" "11"  "12" "13"  "14" "15" "16"  
[17] "17""18" "19"  "20" "21"  "22" "23" "24"
[25] "25""26" "27"  "28" "29"  "30" "31" "32"   
[33] "33" "34" "35" "36" "37" "38" "39" "40"      
[41] "41" "42" "43" "44" "45" "46" "47" "48"    
[49] 

levels(data$fac2)
[1] "1"  "2"  "3" "4" "5" "6" "7" "8"

levels(data$fac3)
 [1] "1"  "2"  "3"
第二个因素被忽略了

代码如下:

anova(lm(var ~ fac1 * fac2 * fac3, data= data))
它返回:

Response: var
               Df Sum Sq Mean Sq F value  Pr(>F)    
fac1          48  31708  660.59  67.043 < 2e-16 ***
fac3          2    279  139.44  14.152 1.4e-06 ***
fac1:fac3     95  10384  109.31  11.094 < 2e-16 ***
Residuals     279   2749    9.85                    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
响应:var
Df和Sq平均Sq F值Pr(>F)
fac1 48 31708 660.59 67.043<2e-16***
fac3 2 279 139.44 14.152 1.4e-06***
fac1:fac3 95 10384 109.31 11.094<2e-16***
残差279 2749 9.85
---
签名。代码:0'***'0.001'***'0.01'*'0.05'.'0.1''1
而我期待的是:

Response: var
                   Df Sum Sq Mean Sq F value  Pr(>F)    
    fac1          48  31708  660.59  67.043 < 2e-16 ***
    fac2           7   ---   ------   -----    ---  ***
    fac3           2    279  139.44  14.152 1.4e-06 ***
    fac1:fac2     --   ----   -----  ------ ------- ---
    fac1:fac3     95  10384  109.31  11.094 < 2e-16 ***
    fac2:fac3     --  -----  ------  ------ ------- ---
    Residuals     279   2749    9.85                    
    ---
    Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
响应:var
Df和Sq平均Sq F值Pr(>F)
fac1 48 31708 660.59 67.043<2e-16***
fac2 7-------***
fac3 2 279 139.44 14.152 1.4e-06***
fac1:fac2----------
fac1:fac3 95 10384 109.31 11.094<2e-16***
fac2:fac3--------------
残差279 2749 9.85
---
签名。代码:0'***'0.001'***'0.01'*'0.05'.'0.1''1

有人能帮忙吗?

你能提供一个
数据样本吗?您确定“fac2”具有超过1个唯一值吗?我无法提供数据示例。Fac2有8个级别,每个级别至少包含150个值。希望这有助于您提供一个带有
dput(head(data,100))
的示例(并确保该示例产生与“fac2”相同的行为)。否则,很难为您提供帮助。这些特征本身并不能证明您的行为出人意料。我们需要一个重现你所遇到问题的数据样本。如果我按照建议取前100个值,fac1上有10个水平,方差分析结果就完成了。这可能是由于fac1中的高水平导致无法在其他VFactor中吸收更多的水平造成的吗?