首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R:需要使用双向(阶乘) MANOVA执行boxM()的例子-我得到了一个错误

R:需要使用双向(阶乘) MANOVA执行boxM()的例子-我得到了一个错误
EN

Stack Overflow用户
提问于 2020-10-05 16:32:00
回答 1查看 928关注 0票数 1

我正在尝试运行Box的M-检验协方差矩阵的同质性,用于双向MANOVA。

从昨天下午开始,我一直在寻找一个例子。我看到了在单向MANOVA中使用boxM的许多例子。在每一种情况下,如果源还包括双向MANOVA,则不包括演示在双向情况下运行boxM测试。我只需要一个有用的例子。一旦我有了语法,我就可以让它工作了。

生物工具包中的boxM函数表示它是一个分类因子(单向MANOVA)。

https://www.rdocumentation.org/packages/biotools/versions/3.1/topics/boxM

海图包中的boxM函数表示它与一个或多个分类因素一起工作--

https://www.rdocumentation.org/packages/heplots/versions/1.3-5/topics/boxM

--然而,当我试图使用它时,我遇到了一个错误:“模型必须完全交叉公式。”

下面,我展示了在单独使用任何一个因素时,我不会得到一个错误,但是任何交叉因素的安排都会导致这个错误。注意:我没有得到这个错误运行Levene的测试与交叉变量。

Response1、Response2和Response3是连续的。

Factor1有2级。Factor2有5级。

代码语言:javascript
复制
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.
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-05 18:54:11

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

代码语言:javascript
复制
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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64212658

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档