Sto MCMCglmm
riscontrando problemi di prestazioni utilizzando il pacchetto in R per eseguire un modello di effetti misti. Il codice è simile al seguente:
MC1<-MCMCglmm(bull~1,random=~school,data=dt,family="categorical"
, prior=list(R=list(V=1,fix=1), G=list(G1=list(V=1, nu=0)))
, slice=T, nitt=iter, ,burnin=burn, verbose=F)
Ci sono circa 20.000 osservazioni nei dati e sono raggruppate in circa 200 scuole. Ho eliminato tutte le variabili non utilizzate dal frame di dati e rimosso tutti gli altri oggetti dalla memoria, prima di eseguire. Il problema che ho è che richiede molto tempo per l'esecuzione, a meno che non riduca le iterazioni a un numero inaccettabilmente piccolo. Con 50.000 iterazioni, ci vogliono 5 ore e ho molti modelli diversi da eseguire. Quindi vorrei sapere se ci sono modi per accelerare l'esecuzione del codice o altri pacchetti che potrei usare. Sto usando MCMCglmm
perché voglio intervalli di confidenza per gli effetti casuali.
D'altra parte, speravo di ottenere un nuovo PC entro la fine dell'anno, ma con un po 'di fortuna potrei essere in grado di portarlo avanti, quindi mi sono chiesto come spendere meglio una quantità limitata di denaro per il nuovo hardware: più RAM , CPU più veloce ecc. Dal guardare il task manager non credo che la RAM sia il problema (non supera mai il 50% dell'utilizzo fisico), ma l'utilizzo della CPU non supera neanche il 50%, il che mi sembra strano . La mia configurazione attuale è un Intel Core i5 2,66 GHz, 4 GB di RAM, HDD a 7200 giri / min. È ragionevole ottenere la CPU più veloce possibile, a spese della RAM aggiuntiva? Mi chiedevo anche l'effetto della dimensione della cache della CPU di livello 3 su problemi di calcolo statistico come questo?
Aggiornamento: dopo aver chiesto su meta SO mi è stato consigliato di riformulare la domanda e pubblicare su Superuser. Per fare ciò ho bisogno di fornire maggiori dettagli su ciò che sta accadendo "sotto il cofano" in MCMCglmm. Ho ragione nel pensare che la maggior parte del tempo di calcolo viene impiegato per l'ottimizzazione - intendo trovare il massimo di alcune funzioni complicate? L'inversione di matrice e / o altre operazioni di algebra lineare sono anche un'operazione comune che potrebbe causare colli di bottiglia? Qualsiasi altra informazione che potrei dare alla community di Superuser verrà ricevuta con gratitudine.
lmer()
modelli a set di dati di grandi dimensioni può richiedere parecchio tempo, soprattutto se è necessario farlo più volte. Una risposta alla tua domanda potrebbe risiedere nel calcolo parallelo anche se altri utenti (ad esempio @DirkEddelbuettel) sarebbero molto più utili di me con questo. C'è anche la possibilità che tu possa ottenere risposte migliori su StackOverflow.
glmer
(come sapete dai miei altri post) e questo richiede circa 20 secondi, ma il problema è che non fornisce intervalli di confidenza o errori standard e da quello che ho letto su un archivio di mailing list l'autore del lme4
Il pacchetto afferma che la distribuzione campionaria degli effetti casuali può essere molto distorta, quindi tali statistiche non vengono riportate. In realtà ho scoperto da MCMCglmm
così lontano che nel mio caso si stanno avvicinando alla normalità (non che questo aiuti molto - sto solo dicendo). Sarebbe meglio se chiedessi di migrarlo su SO?