Considere el siguiente código R:
example <- function(n) {
X <- 1:n
Y <- rep(1,n)
return(lm(Y~X))
}
#(2.13.0, i386-pc-mingw32)
summary(example(7)) #R^2 = .1963
summary(example(62)) #R^2 = .4529
summary(example(4540)) #R^2 = .7832
summary(example(104))) #R^2 = 0
#I did a search for n 6:10000, the result for R^2 is NaN for
#n = 2, 4, 16, 64, 256, 1024, 2085 (not a typo), 4096, 6175 (not a typo), and 8340 (not a typo)
Mirando http://svn.r-project.org/R/trunk/src/appl/dqrls.fa) no me ayude a entender lo que está pasando, porque no sé Fortran. En otra pregunta se contestó que de punto flotante de la máquina de tolerancia de errores son culpa de los coeficientes de X que están cerca, pero no exactamente de 0.
$R^2$ es mayor cuando el valor de coef(example(n))["X"]
está más cerca de 0. Pero...
- ¿Por qué hay un $R^2$ valor?
- Lo que (precisamente) es determinante?
- ¿Por qué la aparente progresión ordenada de
NaN
de resultados? - ¿Por qué las violaciones de esa progresión?
- Lo de esta "espera" comportamiento?