Какие именно собственные значения возвращаются функцией homals () в пакете R homals? - PullRequest
0 голосов
/ 04 ноября 2018

Я пытался выполнить нелинейный или категоричный канонический корреляционный анализ для набора данных, состоящего только из номинальных и порядковых переменных. Эта функция OVERALS есть в пакете SPSS и, с другой стороны, в пакете homals в R или в пакете Gifi, который должен быть заменой. В моем случае я использовал функцию homals() в пакете homals, но некоторые результаты были озадачивающими, в частности собственные значения. Я в основном ознакомился с этими ссылками, как показано ниже.

  • ван де Вельден, Мишель. «Об обобщенном каноническом корреляционном анализе». В Материалы 58-го Всемирного статистического конгресса . 2011
  • де Леув, Ян и Патрик Мэйр. 2009. «Методы Gifi для оптимального масштабирования в R: пакетные гомалы». Журнал статистического программного обеспечения 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()? И как интерпретировать эти значения с точки зрения того, насколько дисперсия исходного набора данных объясняется преобразованными данными?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...