Per la trama 1, posso testare l'associazione tra xey facendo una semplice correlazione.
Per la trama 2, dove la relazione non è lineare ma esiste una chiara relazione tra xey, come posso testare l'associazione ed etichettarne la natura?
Per la trama 1, posso testare l'associazione tra xey facendo una semplice correlazione.
Per la trama 2, dove la relazione non è lineare ma esiste una chiara relazione tra xey, come posso testare l'associazione ed etichettarne la natura?
Risposte:
... la relazione non è lineare ma esiste una chiara relazione tra xey, come posso verificare l'associazione ed etichettarne la natura?
Un modo per farlo sarebbe quello di adattare come una funzione semi-parametrica di x usando, ad esempio, un modello di additivo generalizzato e testando se tale stima funzionale è costante, il che indicherebbe nessuna relazione tra y e x . Questo approccio ti libera dal dover fare una regressione polinomiale e prendere decisioni talvolta arbitrarie sull'ordine del polinomio, ecc.
In particolare, se hai osservazioni , potresti adattare il modello:
e verifica l'ipotesi . In , puoi farlo usando la funzione. Se è il tuo risultato ed è il tuo predittore, puoi digitare:R
gam()
y
x
library(mgcv)
g <- gam(y ~ s(x))
La digitazione summary(g)
ti darà il risultato del test di ipotesi sopra. Per quanto riguarda la caratterizzazione della natura della relazione, sarebbe meglio farlo con una trama. Un modo per farlo in R
(supponendo che il codice sopra sia già stato inserito)
plot(g,scheme=2)
R
family=binomial
gam
x, z
gam
quando vengono stimati utilizzando tutti i dati, queste stime saranno entrambe grandi e opposte nel segno.
È possibile verificare qualsiasi tipo di dipendenza utilizzando i test di correlazione a distanza. Vedere qui per ulteriori informazioni sulla correlazione della distanza: Comprensione dei calcoli di correlazione della distanza
E qui il documento originale: https://arxiv.org/pdf/0803.4101.pdf
In R questo è implementato nel energy
pacchetto con la dcor.test
funzione.
Qualcuno mi corregga se la mia comprensione qui è sbagliata ma un modo per gestire variabili non lineari è usare un'approssimazione lineare. Quindi, ad esempio, prendere il registro della distribuzione esponenziale dovrebbe consentire di trattare la variabile come distribuzione normale. Può quindi essere utilizzato per risolvere il problema come qualsiasi regressione lineare.
Ho usato per implementare il modello di additivo generale per rilevare la relazione non lineare tra due variabili, ma recentemente ho scoperto la correlazione non lineare implementata tramite nlcor
pacchetto in R, è possibile implementare questo metodo allo stesso modo della correlazione di Pearson , il coefficiente di correlazione è compreso tra 0 e 1 e non -1 e 1 come nella correlazione di Pearson. Un coefficiente di correlazione più elevato implica l'esistenza di una forte relazione non lineare. Supponiamo che due serie storiche x2
e y2
, la correlazione non lineare tra le due serie storiche sia testata come segue
install.packages("devtools")
library(devtools)
install_github("ProcessMiner/nlcor")
library(nlcor)
c <- nlcor(x2, y2, plt = T)
c$cor.estimate
[1] 0.897205
Le due variabili sembrano essere fortemente correlate tramite una relazione non lineare, è inoltre possibile ottenere il valore p corretto per il coefficiente di correlazione
c$adjusted.p.value
[1] 0
Puoi anche tracciare i risultati
print(c$cor.plot)
Puoi visualizzare questo link per maggiori dettagli