我理解您的困难,因为当我尝试做一些统计方面的新问题时,我遇到了类似的问题(我也是研究生,但是在不同的领域)。我发现检查R代码对于了解计算方式非常有用。例如,我最近一直在学习如何使用kmeans
集群,并且在概念和实现方面有许多基本问题。使用一个R
安装(我建议R Studio
,http://www.rstudio.org/,但是任何安装工程),只需键入kmeans
的命令行。这是部分输出的示例:
x <- as.matrix(x)
m <- nrow(x)
if (missing(centers))
stop("'centers' must be a number or a matrix")
nmeth <- switch(match.arg(algorithm), `Hartigan-Wong` = 1,
Lloyd = 2, Forgy = 2, MacQueen = 3)
if (length(centers) == 1L) {
if (centers == 1)
nmeth <- 3
k <- centers
if (nstart == 1)
centers <- x[sample.int(m, k), , drop = FALSE]
if (nstart >= 2 || any(duplicated(centers))) {
cn <- unique(x)
mm <- nrow(cn)
if (mm < k)
stop("more cluster centers than distinct data points.")
centers <- cn[sample.int(mm, k), , drop = FALSE]
}
}
我不确定每次检查源代码的实用性,但是如果您对语法有一定的了解,它确实可以帮助我了解发生了什么。
我在stackoverflow上问过的上一个问题向我指出了这个方向,但也有帮助地告诉我有关代码的注释有时包含在此处。
更一般而言,《统计软件杂志》说明了理论与实现之间的这种联系,但是它经常涉及高级主题(我个人很难理解),但可以作为示例。