寻找人群之间的差异

Finding differences between populations

我有 2019 年和 2020 年的等效数据。2020 年的诊断比例看起来与 2019 年不同,但我想...

a) 统计测试人口是不同的。 b) 确定哪些类别最不同。

我发现我可以 'a' 使用:

chisq.test(test$count.2020, test$count.2019)

我不知道如何找出哪些类别是 2020 年和 2019 年之间最不同的类别。任何帮助都会很棒,谢谢!

diagnosis <- data.frame(mf_label = c("Audiovestibular", "Autonomic", "Cardiovascular", 
                           "Cerebral palsy", "Cerebrovascular", "COVID", "Cranial nerves", 
                           "CSF disorders", "Developmental", "Epilepsy and consciousness", 
                           "Functional", "Head injury", "Headache", "Hearing loss", "Infection", 
                           "Maxillofacial", "Movement disorders", "Muscle and NMJ", "Musculoskeletal", 
                           "Myelopathy", "Neurodegenerative", "Neuroinflammatory", "Peripheral nerve", 
                           "Plexopathy", "Psychiatric", "Radiculopathy", "Spinal", "Syncope", 
                           "Toxic and nutritional", "Tumour", "Visual system"),
              count.2019 = c(5, 0, 1, 1, 2, 0, 4, 3, 0, 7, 4, 0, 24, 0, 0, 2, 22, 3, 3, 0, 3, 18, 12, 0, 0, 2, 2, 0, 1, 4, 0),
              count.2020 = c(5, 1, 1, 3, 28, 9, 11, 13, 1, 13, 30, 5, 68, 1, 1, 2, 57, 14, 5, 8, 16, 37, 27, 3, 13, 17, 3, 1, 8, 13, 11))

您的卡方检验不正确。您需要将计数作为 table 或矩阵提供,而不是作为两个单独的向量提供。由于一半单元格的预期值非常小,因此您需要使用模拟来估计 p-value:

results <- chisq.test(diagnosis[, 2:3], simulate.p.value=TRUE)

总体 table 在 0.05 时勉强显着。 chisq.test 函数 returns 一个包含原始数据、期望值、残差和标准化残差的列表。手册页描述了这些 (?chisq.test) 并提供了一些引用以获取更多详细信息。