R:需要使用双向(阶乘)方差分析执行 boxM() 的示例 - 我收到错误
R: Need example of performing boxM() with two-way (factorial) MANOVA - I'm getting an error
我正在尝试 运行 Box 的协方差矩阵同质性 M 检验,用于双向方差分析。
我从昨天下午就开始搜索示例了。我看到许多将 boxM 与单向方差分析结合使用的示例。在每种情况下,如果源还涵盖双向 MANOVA,则它们不包括在双向情况下演示 运行ning boxM 测试。我只需要一个工作示例。一旦我掌握了语法,我就能让它工作。
biotools 包中的 boxM 函数表示它用于一个分类因子(单向方差分析)。
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
-- 但是,当我尝试使用它时出现错误:“模型只能完全交叉公式。”
下面,我展示了当单独使用任一因子时我都没有得到错误,但是交叉因子的任何排列都会产生这个错误。注意:我没有收到此错误 运行ning 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.
不知道该包从未使用过它,但在几分钟的调查中,您似乎正在以一种它不喜欢的方式指定公式...自包作者以来使用 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
我正在尝试 运行 Box 的协方差矩阵同质性 M 检验,用于双向方差分析。
我从昨天下午就开始搜索示例了。我看到许多将 boxM 与单向方差分析结合使用的示例。在每种情况下,如果源还涵盖双向 MANOVA,则它们不包括在双向情况下演示 运行ning boxM 测试。我只需要一个工作示例。一旦我掌握了语法,我就能让它工作。
biotools 包中的 boxM 函数表示它用于一个分类因子(单向方差分析)。
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
-- 但是,当我尝试使用它时出现错误:“模型只能完全交叉公式。”
下面,我展示了当单独使用任一因子时我都没有得到错误,但是交叉因子的任何排列都会产生这个错误。注意:我没有收到此错误 运行ning 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.
不知道该包从未使用过它,但在几分钟的调查中,您似乎正在以一种它不喜欢的方式指定公式...自包作者以来使用 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