| eba {eba} | R Documentation |
Fits a (multi-attribute) probabilistic choice model by maximum likelihood.
eba(M, A = 1:I, s = rep(1/J, J), constrained = TRUE)
OptiPt(M, A = 1:I, s = rep(1/J, J), constrained = TRUE)
## S3 method for class 'eba':
summary(object, ...)
## S3 method for class 'eba':
anova(object, ..., test = c("Chisq", "none"))
M |
a square matrix or a data frame consisting of absolute choice frequencies; row stimuli are chosen over column stimuli |
A |
a list of vectors consisting of the stimulus aspects;
the default is 1:I, where I is the number of stimuli |
s |
the starting vector with default 1/J for all parameters,
where J is the number of parameters |
constrained |
logical, if TRUE (default), parameters are constrained to be positive |
object |
an object of class eba, typically the result of a
call to eba |
test |
should the p-values of the chi-square distributions be reported? |
... |
additional arguments; none are used in the summary method;
in the anova method they refer to additional objects of class eba. |
eba is a wrapper function for OptiPt. Both functions
can be used interchangeably.
The probabilistic choice models that can be fitted to paired-comparison data are the Bradley-Terry-Luce (BTL) model, preference tree (Pretree) models, and elimination-by-aspects (EBA) models, the former being special cases of the latter.
A is usually a list of vectors, the first element of each being
a number from 1 to I; additional elements specify the aspects shared
by several stimuli. A must have as many elements as there are
stimuli. When fitting a BTL model, A reduces to 1:I (the
default), i.e. there is only one aspect per stimulus.
The maximum likelihood estimation of the parameter values is
carried out by nlm. The Hessian matrix, however, is
approximated by fdHess{nlme}. The likelihood functions
L.constrained and L are called automatically.
See group.test for details on the likelihood ratio
tests reported by summary.eba.
estimate |
a vector of parameter estimates |
se |
a vector of standard errors of the parameter estimates |
ci95 |
a vector of 95% confidence intervals for the parameters |
logL.eba |
the log-likelihood of the fitted model |
logL.sat |
the log-likelihood of the saturated (binomial) model |
goodness.of.fit |
the goodness of fit statistic including the likelihood ratio fitted vs. saturated model (-2logL), the degrees of freedom, and the p-value of the corresponding chi-square distribution |
u.scale |
the u-scale of the stimuli; one u-scale value is defined as the sum of aspect values (parameters) that characterize a given stimulus |
hessian |
the Hessian matrix of the likelihood function |
cov.p |
the covariance matrix of the model parameters |
chi.alt |
the Pearson chi-square goodness of fit statistic |
fitted |
the fitted paired-comparison matrix |
y1 |
the data vector of the upper triangle matrix |
y0 |
the data vector of the lower triangle matrix |
n |
the number of observations per pair (y1 + y0) |
mu |
the predicted choice probabilities for the upper triangle |
Florian Wickelmaier
Wickelmaier, F., & Schmid, C. (2004). A Matlab function to estimate choice model parameters from paired-comparison data. Behavior Research Methods, Instruments, and Computers, 36, 29–40.
Bradley, R.A. (1984). Paired comparisons: some basic procedures and examples. In P.R. Krishnaiah & P.K. Sen (eds.), Handbook of Statistics, Volume 4. Amsterdam: Elsevier.
Tversky, A. (1972). Elimination by aspects: a theory of choice. Psychological Review, 79, 281–299.
Tversky, A., & Sattath, S. (1979). Preference trees. Psychological Review, 86, 542–573.
strans, cov.u, wald.test,
group.test, plot.eba,
residuals.eba, logLik.eba,
kendall.u, circular, thurstone,
nlm.
data(celebrities) # absolute choice frequencies
btl1 <- eba(celebrities) # fit a Bradley-Terry-Luce model
A <- list(c(1,10), c(2,10), c(3,10), c(4,11), c(5,11), c(6,11),
c(7,12), c(8,12), c(9,12)) # the structure of aspects
eba1 <- eba(celebrities, A) # fit a preference tree model
summary(eba1) # goodness of fit
plot(eba1) # residuals versus predicted values
anova(btl1, eba1) # model comparison based on likelihoods
ci <- 1.96 * sqrt(diag(cov.u(eba1))) # 95% CI for preference scale values
a <- barplot(eba1$u, ylim = c(0, .35)) # plot the scale
arrows(a, eba1$u-ci, a, eba1$u+ci, .05, 90, 3) # error bars