Home Forum Statistica con R Regressione mista non lineare in R

This topic contains 4 replies and has 2 voices.

Viewing 5 posts - 1 through 5 (of 5 total)
  • Author
    Posts
  • #5071

    Ciao a tutti,
    ho dei dati di questo tipo:

    Image and video hosting by TinyPic” alt=”Pattern visivi eye tracking” />

    Questi pattern si riferiscono ad un esperimento in cui viene monitorato lo sguardo del soggetto utilizzando un eye-tracker. Vengono presentate due immagini in ogni trial. Una di queste è un’immagine target. Nel grafico viene mostrato quanto i soggetti hanno guardato il target in proporzione al distrattore (asse y) nel corso del tempo (0-2500ms).
    Vorrei utilizzare un modello misto non lineare per riuscire ad evidenziare adeguatamente la differenza fra le due curve in alcuni punti.
    Ho guardato un po’ in internet ma ho trovato solo spiegazioni estremamente complicate.
    Vi chiedo se potreste consigliarmi qualche testo, tutorial o documentazione per studiare come procedere.
    Per adesso guardando su internet mi sembra che la soluzione più adeguata nel mio caso potrebbe essere utilizzare gli “Splines”, invece che aggiungere ad un modello misto delle componenti polinomiali ortogonali.

    Grazie per le vostre risposte e per l’aiuto

    #5088
    Davide Massidda
    Davide Massidda
    Moderator

    Ciao Francesco,

    forse arrivo un po’ tardi, ma provo a darti il mio punto di vista.

    Parto da un presupposto, che spero sia valido. I soggetti o vedono il target o vedono il distrattore: nessun’altra possibilità è contemplata. Quindi, analizzare il solo target sarà equivalente ad analizzare il solo distrattore, perché le due cose sono perfettamente complementari. Intendo dire che, se chiamiamo “p” la probabilità che un soggetto butti l’occhio sul target, allora la probabilità che butti l’occhio sul distrattore sarà “1-p”.

    Se questo presupposto è valido, allora come variabile dipendente posso utilizzare una variabile binaria in cui 1=target guardato, 0=target non guardato. Chiamiamo questa variabile y.

    Questa variabile y dipende da:
    - trial
    - tempo
    - gruppo
    - soggetto

    Assumendo un modello lineare, dovresti utilizzare un Generalized Mixed Effects Model, implementato nel pacchetto lme4, considerando come distribuzione la binomiale. E non escluderei che il modello possa davvero essere lineare, anzi nello specifico un polinomiale di 4° grado o 5° grado (dico questo perché dal grafico mi pare di vedere 3 o 4 grossi cambi di direzione).

    In alternativa, se ci dovessimo buttare sul nonlineare, bisognerebbe trovare una funzione adatta… però non so se in lme4 siano implementati i GLMM nonlineari (si potrebbe dare un occhio a nlme).

    Questo ragionamento ti torna?

    #5306

    Ciao Davi,
    scusami tanto per l’estremo ritardo di risposta.
    Grazie mille per la tua risposta e per i tuoi consigli; ti esprimo dei dubbi che ho.
    La variabile dipendente, che puoi vedere nel grafico che ho riportato, esprime la probabilità nel corso del tempo di guardare il target.
    In questo senso se al tempo 0 su 100 trial il target sia stato guardato in 50 trial, allora la probabilità di guardare il target al tempo 0 sarà 0,5. Se al tempo 1 il target è stato guardato in 60 trial allora la probabilità sarà 0.6 e così via.
    Se non ho capito male, il tuo consiglio sarebbe quello di trasformare tale variabile in modo che quando questa probabilità scende sotto 0,5 assumerà il valore 0 (target non guardato ovvero c’è più probabilità di guardare il distrattore), e quando invece sarà uguale o sopra 0,5 assumerà valore 1 (target guardato ovvero più probabilità di guardare il target).
    In questo modo avrei una variabile dicotomica e potrei utilizzare il modello che mi hai suggerito.

    Nel caso il ragionamento che ho fatto sia giusto, quando costruisco il modello dovrei fare un plot di questa nuova variabile in funzione del tempo per capire se il modello è lineare e se sia il caso di aggiungere delle componenti polinomiali al modello?

    Grazie mille

    #5307
    Davide Massidda
    Davide Massidda
    Moderator

    Ciao Francesco, no, non intendevo dire che dovresti dicotomizzare la variabile y, intendevo dire che una proporzione deriva sempre da una sequenza di numeri binari 1/0 e che potresti utilizzare questi al posto della proporzione. In realtà, a rileggere oggi la questione ho pensato che potresti risolverla in maniera più semplice.

    (“Semplice” relativamente, eh!)

    Tieni le proporzioni come variabile dipendente, usando il tempo e la condizione come predittori. Utilizza invece il soggetto come variabile random. Adatta due modelli polinomiali fatti un questo modo:

    mod1 <- lmer(prop ~ poly(time,4) + condition + (1|subject))
    mod2 <- lmer(prop ~ poly(time,4) * condition + (1|subject))
    

    quindi, confrontali. Mi aspetterei che il secondo sia migliore del primo, perché la componente “quartica” (ovvero: l’ultimo cambio di direzione della traiettoria) varia fra le due condizioni: dovrebbe essere molto più marcata nel gruppo di controllo e meno marcata nel gruppo sperimentale. In questo modo, potresti dimostrare che la traiettoria varia fra i due gruppi.

    Senza i dati alla mano è difficile essere sicuri che la cosa possa funzionare… ma è una possibilità!

    #5308

    Ok grazie davi! Avevo intuito che mi suggerissi di utilizzare i valori grezzi ma non ero sicuro.
    Provo a usare questa seconda soluzione allora.
    Ho anche un altro dataset che ha un andamento diverso ma proverò con la stessa strategia variando il grado del modello (per la mia comprensione attuale dei polinomiali quello che faccio è vedere quale curva polinomiale si avvicina di più ai miei dati, seguendo un grafico come quello riportato in fondo a questa pagina http://www.mattwinn.com/tools/R_add_polynomials_to_df.html)

Viewing 5 posts - 1 through 5 (of 5 total)

You must be logged in to reply to this topic.