计数数据有哪些好的探索性分析和诊断图?

机器算法验证 数据可视化 计数数据 参考 诊断 探索性数据分析
2022-03-10 01:44:09

有谁知道关于计数数据的探索性分析和诊断图的良好参考资料?

2个回答

即使考虑到您在评论中对项目的扩展描述,IMO 仍然是一个过于宽泛的问题,无法提供很多有用的建议。特别是对于分类数据的分析(您的计数数据似乎属于给定的描述),我可能会建议 Michael Friendly 的工作。他出版了书籍Visualizing Categorical DataDiscrete Data Analysis with R: Visualization and Modeling Techniques for Categorical and Count Data它特定于 SAS 和 R 中的分析。尽管对于某些(很多?)建议的分类显示而言,可能有 20 个值。

对于诊断图,我建议使用 John Fox 的回归诊断绿皮书。它是在线性回归模型的背景下,但大多数相同的诊断(或非常相似的诊断)也可以用于广义线性模型。

我怀疑大多数针对连续数据类型的 EDA 一般建议可以很容易地扩展到低计数数据。所以我不会专注于寻找特定于计数数据的资源。它对模型更重要,但以图形方式探索/呈现/诊断这些模型的方式应该非常相似。

看看这本书(和相关的 R 包)M Friendly: Visualizing Categorical data http://www.amazon.com/Visualizing-Categorical-Data-Michael-Friendly/dp/1580256600

我将用 R 和 vcd 包实现上述书中的一些例子(这本书有 SAS 代码)。

首先是一些用于调查计数数据分布的图。计算固定次数试验中的成功次数,存在二项分布。但是,如果每次试验中成功概率相等的假设不成立(或违反独立性),我们可能会得到其他分布。我将使用萨克森州著名的家庭性别分布数据集。

library(vcd)

data(Saxony) # Show a kind of "hanging rootogram"  
gf0  <-  goodfit(Saxony, type = "binomial")
summary(gf0)
summary(gf0)

     Goodness-of-fit test for binomial distribution

                     X^2 df     P(> X^2)
Likelihood Ratio 97.0065 11 6.978187e-16

plot(gf0)

这显示了一个悬挂根图,一种柱状图悬挂在理论分布曲线上的直方图,因此偏差都可以与 x 轴进行比较。这是一个“根图”,因为它显示了频率的平方根,因此所有偏差都在大致相同的范围内(使用泊松分布近似每个条形中的计数,平方根是方差稳定变换)。

在此处输入图像描述

我们可以观察到与二项分布的系统偏差。然后与泊松模型相同,使用著名的 horsekicks 数据。

data("HorseKicks")   # von Bortkiewicz's famous data:
gf  <-  goodfit(HorseKicks, type="poisson") # hanging rootogram:  
summary(gf)

     Goodness-of-fit test for poisson distribution

                       X^2 df  P(> X^2)
Likelihood Ratio 0.8682214  3 0.8330891

所以在这种情况下,泊松分布的原假设不会被拒绝。

plot(gf)

在此处输入图像描述

列联表也是计数数据的一个示例,计算表中每个单元格中的出现次数。我们使用了在加州大学伯克利分校被广泛讨论的招生数据。

data(UCBAdmissions)
apply(UCBAdmissions, c(1, 2), sum)
          Gender
Admit      Male Female
  Admitted 1198    557
  Rejected 1493   1278

我们将其显示为马赛克图:

 mosaicplot(apply(UCBAdmissions, c(1, 2), sum), main = "Student admissions at UC Berkeley")  

在此处输入图像描述

这给人的印象是更大比例的女性被拒绝了。但这是真的吗?准学生只与同一部门的其他申请人竞争,而不是与所有其他准学生竞争。所以也许我们应该分别对每个部门进行比较。

opar  <-  par(mfrow = c(2, 3), oma = c(0, 0, 2, 0))  
for(i in 1:6)   mosaicplot(UCBAdmissions[,,i], xlab = "Admit", ylab = "Sex", main = paste("Department", LETTERS[i]))   
mtext(expression(bold("Student admissions at UC Berkeley")), outer = TRUE, cex = 1.5)

在此处输入图像描述

现在结论不太清楚。