Come testare un'associazione non lineare?


37

Per la trama 1, posso testare l'associazione tra xey facendo una semplice correlazione. trama 1

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? trama 2

Risposte:


35

... 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.yxyx

In particolare, se hai osservazioni , potresti adattare il modello:(Yi,Xi)

E(Yi|Xi)=α+f(Xi)+εi

e verifica l'ipotesi . In , puoi farlo usando la funzione. Se è il tuo risultato ed è il tuo predittore, puoi digitare:H0:f(x)=0, XRgam()yx

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)

Rfamily=binomialgamf(x,z)x, zgam


1
x=un'

@ user1447630 Questo è un modello per la relazione. La regressione lineare polinomiale o la regressione non lineare e i modelli additivi sono modi per caratterizzare una relazione funzionale. Avrei potuto menzionare uno di quelli. Ma hai chiesto una misura di associazione, quindi ti ho dato altre possibili forme di correlazione. Per quanto bella possa essere la risposta di Macro, si adatta a una relazione funzionale, ma non fornisce una misura di associazione.
Michael R. Chernick,

1
@Michael, non so quale domanda stavi leggendo ma l'OP ha chiesto come testare un'associazione, non una misura di associazione. In ogni caso, per quanto bella possa essere la tua risposta (e ignorando il fatto che richiede una conoscenza a priori piuttosto forte di dove si verifica il punto di cambiamento), penso che sia eccessivamente adattato alla trama specifica in questa domanda, anziché al generale problema di "associazione non lineare".
Macro

3
@Michael, la tua interpretazione ( "la domanda era su come generalizzare il concetto di correlazione .." ) e l '"argomento" statistico che dai (btw, "test per l'originalità dei coefficienti e del modello" in un modello lineare questo è lo stesso che testare una correlazione) non ha alcun senso, dati i fatti, quindi non ho intenzione di affrontarli. Ma "..dopo che hai dato il tuo il mio non è stato accettato e il tuo è stato accettato ... Ho solo pensato che non fosse giusto" sta promuovendo la tua risposta che riflette solo una fissazione sui punti di riferimento, non qualcosa di utile per la comunità.
Macro

5
xy

14

0

x=a(x,y)x<ax>axy0 quando vengono stimati utilizzando tutti i dati, queste stime saranno entrambe grandi e opposte nel segno.

(x,y)


y=ax2+bx+ca

1
Per questo si adatta il modello quadratico usando dire regressione lineare OLS e si esegue un test statistico standard che il coefficiente a è maggiore di 0 (ad esempio un test t con una coda).
Michael R. Chernick,

1
xxx2t

212


0

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.


8
Non penso che questo risponda davvero alla domanda. Prendere i registri non è la stessa cosa di fare un'approssimazione lineare. Inoltre, anche se si prendono i log, la distribuzione per cui il log della variabile originale è una variabile normalmente distribuita non è la distribuzione esponenziale ma la distribuzione lognormale . Tuttavia, né la variabile indipendente né quella dipendente devono essere normalmente distribuite affinché la regressione lineare sia appropriata: il problema qui è la relazione tra le variabili, non le loro distribuzioni marginali.
Silverfish

0

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 nlcorpacchetto 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 x2e 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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.