Para o gráfico 1, posso testar a associação entre x e y, fazendo uma correlação simples.
Para o gráfico 2, onde o relacionamento não é linear e ainda existe uma relação clara entre x e y, como posso testar a associação e rotular sua natureza?
Para o gráfico 1, posso testar a associação entre x e y, fazendo uma correlação simples.
Para o gráfico 2, onde o relacionamento não é linear e ainda existe uma relação clara entre x e y, como posso testar a associação e rotular sua natureza?
Respostas:
... o relacionamento não é linear e ainda existe uma relação clara entre x e y, como posso testar a associação e rotular sua natureza?
Uma maneira de fazer isso seria ajustar como uma função estimada semi-parametricamente de usando, por exemplo, um modelo aditivo generalizado e testando se essa estimativa funcional é ou não constante, o que indicaria nenhuma relação entre e . Essa abordagem o libera de ter que fazer regressão polinomial e tomar decisões às vezes arbitrárias sobre a ordem do polinômio, etc.x y x
Especificamente, se você tiver observações , poderá ajustar o modelo:
e teste a hipótese . Em , você pode fazer isso usando a função Se é o seu resultado e o seu preditor, você pode digitar:R
gam()
y
x
library(mgcv)
g <- gam(y ~ s(x))
A digitação summary(g)
fornecerá o resultado do teste de hipótese acima. Quanto a caracterizar a natureza do relacionamento, isso seria melhor com um enredo. Uma maneira de fazer isso R
(assumindo que o código acima já foi inserido)
plot(g,scheme=2)
Se sua variável de resposta for discreta (por exemplo, binária), você poderá acomodar isso dentro dessa estrutura ajustando um GAM logístico (em R
, você adicionaria family=binomial
à sua chamada para gam
). Além disso, se você tiver vários preditores, poderá incluir vários termos aditivos (ou termos lineares comuns) ou ajustar funções multivariáveis, por exemplo, se você tiver preditores . A complexidade do relacionamento é selecionada automaticamente pela validação cruzada se você usar os métodos padrão, embora exista muita flexibilidade aqui - consulte o arquivo de ajuda, se estiver interessado.x, z
gam
Se a relação não linear tivesse sido a correlação monotônica (rho de Spearman), seria apropriado. No seu exemplo, há uma pequena região clara em que a curva muda de monotoncalmente aumentada para montonicamente decrescente, como uma parábola faria no ponto em que a primeira derivada é igual a .
Eu acho que se você tem algum conhecimento de modelagem (além das informações empíricas) em que esse ponto de mudança ocorre (digamos em ), pode caracterizar a correlação como positiva e usar o rho de Spearman no conjunto de pares que para fornecer uma estimativa dessa correlação e use outra estimativa da correlação de Spearman para onde a correlação é negativa. Essas duas estimativas caracterizam a estrutura de correlação entre e e, diferentemente de uma estimativa de correlação que seria próxima de quando estimada usando todos os dados, essas estimativas serão grandes e terão sinal oposto.( x , y ) x < um x > um x y 0
Alguns podem argumentar que apenas as informações empíricas ( isto é, os pares observados são suficientes para justificar isso.
Você pode testar qualquer tipo de dependência usando testes de correlação à distância. Consulte aqui para obter mais informações sobre a correlação de distância: Noções básicas sobre cálculos de correlação de distância
E aqui o artigo original: https://arxiv.org/pdf/0803.4101.pdf
Em R isso é implementado no energy
pacote com a dcor.test
função
Alguém me corrija se meu entendimento estiver errado aqui, mas uma maneira de lidar com variáveis não lineares é usar uma aproximação linear. Portanto, por exemplo, o registro da distribuição exponencial deve tratar a variável como distribuição normal. Em seguida, ele pode ser usado para resolver o problema como qualquer regressão linear.
Eu costumava implementar o modelo aditivo geral para detectar a relação não linear entre duas variáveis, mas recentemente descobri a correlação não linear implementada via nlcor
pacote em R, você pode implementar esse método da mesma maneira que a correlação de Pearson , o coeficiente de correlação está entre 0 e 1 e não -1 e 1, como na correlação de Pearson. Um coeficiente de correlação mais alto implica a existência de uma forte relação não linear. Vamos assumir duas séries temporais x2
e y2
, a correlação não linear entre as duas séries é testada da seguinte forma
install.packages("devtools")
library(devtools)
install_github("ProcessMiner/nlcor")
library(nlcor)
c <- nlcor(x2, y2, plt = T)
c$cor.estimate
[1] 0.897205
As duas variáveis parecem estar fortemente correlacionadas via relacionamento não linear; também é possível obter o valor p ajustado para o coeficiente de correlação
c$adjusted.p.value
[1] 0
Você também pode plotar os resultados
print(c$cor.plot)
Você pode ver este link para obter mais detalhes