无法使用 FactoMineR 运行 对双向意外事件 table 进行对应分析
Can't run correspondence analysis on two-way contingency table using FactoMineR
它似乎不适用于这个名为 mytable:
的 table
0 1 2 3 4 5 7
Click_No 242854 91661 102 21 65 51 291
Click_Yes 48274 20785 14 2 19 4 146
但是,它适用于此 table:
0 1 2 3 4 5 7
Row1 4 0 0 0 0 0 11
Row2 35 2 0 0 0 0 0
Row3 18364 14 0 0 0 0 0
Row4 13 0 0 0 0 0 7
Row5 1497 1521 6 0 0 0 0
Row6 686 2 0 0 0 0 393
Row7 270167 110512 110 23 84 54 0
Row8 1 0 0 0 0 0 26
Row9 361 395 0 0 0 1 0
我使用了FactoMineR
函数:
res.ca <- CA(mytable)
CA
是否不适用于特定类型的意外事件 table?我没有在文献中读到任何建议,除了非常大的尺寸。
Error generated when running summary(res.ca):
Call:
CA(X = mytable)
The chi square of independence between the two variables is equal to 297.3778 (p-value = 2.982623e-61 ).
Eigenvalues
Dim.1
Variance 1e-03
% of var. 1e+02
Cumulative % of var. 1e+02
Rows
Error in if (nrow(res$row$coord) > nbelements) cat(paste(" (the ", nbelements, :
argument is of length zero
In addition: Warning message:
In max(nchar(rownames(res[aux[1]][[1]]$coord))) :
no non-missing arguments to max; returning -Inf
编辑:
dput(mytable)
输出:
mytable <- structure(c(242854L, 48274L, 91661L, 20785L, 102L, 14L, 21L,
2L, 65L, 19L, 51L, 4L, 291L, 146L), .Dim = c(2L, 7L), .Dimnames = structure(list(
c("0", "1"), c("0", "1", "2", "3", "4", "5", "7")), .Names = c("",
"")), class = "table")
我认为这个问题是统计性的,而不是计算性的。对应分析最多产生 min(j-1;i-1) 个维度,其中 i 是行数,j 是列数(即两个变量的模态数)。您正在尝试执行 j=2;i=8 偶然事件 table 的 CA。它只能输出一个轴。这就是您收到此错误的原因:您不应将 CA 与 two-modality 变量一起使用。
这个p有数学解释。 Benzecry 的 84 Correspondance Analysis Handbook for instance. You may get a better explanation if you ask a question about this on CV.
这里是 FactoMineR
中 children
数据集的示例:
library(FactoMineR)
data("children")
## Example from help("CA"), works fine
summary(CA(children, row.sup = 15:18, col.sup = 6:8))
## Example when we restrict the contingency table to the first two rows.
## Produces an error
summary(CA(children, row.sup = 3:18, col.sup = 6:8))
它似乎不适用于这个名为 mytable:
的 table 0 1 2 3 4 5 7
Click_No 242854 91661 102 21 65 51 291
Click_Yes 48274 20785 14 2 19 4 146
但是,它适用于此 table:
0 1 2 3 4 5 7
Row1 4 0 0 0 0 0 11
Row2 35 2 0 0 0 0 0
Row3 18364 14 0 0 0 0 0
Row4 13 0 0 0 0 0 7
Row5 1497 1521 6 0 0 0 0
Row6 686 2 0 0 0 0 393
Row7 270167 110512 110 23 84 54 0
Row8 1 0 0 0 0 0 26
Row9 361 395 0 0 0 1 0
我使用了FactoMineR
函数:
res.ca <- CA(mytable)
CA
是否不适用于特定类型的意外事件 table?我没有在文献中读到任何建议,除了非常大的尺寸。
Error generated when running summary(res.ca):
Call:
CA(X = mytable)
The chi square of independence between the two variables is equal to 297.3778 (p-value = 2.982623e-61 ).
Eigenvalues
Dim.1
Variance 1e-03
% of var. 1e+02
Cumulative % of var. 1e+02
Rows
Error in if (nrow(res$row$coord) > nbelements) cat(paste(" (the ", nbelements, :
argument is of length zero
In addition: Warning message:
In max(nchar(rownames(res[aux[1]][[1]]$coord))) :
no non-missing arguments to max; returning -Inf
编辑:
dput(mytable)
输出:
mytable <- structure(c(242854L, 48274L, 91661L, 20785L, 102L, 14L, 21L,
2L, 65L, 19L, 51L, 4L, 291L, 146L), .Dim = c(2L, 7L), .Dimnames = structure(list(
c("0", "1"), c("0", "1", "2", "3", "4", "5", "7")), .Names = c("",
"")), class = "table")
我认为这个问题是统计性的,而不是计算性的。对应分析最多产生 min(j-1;i-1) 个维度,其中 i 是行数,j 是列数(即两个变量的模态数)。您正在尝试执行 j=2;i=8 偶然事件 table 的 CA。它只能输出一个轴。这就是您收到此错误的原因:您不应将 CA 与 two-modality 变量一起使用。
这个p有数学解释。 Benzecry 的 84 Correspondance Analysis Handbook for instance. You may get a better explanation if you ask a question about this on CV.
这里是 FactoMineR
中 children
数据集的示例:
library(FactoMineR)
data("children")
## Example from help("CA"), works fine
summary(CA(children, row.sup = 15:18, col.sup = 6:8))
## Example when we restrict the contingency table to the first two rows.
## Produces an error
summary(CA(children, row.sup = 3:18, col.sup = 6:8))