我理解您的困难,因为当我尝试在统计中做一些新的事情时遇到类似的问题(我也是一名研究生,但在不同的领域)。我发现检查 R 代码对于了解如何计算某些内容非常有用。例如,我最近一直在学习如何使用kmeans
集群,并且有许多基本问题,包括概念上的以及它是如何实现的。使用R
安装(我推荐http://www.rstudio.org/R Studio
,但任何安装都可以),只需在命令行中输入。以下是部分输出的示例: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上提出的一个问题将我指向了这个方向,但也很有帮助地告诉我,关于代码的注释有时会包含在此处。
更一般地说,统计软件杂志说明了理论和实现之间的这种联系,但它经常是关于高级主题(我个人很难理解),但作为一个例子很有用。