2009-07-25 29 views
22

¿Qué funciones usa en R para ajustar una curva a sus datos y probar qué tan bien encaja esa curva? ¿Qué resultados se consideran buenos?Funciones de bondad de ajuste en R

+0

He utilizado software comercial que prueba numerosas fórmulas (tomando horas, si lo desea) para encontrar la mejor opción. Me encantaría encontrar algo así en R. – Nosredna

+1

Decepcionado - Pensé que R era el dominio de los números reales. –

Respuesta

25

Solo la primera parte de esa pregunta puede llenar libros completos. Sólo algunas opciones rápidos:

  • lm() para los modelos lineales estándar
  • glm() para los modelos lineales generalizados (por ejemplo, para la regresión logística)
  • rlm() de MASS paquete para robustos modelos lineales
  • lmrob() de robustbase paquete para robusto modelos lineales
  • loess() para modelos no lineales/no paramétricos

Luego, hay modelos específicos de dominio, como p. series temporales, microeconometría, efectos mixtos y mucho más. Varias vistas de tareas como, por ejemplo, Econometrics discutir esto con más detalle. En cuanto a la bondad de ajuste, también es algo que uno puede gastar fácilmente todo un libro discutiendo.

+0

¿Alguna recomendación para libros o buenos sitios web sobre la bondad del ajuste? –

7

La función nls() (http://sekhon.berkeley.edu/stats/html/nls.html) es bastante estándar para el ajuste de curvas de mínimos cuadrados no lineales. Chi al cuadrado (la suma de los residuos al cuadrado) es la métrica que se optimiza en ese caso, pero no está normalizada, por lo que no se puede usar fácilmente para determinar qué tan bueno es el ajuste. Lo principal que debe asegurarse es que sus residuos se distribuyan normalmente. Lamentablemente, no estoy seguro de una forma automática de hacerlo.

10

Los caballos de batalla de curva canónica de ajuste en R son lm(), glm() y nls(). Para mí, la bondad de ajuste es un subproblema en el problema más grande de la selección del modelo. De hecho, usar la bondad de ajuste incorrectamente (por ejemplo, mediante regresión por pasos) puede dar lugar a un modelo muy mal especificado (ver el libro de Harrell sobre "Estrategias de modelado de regresión"). En lugar de discutir el tema desde cero, recomiendo el libro de Harrell para lm y glm. La Biblia de Venables y Ripley es escueta, pero aún vale la pena leerla. "Extender el modelo lineal con R" de Faraway es completo y legible. nls no está cubierto en estas fuentes, pero "Regresión no lineal con R" de Ritz & Streibig llena el espacio y es muy práctica.

3

Lo principal que debe asegurarse es que sus residuos son normalmente distribuidos. Lamentablemente, no estoy seguro de que sea una forma automática de hacerlo.

qqnorm() probablemente podría modificarse para encontrar la correlación entre los cuantiles de la muestra y los cuantiles teóricos. Esencialmente, esto sería solo una interpretación numérica de la gráfica de cuantiles normal. Quizás proporcionar varios valores del coeficiente de correlación para diferentes rangos de cuantiles podría ser útil.Por ejemplo, si el coeficiente de correlación es cercano a 1 para el 97% del medio de los datos y mucho más bajo en las colas, esto nos dice que la distribución de los residuos es aproximadamente normal, con algo extraño en las colas.

+0

'shapiro.test()' también podría ser adecuado – DaveRGP

2

Mejor mantener simple, y ver si los métodos lineales funcionan "bien enuff". Usted puede juzgar su bondad de ajuste GENERALMENTE mirando el estadístico R cuadrado AND F, juntos, nunca se separan. Agregar variables a su modelo que no tengan relación con su variable dependiente puede aumentar R2, por lo que también debe considerar la estadística F.

También debe comparar su modelo con otros modelos anidados o más simples. Haga esto usando la prueba de log liklihood ratio, siempre y cuando las variables dependientes sean las mismas.

La prueba de Jarque-Bera es buena para probar la normalidad de la distribución residual.

Cuestiones relacionadas