2015-03-27 10 views
7

Di seguito c'è un MWE del problema che sto riscontrando. Sto usando il set di dati Orthodont del pacchetto nlme che consiste in 4 misurazioni per 27 bambini (16 ragazze, 11 ragazzi). Per modellare la correlazione sto usando una struttura di covarianza non strutturata specificando correlation = corSymm(form = ~1|Subject). Sto permettendo una variazione non costante in diverse occasioni di misurazione, ma vorrei anche che i parametri di varianza-covarianza siano diversi per ragazzi e ragazze (ad esempio, perché la correlazione tra le misurazioni è probabilmente più alta/bassa per i ragazzi che per le ragazze). Posso consentire questa eterogeneità per i parametri di varianza specificando weights = varIdent(form = ~1|age*Sex), ma qualcuno sa come consentire/specificare questa eterogeneità per i parametri di correlazione?Consentire ai parametri di correlazione in gls di dipendere dal fattore di raggruppamento

So che questo è possibile in SAS proc mixed specificando l'opzione group nel repeated dichiarazione (http://support.sas.com/documentation/cdl/en/statug/63033/HTML/default/viewer.htm#statug_mixed_sect019.htm), ma non ho trovato un modo per affrontare questo in R.

Molte grazie in anticipo!

library(nlme) 
head(Orthodont) 
fit <- gls(distance ~ age * Sex, correlation = corSymm(form = ~1|Subject), 
      weights = varIdent(form = ~1|age*Sex), data = Orthodont, na.action = na.exclude) 
+1

Se si guarda la descrizione di 'form' per'? CorSymm', non sono sicuro che si possa ... come si dice quanto segue: _Quando un fattore di raggruppamento è presente nella forma, si assume che la struttura di correlazione sia si applicano solo alle osservazioni all'interno dello stesso livello di raggruppamento; si presume che le osservazioni con diversi livelli di raggruppamento non siano correlate. Forse puoi prespecificare usando una struttura di correlazione generale inizializzata? La funzione di aiuto ha alcune informazioni su questo, perché non ho idea di come farlo. – OFish

risposta

1

io non sono del tutto sicuro che questo è quello che stai cercando, ma dare una prova:

fit <- gls(distance ~ age * Sex, 
      correlation = corSymm(form = ~1|Subject/Sex), 
      weights = varIdent(form = ~1|age*Sex), 
      data = Orthodont, na.action = na.exclude) 

si inserisce una correlazione totalmente separata giorno per giorno per i maschi e femmine . Se esegui

summary(fit) 

mostra questo piuttosto chiaramente.

+0

Sfortunatamente, ottengo esattamente lo stesso risultato del modello nel mio esempio (quindi nessun parametro di correlazione separato per maschi e femmine). – johansteen

Problemi correlati