Las estrías de la biblioteca tiene funciones bs
y ns
que va a crear spline base para usar con el lm
función, entonces usted puede ajustar un modelo lineal y un modelo que incluye estrías y el uso de la anova
función para hacer la completa y reducida del modelo de prueba para ver si la spline modelo se ajusta significativamente mejor que el modelo lineal.
Aquí está el código de ejemplo:
x <- rnorm(1000)
y <- sin(x) + rnorm(1000, 0, 0.5)
library(splines)
fit1 <- lm(y~x)
fit0 <- lm(y~1)
fit2 <- lm(y~bs(x,5))
anova(fit1,fit2)
anova(fit0,fit2)
plot(x,y, pch='.')
abline(fit1, col='red')
xx <- seq(min(x),max(x), length.out=250)
yy <- predict(fit2, data.frame(x=xx))
lines(xx,yy, col='blue')
También puede utilizar el poly
función para hacer un polinomio de ajuste y prueba de la no-lineal de términos como una prueba de la curvatura.
Para el loess ajuste es un poco más complicado. Existen algunas estimaciones equivalente a los grados de libertad para el loess parámetro de suavizado que podría ser utilizado junto con el $R^2$ valores para el lineal y loess modelos para la construcción y la prueba de F. Creo que los métodos basados en arranque y pruebas de permutación puede ser más intuitivo.
Hay técnicas para calcular y trazar un intervalo de confianza para una loess ajuste (creo que puede haber una manera integrada en el paquete ggplot2), se puede trazar la banda de confianza y ver si una línea recta que se ajuste dentro de la banda (esto no es un p-valor, pero aún así da un sí/no.
Usted podría ajustar un modelo lineal y tomar los residuos y el ajuste de un modelo de loess a los residuos como respuesta (y la variable de interés como predictor), si el verdadero modelo es lineal, entonces este ajuste debe estar cerca de una línea plana y la reordenación de los puntos relativos a la predictor no debe hacer ninguna diferencia. Usted puede usar esto para crear una prueba de permutación. Ajuste el loess, encontrar el valor de la predicción más alejado de 0, ahora al azar permutar los puntos y ajuste de un nuevo loess y encontrar el más lejano del punto previsto de 0, repetir un montón de veces, el valor de p es la proporción de permutan los valores que están más lejos de 0 que el valor original.
También puede que desee ver en la validación cruzada como un método de elección de los loess de ancho de banda. Esto no da un p-valor, pero un infinito de ancho de banda corresponde a un perfecto modelo lineal, si la validación cruzada sugiere un gran ancho de banda, a continuación, que sugiere un modelo lineal puede ser razonable, si los mayores anchos de banda son claramente inferiores a algunos de los más pequeños anchos de banda, a continuación, esto sugiere definitiva curvatura y lineal no es suficiente.