R:需要使用双向(阶乘)多元方差分析执行 boxM() 的示例 - 我收到错误



我正在尝试为双向MANOVA运行协方差矩阵齐性的Box的M-检验。

从昨天下午开始,我搜索了一个例子。我看到许多将boxM与单向MANOVA一起使用的例子。在每种情况下,如果源代码也涵盖双向MANOVA,那么它们不包括在双向情况下演示运行boxM测试。我只需要一个有效的例子。一旦我掌握了语法,我就能让它发挥作用。

biotools包中的boxM函数表示它用于一个分类因子(单向MANOVA(
https://www.rdocumentation.org/packages/biotools/versions/3.1/topics/boxM

heplots包中的boxM函数表示它与一个或多个分类因子一起工作——
https://www.rdocumentation.org/packages/heplots/versions/1.3-5/topics/boxM

--然而,当我尝试使用它时,我得到了一个错误:;模型只能是完全交叉的公式">

下面,我展示了当单独使用任何一个因子时,我都不会得到错误,但任何交叉因子的排列都会产生这个错误。注意:在交叉变量的情况下运行Levene的测试时,我不会遇到这个错误。

响应1、响应2和响应3是连续的
Factor1有两个级别。因子2有5个级别。

library(heplots)
> Model2 <- lm(cbind(Response1, Response2, Response3) ~ Factor1, data=Data40)
> boxM(Model2)
Box's M-test for Homogeneity of Covariance Matrices
data:  Y
Chi-Sq (approx.) = 3.5562, df = 6, p-value = 0.7365
> Model2 <- lm(cbind(Response1, Response2, Response3) ~ Factor2, data=Data40)
> boxM(Model2)
Box's M-test for Homogeneity of Covariance Matrices
data:  Y
Chi-Sq (approx.) = 35.079, df = 24, p-value = 0.06724
> Model2 <- lm(cbind(Response1, Response2, Response3) ~ Factor1 * Factor2, data=Data40)
> boxM(Model2)
Error in boxM.formula(formula(Y), data = eval(data, envir = environment(formula(Y))),  : 
Model must be completely crossed formula only.
> Model2 <- lm(cbind(Response1, Response2, Response3) ~ Factor1 + Factor2 + Factor1 * Factor2, data=Data40)
> boxM(Model2)
Error in boxM.formula(formula(Y), data = eval(data, envir = environment(formula(Y))),  : 
Model must be completely crossed formula only.
> Model2 <- lm(cbind(Response1, Response2, Response3) ~ Factor1 + Factor2 + Factor1:Factor2, data=Data40)
> boxM(Model2)
Error in boxM.formula(formula(Y), data = eval(data, envir = environment(formula(Y))),  : 
Model must be completely crossed formula only.

不知道这个包从未使用过它,但经过几分钟的侦查,你可能会以它不喜欢的方式指定公式。。。使用iris,因为包作者这样做,而您没有提供任何数据。

library(heplots)
# adding a bogus second factor to iris
iris$nonsense <- rep(1:2)
iris$nonsense <- factor(iris$nonsense)
# one factor
boxM( cbind(Sepal.Length, Sepal.Width, Petal.Length, Petal.Width) ~ nonsense, data=iris)
#> 
#>  Box's M-test for Homogeneity of Covariance Matrices
#> 
#> data:  Y
#> Chi-Sq (approx.) = 16.389, df = 10, p-value = 0.08904
# second factor
boxM( cbind(Sepal.Length, Sepal.Width, Petal.Length, Petal.Width) ~ Species, data=iris)
#> 
#>  Box's M-test for Homogeneity of Covariance Matrices
#> 
#> data:  Y
#> Chi-Sq (approx.) = 140.94, df = 20, p-value < 2.2e-16
# crossed note not including the `lm`
boxM( cbind(Sepal.Length, Sepal.Width, Petal.Length, Petal.Width) ~ Species * nonsense, data=iris)
#> 
#>  Box's M-test for Homogeneity of Covariance Matrices
#> 
#> data:  Y
#> Chi-Sq (approx.) = 169.1, df = 50, p-value = 7.609e-15

最新更新