【问题标题】:R equivalent of immediate commands in Stata (i.e. tabi ..., chi2)R 等效于 Stata 中的立即命令(即 tabi ...,chi2)
【发布时间】:2021-09-05 23:46:47
【问题描述】:

提前为这个可能非常基本的问题道歉,但我一直在努力寻找如何在 R 中做到这一点。

在审阅论文、论文等时,从汇总数据中计算 p 值非常有用。 IE。您看到一个表格,想知道是否正确计算了 p 值。在 Stata 中,例如使用即时命令对聚合数据进行卡方检验非常容易计算,例如:

tabi 8 43 \ 2 78,行chi2

给出输出

   row |         1          2 |     Total
     1 |         8         43 |        51 
       |     15.69      84.31 |    100.00 

     2 |         2         78 |        80 
       |      2.50      97.50 |    100.00 

 Total |        10        121 |       131 
       |      7.63      92.37 |    100.00 

      Pearson chi2(1) =   7.6805   Pr = 0.006

我很难在 R 中做同样的事情,例如使用 chisq.test() 例如,我尝试过,

chisq.test(c(8, 43, 2, 78))

chisq.test(c(8, 43, 2, 78, nrow = 2))

或类似的,但它似乎做了一些完全不同的计算......

Chi-squared test for given probabilities
data:  c(8, 43, 2, 78, nrow = 2)
X-squared = 167.94, df = 4, p-value < 2.2e-16

谁能帮助解决这个问题?

提前致谢

比约恩

【问题讨论】:

  • c(8, 43, 2, 78, nrow = 2) 没有任何意义。也许你的意思是matrix(c(8, 43, 2, 78), nrow = 2)

标签: r chi-squared statistical-test


【解决方案1】:

我不完全确定您想要实现什么,但我认为您可能正在搜索这个(?):

chisq.test(matrix(c(8, 43, 2, 78), nrow = 2))

无论如何,只需运行?chisq.test() 即可查看该函数的工作原理、它期望的参数以及顺序等。

如果你运行它,你还会发现函数如何工作的描述:

"如果x是一个有一行或一列的矩阵,或者如果x是一个向量并且没有给出y,则进行拟合优度检验(x被视为一维列联表)。 x 的条目必须是非负整数。在这种情况下,检验的假设是总体概率是否等于 p 中的概率,或者如果没有给出 p,则全部相等。

如果x是至少有两行和两列的矩阵,则将其视为二维列联表:x的条目必须是非负整数。否则,x 和 y 必须是相同长度的向量或因子;删除具有缺失值的案例,将对象强制转换为因子,并根据这些计算列联表。然后对二维列联表中单元格计数的联合分布是行和列边缘的乘积的原假设进行 Pearson 卡方检验。"

检查您的示例数据,例如当你跑步时

is.matrix(c(8, 43, 2, 78, nrow = 2))

它会返回

[1] FALSE

同时

is.matrix(matrix(c(8, 43, 2, 78), nrow = 2))

返回

[1] TRUE

所以你知道你给出的例子是一个向量。现在,当您阅读我在上面粘贴的函数的描述时,您会发现它将尝试对您的向量执行“拟合优度检验”。如果是矩阵,它将执行“Pearson 卡方检验”。

【讨论】:

  • 谢谢你,曼努埃尔。这正是我想要的。非常感激!问候,比约恩
猜你喜欢
  • 2021-04-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-14
  • 2020-08-08
  • 1970-01-01
  • 1970-01-01
  • 2021-03-29
相关资源
最近更新 更多