Ich habe ein Experiment mit wiederholten Messungen, bei dem die abhängige Variable ein Prozentsatz ist, und ich habe mehrere Faktoren als unabhängige Variablen. Ich würde gerne glmer
das R-Paket verwenden lme4
, um es als logistisches Regressionsproblem zu behandeln (indem ich es spezifiziere family=binomial
), da es dieses Setup direkt zu berücksichtigen scheint.
Meine Daten sehen so aus:
> 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
Und hier ist der R-Befehl, von dem ich gehofft hatte, dass er angemessen ist:
glmer(auc~1+featureset*noisered*pooldur*dpoolmode+(1|foldnum), data.xvsy, family=binomial)
Das Problem dabei ist, dass sich der Befehl darüber beschwert, dass meine abhängige Variable keine Ganzzahl ist:
In eval(expr, envir, enclos) : non-integer #successes in a binomial glm!
und die Analyse dieser (Pilot-) Daten liefert seltsame Antworten.
Ich verstehe, warum die binomial
Familie Ganzzahlen erwartet (Ja-Nein-Zahlen), aber es scheint in Ordnung zu sein, Prozentdaten direkt zu regressieren. Wie macht man das?
Antworten:
Um einen Proportionsvektor als Antwortvariable mit zu verwenden
glmer(., family = binomial)
, müssen Sie die Anzahl der Versuche festlegen, die mit demweights
Argument zu den einzelnen Proportionen geführt haben . Verwenden Sie beispielsweise diecbpp
Daten aus demlme4
Paket:Wenn Sie die Gesamtzahl der Versuche nicht kennen, ist ein Binomialmodell nicht geeignet, wie in der Fehlermeldung angegeben.
quelle
cbpp
Hilfeseite genommen habe.quelle