Para la gráfica 1, puedo probar la asociación entre xey haciendo una simple correlación.
Para la gráfica 2, donde la relación es no lineal pero hay una relación clara entre x e y, ¿cómo puedo probar la asociación y etiquetar su naturaleza?
Para la gráfica 1, puedo probar la asociación entre xey haciendo una simple correlación.
Para la gráfica 2, donde la relación es no lineal pero hay una relación clara entre x e y, ¿cómo puedo probar la asociación y etiquetar su naturaleza?
Respuestas:
... la relación es no lineal pero hay una relación clara entre xey, ¿cómo puedo probar la asociación y etiquetar su naturaleza?
Una forma de hacerlo sería ajustar como una función semiparamétricamente estimada de x utilizando, por ejemplo, un modelo aditivo generalizado y probar si esa estimación funcional es constante o no, lo que indicaría que no hay relación entre y . Este enfoque le libera de tener que hacer una regresión polinómica y tomar decisiones a veces arbitrarias sobre el orden del polinomio, etc.
Específicamente, si tiene observaciones, , podría ajustar el modelo:
y pruebe la hipótesis . En , puedes hacer esto usando la función. Si es su resultado y su predictor, puede escribir:R
gam()
y
x
library(mgcv)
g <- gam(y ~ s(x))
Escribir summary(g)
te dará el resultado de la prueba de hipótesis anterior. En cuanto a caracterizar la naturaleza de la relación, esto se haría mejor con una trama. Una forma de hacerlo R
(suponiendo que el código anterior ya se haya ingresado)
plot(g,scheme=2)
Si su variable de respuesta es discreta (por ejemplo, binaria), puede acomodar eso dentro de este marco ajustando un GAM logístico (en R
, agregaría family=binomial
a su llamada gam
). Además, si tiene múltiples predictores, puede incluir múltiples términos aditivos (o términos lineales ordinarios), o ajustar funciones multivariables, por ejemplo, si tuviera predictores . La complejidad de la relación se selecciona automáticamente mediante validación cruzada si utiliza los métodos predeterminados, aunque aquí hay mucha flexibilidad; consulte el archivo de ayuda si está interesado.x, z
gam
cuando se estiman utilizando todos los datos, estas estimaciones serán grandes y de signo opuesto.
Puede probar cualquier tipo de dependencia utilizando pruebas de correlación de distancia. Consulte aquí para obtener más información sobre la correlación de distancia: comprensión de los cálculos de correlación de distancia
Y aquí el artículo original: https://arxiv.org/pdf/0803.4101.pdf
En R esto se implementa en el energy
paquete con la dcor.test
función.
Alguien me corrige si mi comprensión es incorrecta aquí, pero una forma de tratar con variables no lineales es usar una aproximación lineal. Entonces, por ejemplo, tomar un registro de distribución exponencial debería permitirle tratar la variable como distribución normal. Luego puede usarse para resolver el problema como cualquier regresión lineal.
Solía implementar el modelo aditivo general para detectar la relación no lineal entre dos variables, pero recientemente descubrí la correlación no lineal implementada a través del nlcor
paquete en R, puede implementar este método de la misma manera que la correlación de Pearson , el coeficiente de correlación está entre 0 y 1 y no -1 y 1 como en la correlación de Pearson. Un coeficiente de correlación más alto implica la existencia de una fuerte relación no lineal. Supongamos dos series de tiempo x2
y y2
, la correlación no lineal entre las dos series de tiempo se prueba de la siguiente manera
install.packages("devtools")
library(devtools)
install_github("ProcessMiner/nlcor")
library(nlcor)
c <- nlcor(x2, y2, plt = T)
c$cor.estimate
[1] 0.897205
Las dos variables parecen estar fuertemente correlacionadas a través de una relación no lineal, también puede obtener el valor p ajustado para el coeficiente de correlación
c$adjusted.p.value
[1] 0
También puedes trazar los resultados
print(c$cor.plot)
You can view this link for more details