Почему lm возвращает значения, если в предсказанном значении нет отклонений?

Рассмотрим следующий код R (который, я думаю, в конечном итоге вызывает некоторый Фортран):

X <- 1:1000
Y <- rep(1,1000)
summary(lm(Y~X))

Почему значения возвращаются в сводке? Разве эта модель не должна подходить, поскольку в Y нет отклонений? Что еще более важно, почему модель R ^ 2 ~ = .5?

Edit

Я отслеживал код от lm до lm.fit и вижу этот вызов:

z <- .Fortran("dqrls", qr = x, n = n, p = p, y = y, ny = ny,
   tol = as.double(tol), coefficients = mat.or.vec(p, ny), residuals = y,
   effects = y, rank = integer(1L), pivot = 1L:p, qraux = double(p),
   work = double(2 * p), PACKAGE = "base")

Вот где, кажется, происходит реальное соответствие . Просмотр http://svn.r-project.org/R/trunk/src/appl/dqrls.f ) не помог мне понять, что происходит, потому что я не знаю фортрана.

6
задан russellpierce 12 February 2012 в 21:31
поделиться