Learn R Programming

psyphy (version 0.3)

probit.lambda: mafc Probit Link for Binomial Family with Upper Asymptote < 1

Description

This function provides a link for the binomial family for fitting m-alternative forced-choice, with a probit link and with the upper asymptote permitted to be less than 1.

Usage

probit.lambda(m = 2, lambda = 0)

Value

The link returns a list containing functions required for relating the response to the linear predictor in generalized linear models and the name of the link.

linkfun

The link function

linkinv

DTHe inverse link function

mu.eta

The derivative of the inverse link function

valideta

The domain over which the linear predictor is valid

link

A name to be used for the link

Arguments

m

is the integer number (>1) of choices (Default to 2AFC).

lambda

number in [0, 1] indicating 1 minus the upper asymptotic value of the psychometric function.

Author

Ken Knoblauch

Details

This function provides a link for fitting psychometric functions arising from an m-alternative forced-choice experiment using a probit link and allowing that the upper aymptote is less than 1. The psychometric function fit to the data is described by $$P(x) = 1/m + (1 - 1/m - \lambda) \Phi(x)$$ where \(m\) is the number of alternatives and the lower asymptote, \(1 - \lambda\) is the upper asymptote and \(\Phi\) is the cumulative normal function.

References

Wichmann, F. A. and Hill, N. J. (2001) The psychometric function: I.Fitting, sampling, and goodness of fit. Percept Psychophys., 63(8), 1293--1313.

See Also

mafc, glm, glm.lambda, family, make.link

Examples

Run this code
b <- 3.5
g <- 1/3
d <- 0.025
a <- 0.04
p <- c(a, b, g, d)
num.tr <- 160
cnt <- 10^seq(-2, -1, length = 6) # contrast levels

#simulated Weibull-Quick observer responses
truep <- g + (1 - g - d) * pweibull(cnt, b, a)
ny <- rbinom(length(cnt), num.tr, truep)
nn <- num.tr - ny
phat <- ny/(ny + nn)
resp.mat <- matrix(c(ny, nn), ncol = 2)

ddprob.glm <- glm(resp.mat ~ cnt, family = binomial(mafc.probit(3)))
ddprob.lam <- glm(resp.mat ~ cnt, family = binomial(probit.lambda(3, 0.025)))
AIC(ddprob.glm, ddprob.lam)

plot(cnt, phat, log = "x", cex = 1.5, ylim = c(0, 1))
pcnt <- seq(0.01, 0.1, len = 100)
lines(pcnt, predict(ddprob.glm, data.frame(cnt = pcnt),
                        type = "response"), lwd = 2)
lines(pcnt, predict(ddprob.lam, data.frame(cnt = pcnt),
                        type = "response"), lwd = 2, lty = 2)

Run the code above in your browser using DataLab