Estoy utilizando rlm en el paquete MASS de R para hacer una regresión de un modelo lineal multivariante. Funciona bien para una serie de muestras, pero estoy obteniendo coeficientes casi nulos para un modelo concreto:
Call: rlm(formula = Y ~ X1 + X2 + X3 + X4, data = mymodel, maxit = 50, na.action = na.omit)
Residuals:
Min 1Q Median 3Q Max
-7.981e+01 -6.022e-03 -1.696e-04 8.458e-03 7.706e+01
Coefficients:
Value Std. Error t value
(Intercept) 0.0002 0.0001 1.8418
X1 0.0004 0.0000 13.4478
X2 -0.0004 0.0000 -23.1100
X3 -0.0001 0.0002 -0.5511
X4 0.0006 0.0001 8.1489
Residual standard error: 0.01086 on 49052 degrees of freedom
(83 observations deleted due to missingness)
Para comparar, estos son los coeficientes calculados por lm():
Call:
lm(formula = Y ~ X1 + X2 + X3 + X4, data = mymodel, na.action = na.omit)
Residuals:
Min 1Q Median 3Q Max
-76.784 -0.459 0.017 0.538 78.665
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.016633 0.011622 -1.431 0.152
X1 0.046897 0.004172 11.240 < 2e-16 ***
X2 -0.054944 0.002184 -25.155 < 2e-16 ***
X3 0.022627 0.019496 1.161 0.246
X4 0.051336 0.009952 5.159 2.5e-07 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 2.574 on 49052 degrees of freedom
(83 observations deleted due to missingness)
Multiple R-squared: 0.0182, Adjusted R-squared: 0.01812
F-statistic: 227.3 on 4 and 49052 DF, p-value: < 2.2e-16
El gráfico lm no muestra ningún valor atípico particularmente alto, medido por la distancia de Cook:
EDITAR
Como referencia y después de confirmar los resultados basados en la respuesta proporcionada por Macro, el comando R para establecer el parámetro de sintonía, k
en el estimador de Huber es ( k=100
en este caso):
rlm(y ~ x, psi = psi.huber, k = 100)
0 votos
Los errores estándar residuales, en combinación con el resto de la información, hacen que parezca que el
rlm
La función de peso está desechando casi todas las observaciones. ¿Estás seguro de que es la misma Y en las dos regresiones? (Sólo estoy comprobando...) Pruebemethod="MM"
en surlm
y, a continuación, intente (si falla)psi=psi.huber(k=2.5)
(2,5 es arbitrario, simplemente mayor que el 1,345 por defecto) que reparte ellm
-de la función de peso.0 votos
@jbowman Y es correcto. Añadido el método MM. Mi intuición es la misma que mencionas. Los residuos de este modelo son relativamente compactos en comparación con los otros que he probado. Parece que la metodología descarta la mayoría de las observaciones.
1 votos
@RobertKubrick entiendes lo que es poner k a 100 significa ¿verdad?
0 votos
Basado en esto: R-cuadrado múltiple: 0,0182, R-cuadrado ajustado: 0.01812 deberías examinar tu modelo una vez más. Los valores atípicos, la transformación de la respuesta o los predictores. O debería considerar un modelo no lineal. El predictor X3 no es significativo. Lo que has hecho no es un buen modelo lineal.