Learn R Programming

MLDS (version 0.0.6)

mlds: Fit Difference Scale by Maximum Likelihood

Description

mlds fits the results of a difference scaling experiment using either glm (Generalized Linear Model) or by direct maximization of the likelihood using optim.

Usage

mlds(data, stimulus, method = "glm", lnk = "probit", 
		opt.meth = "BFGS", opt.init = NULL, 
		control = glm.control(maxit = 50000, epsilon = 1e-14),
		... )

Arguments

data
A data.frame with 5 columns giving the response and the ranks of the stimulus levels for each trial, or an object of class mlds.df which also contains additional information as attributes .
stimulus
A numeric vector that contains the physical stimulus levels used in the experiment. If data is of class mlds.df, this information is included as an attribute. If NULL, a sequence of 1-n is used, where n is the
method
Character, taking the value of glm or optim. Default is glm.
lnk
Character indicating either one of the built-in links for the binomial family or a user defined link of class link-glm. See family and make.link<
opt.meth
If method = optim, the method used by optim can be specified. Defaults to BFGS.
opt.init
Vector of numeric giving initial values which must be provided if you specify the optim method.
control
A list of control values for either glm or optim. Since the method defaults to dQuote{glm}, the default is a glm list but should be changed if the dQuote{optim} method is chosen.
...
Additional arguments passed along to glm or optim.

Details

Observers are presented with pairs of pairs of stimuli, distributed along a physical stimulus axis. For example, for stimuli $a, b, c, d$ with $a < b < c < d$, they see the pairs $(a, b)$ and $(c, d)$. For each trial, they make a judgement as to whether the difference between the elements of pair 1 is greater or not than the difference between the elements of pair 2. From a large number of trials on different quadruples, mlds estimates numbers, $Psi_1,..., Psi_n$, by maximum likelihood such that $(Psi_d - Psi_c) > (Psi_b - Psi_a)$ when the observer chooses pair 2, and pair 1, otherwise. If there are $p$ stimulus levels tested, then $p - 1$ coefficients are estimated. The glm method constrains the lowest estimated value, $Psi_1 = 0$, while the optim method constrains the lowest and highest values to be 0 and 1, respectively. The optim method estimates an additional scale parameter, , whereas this value is fixed at 1.0 for the glm method. In principle, the scales from the two methods are related by $$1/\sigma_o = max(Psi_g)$$ where $\sigma_o$ is estimated with the optim method and $Psi_g$ corresponds to the perceptual scale values estimated with the glm method. The equality may not be exact as the optim method prevents the selection of values outside of the interval [0, 1] whereas the glm method does not. A list of class 'mlds' whose components depend on whether the method was "glm" or "optim", pscale{A numeric vector of the estimated difference scale.} stimulus{The physical stimulus levels} sigma{The scale estimate, always 1.0 for "glm"} method{The fitting method} link{The binomial link specified, default "probit"} obj{For method "glm", an object of class "glm" resulting from the fit.} logLik{for method "optim", the logarithm of likelihood at convergence} hess{for method "optim", the Hessian matrix at convergence} data{For method "optim", the data.frame or "mlds.df" entered as an argument.} conv{For method "optim", a code indicating whether optim converged or not. See optim.} Maloney, L. T. and Yang, J. N. (2003). Maximum likelihood difference scaling. Journal of Vision, 3(8):5, 573--585, http://journalofvision.org/3/8/5/, doi:10.1167/3.8.5. [object Object],[object Object] The glm method often generates warnings that fitted probabilities are 0 or 1. This does not usually affect the values of the estimated scale. However, it may be wise to check the results with the optim method and obtain standard errors from a bootstrap method (see boot.mlds. The warnings will often disappear if the link is modified or more data are obtained. glm, optim data(AutumnLab) #Note the warnings generated by glm method x.mlds <- mlds(AutumnLab) summary(x.mlds) y.mlds <- mlds(AutumnLab, method = "optim", opt.init = c(seq(0, 1, len = 10), 0.16)) summary(y.mlds) plot(x.mlds) #How sigma relates the scales obtained by the 2 different methods. lines(y.mlds$stimulus, y.mlds$pscale/y.mlds$sigma) models regression nonlinear