Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
summary.manova中的错误-残差具有秩序缺陷_R_Manova - Fatal编程技术网

summary.manova中的错误-残差具有秩序缺陷

summary.manova中的错误-残差具有秩序缺陷,r,manova,R,Manova,我正试着做一个马诺瓦舞。共有7个因变量和1个分类自变量,代表6组 数据可在此处获得: 单击文本上方的下载。我正在读像这样的R文件,我认为下载文件的名称应该与您相同;我使用的是Macintosh操作系统: > df <- read.csv("~/downloads/fqXNjWtr.txt", stringsAsFactors = F) > str(df) 'data.frame': 244 obs. of 8 variables: $ var1

我正试着做一个马诺瓦舞。共有7个因变量和1个分类自变量,代表6组

数据可在此处获得:

单击文本上方的下载。我正在读像这样的R文件,我认为下载文件的名称应该与您相同;我使用的是Macintosh操作系统:

> df <- read.csv("~/downloads/fqXNjWtr.txt", stringsAsFactors = F)
> str(df)

'data.frame':   244 obs. of  8 variables:
 $ var1              : num  0.3 0 0.312 0 0.643 ...
 $ var2              : num  0 0.125 0 0.375 0.0714 ...
 $ var3              : num  0 0.0625 0.0625 0 0.0714 ...
 $ var4              : num  0.2 0.3125 0.0625 0.0625 0 ...
 $ var5              : num  0.1 0.25 0.438 0.188 0 ...
 $ var6              : num  0.2 0.0625 0.125 0.0625 0.0714 ...
 $ var7              : num  0.2 0.188 0 0.312 0.143 ...
 $ cluster_assignment: int  1 4 2 6 1 4 3 3 4 6 ...
然后,我将执行MANOVA:

> mv_out <- manova(DV ~ cluster_assignment, data = df)
Call:
   manova(DV ~ cluster_assignment, data = df)

Terms:
                cluster_assignment Residuals
resp 1                    5.160838  6.738524
resp 2                    3.384101  3.622020
resp 3                    0.000200  3.365565
resp 4                    0.065469  2.743549
resp 5                    0.889180  8.019733
resp 6                    0.442187  5.884827
resp 7                    3.133188  7.736993
Deg. of Freedom                  1       242

Residual standard errors: 0.1668686 0.1223398 0.1179292 0.1064752 0.1820423 0.1559406 0.1788045
Estimated effects may be unbalanced
基于其他一些因素,这似乎表明,鉴于变量的数量,没有足够的观察,或者一些预测因素可能是多重共线性的。但这些数据似乎并非如此:

> cor(df[, 1:7)

            var1         var2        var3         var4        var5        var6       var7
var1  1.00000000 -0.417605243 -0.05274197 -0.118358341 -0.25617705  0.06089533 -0.4360312
var2 -0.41760524  1.000000000 -0.07181878  0.008873035 -0.29523300 -0.33954011  0.1958746
var3 -0.05274197 -0.071818782  1.00000000  0.131137673 -0.11624079 -0.14408909 -0.2951076
var4 -0.11835834  0.008873035  0.13113767  1.000000000 -0.14361455 -0.24308229 -0.1491373
var5 -0.25617705 -0.295233000 -0.11624079 -0.143614554  1.00000000 -0.03180183 -0.2383027
var6  0.06089533 -0.339540114 -0.14408909 -0.243082287 -0.03180183  1.00000000 -0.3215075
var7 -0.43603124  0.195874568 -0.29510761 -0.149137349 -0.23830275 -0.32150753  1.0000000

我对可能发生的情况感到困惑。

您可以通过在?summary.manova中设置“tol”参数来解决此错误。df$DV未通过秩缺陷测试,默认tol=1e-7,因为行和为1。但这可能不会产生您想要的结果

summary(mv_out,tol=0)
                       Df Pillai approx F num Df den Df Pr(>F)
df$cluster_assignment   1 1.2106  -193.79      7    236       
Residuals             242     

您可以通过在?summary.manova中设置“tol”参数来解决此错误。df$DV未通过秩缺陷测试,默认tol=1e-7,因为行和为1。但这可能不会产生您想要的结果

summary(mv_out,tol=0)
                       Df Pillai approx F num Df den Df Pr(>F)
df$cluster_assignment   1 1.2106  -193.79      7    236       
Residuals             242     

DV不是满秩,因为rowSumsdf$DV显示行值加起来等于一个常量值。正如danielson指出的,这违反了MANOVA的假设。 这种似乎遵循整体结构的部分模式的数据有时被称为组合数据。您可以在以下网站上获得不错的工具并了解更多信息:

然而,作为一个简单的解决方案,我建议您在构建MANOVA模型之前,将等轴测对数比率转换(例如,中的ilr函数)应用于DV。这将防止错误消息和MANOVA假设问题

library(compositions)
mv_out <- manova(ilr(clo(DV)) ~ cluster_assignment, data = df)
summary(mv_out)

这应该会给您一个公平的解决方案。

DV不是满秩,因为rowSumsdf$DV表明行值加起来就是一个常量值。正如danielson指出的,这违反了MANOVA的假设。 这种似乎遵循整体结构的部分模式的数据有时被称为组合数据。您可以在以下网站上获得不错的工具并了解更多信息:

然而,作为一个简单的解决方案,我建议您在构建MANOVA模型之前,将等轴测对数比率转换(例如,中的ilr函数)应用于DV。这将防止错误消息和MANOVA假设问题

library(compositions)
mv_out <- manova(ilr(clo(DV)) ~ cluster_assignment, data = df)
summary(mv_out)

这会给你一个公平的解决方案。

你所提供的数据不容易移植到一个工作重现的例子中,如果你寻求帮助,考虑提供一个。我可以问哪一个部分不起作用吗?你推荐共享数据吗?你想避免与数据的链接,因为链接可能在将来无法工作。请参阅您所提供的数据不容易移植到一个可重复使用的示例中,如果您寻求帮助,请考虑提供一个。我可以问哪个部分不起作用吗?您建议共享数据吗?您希望避免与数据共享链接,因为链接可能在将来无法工作。参见?summary.manova,[用于确定残差是否为秩缺陷的容差]可以减少,但这样做会导致相当不准确的结果,通常最好转换响应以消除高度相关性。在这种情况下,什么类型的转换可能是合适的?为什么rowSums=1是一个问题?谢谢。对不起,我本来可以解释得更清楚的。rowSums=1意味着df$DV的列不是线性独立的,这是manova中的一个假设。一列始终依赖于另6列;例如,df$var7=1-rowSumsdf$DV[,1:6],除了一些小的舍入误差。使用当前代码从printmv_输出时,估计值应该是稳定的。为了获得更好的F-统计量,您可以使用任意6个因变量在summary.manova中运行测试。根据?summary.manova,[用于确定残差是否为秩亏的容差]可以减少,但这样做会产生相当不准确的结果,通常最好转换响应以消除高度相关性。在这种情况下,什么类型的转换可能是合适的?为什么rowSums=1是一个问题?谢谢。对不起,我本来可以解释得更清楚的。rowSums=1意味着df$DV的列不是线性独立的,这是manova中的一个假设。一列始终依赖于另6列;例如,df$var7=1-rowSumsdf$DV[,1:6],除了一些小的舍入误差。使用当前代码从printmv_输出时,估计值应该是稳定的。为了获得更好的F统计量,您可以使用任意6个因变量在summary.manova中运行测试。