R homals包中的homals()函数返回的特征值到底是什么?

时间:2018-11-04 12:21:11

标签: r categorical-data multivariate-testing

我一直在尝试对仅包含名义变量和序数变量的数据集执行非线性或分类规范相关性分析。 SPSS软件包中有此OVERALS函数,另一方面,R中的homals软件包或应该替代的Gifi软件包具有此功能。就我而言,我在homals()包中使用了homals函数,但是其中一些输出令人费解,尤其是特征值。我主要参考了以下参考文献。

    范德费尔登,米歇尔。 “关于广义规范相关分析。”在第58届世界统计大会论文集中。 2011。
  • de Leeuw,Jan和Patrick Mair。 2009。“用于R的最佳缩放的Gifi方法:程序包homals”。 Journal of Statistics Software(统计软件杂志) 31(4)。
  • 吉菲,艾伯特。 1990年。非线性多元分析。奇切斯特纽约:威利。

但是,关于特征值的解释非常难以理解,并且它如何与R函数的输出相关。我模糊地理解损失函数的最小化可以转化为特征方程问题。我试图通过检查源代码来找出特征值是如何得出的,并且我认为我确定了一些相关的块(对象r存储了相关的特征值):

ssum <- totalSum(dframe, x, y, active, rank, level, sets)
qv <- normX(centerX((1/mis) * ssum, mis), mis)
z <- qv$q
r <- abs(qv$r)/2
...
x <- z

再往下走

totalSum <- function (dframe, x, y, active, rank, level, sets) 
{
  nobj <- dim(x)[1]
  ndim <- dim(x)[2]
  nset <- length(sets)
  stot <- array(0, dim(x))
  for (l in 1:nset) {
    indi <- sets[[l]]
    jndi <- indi[which(active[indi])]
    if (length(jndi) == 0) 
      (next)()
    ss <- sumSet(dframe, nobj, ndim, y, jndi)
    ii <- which(!is.na(dframe[, jndi[1]]))
    stot[ii, ] <- stot[ii, ] + ss[ii, ]
  }
  return(stot)
}

normX <- function (x, w) 
{
  qq <- qr((1/sqrt(w)) * x)
  list(q = (1/sqrt(w)) * qr.Q(qq), r = abs(diag(qr.R(qq))))
}

很快我就迷路了。同样,我的问题是:homals()函数返回的特征值到底是什么?以及如何用转换后的数据解释原始数据集的多少方差来解释这些值?

0 个答案:

没有答案