Рассмотрим следующий код R (который, я думаю, в конечном итоге вызывает некоторый Фортран):
X <- 1:1000
Y <- rep(1,1000)
summary(lm(Y~X))
Почему значения возвращаются в виде сводки? Не должна ли эта модель не соответствовать, так как нет Y-дисперсии? Более важно, почему модель R ^ 2 ~ = .5?
Редактировать
Я отследил код от 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 ) не помог мне понять, что происходит, потому что я не знаю фортран.