Come applicare il GLMM binomiale (glmer) alle percentuali piuttosto che ai conteggi sì-no?


21

Ho un esperimento di misure ripetute in cui la variabile dipendente è una percentuale e ho più fattori come variabili indipendenti. Mi piacerebbe usare glmerdal pacchetto R lme4per trattarlo come un problema di regressione logistica (specificando family=binomial) poiché sembra adattarsi direttamente a questa configurazione.

I miei dati si presentano così:

 > head(data.xvsy)
   foldnum      featureset noisered pooldur dpoolmode       auc
 1       0         mfcc-ms      nr0       1      mean 0.6760438
 2       1         mfcc-ms      nr0       1      mean 0.6739482
 3       0    melspec-maxp    nr075       1       max 0.8141421
 4       1    melspec-maxp    nr075       1       max 0.7822994
 5       0 chrmpeak-tpor1d    nr075       1       max 0.6547476
 6       1 chrmpeak-tpor1d    nr075       1       max 0.6699825

ed ecco il comando R che speravo fosse appropriato:

 glmer(auc~1+featureset*noisered*pooldur*dpoolmode+(1|foldnum), data.xvsy, family=binomial)

Il problema è che il comando si lamenta del fatto che la mia variabile dipendente non è un numero intero:

In eval(expr, envir, enclos) : non-integer #successes in a binomial glm!

e l'analisi di questi dati (pilota) dà come risultato risposte strane.

Capisco perché la binomialfamiglia prevede numeri interi (conteggi sì-no), ma sembra che dovrebbe essere OK regredire direttamente i dati percentuali. Come fare questo?


1
Non mi sembra OK, dato che 5 su 10 non sono le stesse informazioni di 500 su 1000. Esprimi la risposta come un conteggio del no. "successi" e un conteggio del no. "fallimenti".
Scortchi - Ripristina Monica

@Scortchi grazie, penso che potresti avere ragione. Stavo pensando in parte alla natura continua delle mie percentuali (derivate da decisioni probabilistiche) simili a questa domanda: stats.stackexchange.com/questions/77376/… ma credo di poter esprimere i miei dati attraverso una conversione significativa in conteggi interi.
Dan Stowell,

Risposte:


22

Per utilizzare un vettore di proporzioni come variabile di risposta con glmer(., family = binomial), è necessario impostare il numero di prove che hanno portato a ciascuna proporzione utilizzando l' weightsargomento. Ad esempio, usando i cbppdati dal lme4pacchetto:

glmer(incidence / size ~ period + (1 | herd), weights = size,
   family = binomial, data = cbpp)

Se non si conosce il numero totale di prove, un modello binomiale non è appropriato, come indicato nel messaggio di errore.


Non posso dire se usare i pesi per questo funziona o no. Ma puoi certamente inserire i dati come una matrice a due colonne (esiti positivi / negativi) sul lato sinistro della formula.
ndoogan,

Ma @ndoogan, la domanda originale riguardava le proporzioni, non i successi / i fallimenti. E il codice sopra funziona, come l'ho preso dalla cbpppagina di aiuto.
Steve Walker,

Giusto. Tuttavia, intendevo significare successi / fallimenti ( non intesi come divisione) da dove provengono le proporzioni per un modello binomiale.
ndoogan,

+1, ma i lettori potrebbero voler vedere la risposta di @BenBolker qui stats.stackexchange.com/questions/189115 sui possibili modi per gestire la sovradispersione.
ameba dice Reinstate Monica il

9

(0,1)


2
Un modello binomiale è un modello di proporzioni. Tuttavia, è appropriato solo quando si conosce il numero di prove. Se tutto ciò che hai è una percentuale senza alcuna indicazione del numero di prove, allora credo che tu abbia ragione che la regressione beta è appropriata.
ndoogan,

(0,1)

Grazie, questo è un buon punto. Accetto l'altra risposta perché risponde alla domanda come scritto, ma il punto sulla regressione beta è ben fatto, quindi l'ho votato.
Dan Stowell,
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.