1

我正在尝试为双向 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 的测试时,我没有收到此错误。

Response1、Response2 和 Response3 是连续的。
Factor1 有 2 个水平。Factor2 有 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.
4

1 回答 1

1

不知道该软件包从未使用过它,但经过几分钟的侦查,您可能会以一种它不喜欢的方式指定公式...使用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
于 2020-10-05T18:54:11.740 回答