Learn R Programming

sensR (version 1.5-2)

AnotA: Analysis of A-not-A tests

Description

Computation of dprime and it's uncertainty for the monadic A-not-A test together with the one-tailed P-value of the difference test (Fisher's Exact test).

Usage

AnotA(x1, n1, x2, n2, ...)

# S3 method for anota confint(object, parm, level = 0.95, ...)

# S3 method for anota plot(x, main = TRUE, length = 1000, ...)

Arguments

x1

the number of (correct) A-answers on A-samples

n1

the total number of A-samples

x2

the number of A-answers on not-A-samples

n2

the number of not-A-samples

object

an anota object

parm

currently not used

level

the desired confidence level

x

an anota object

main

should the plot have a main title?

length

the discretization of the curves

...

additional arguments passed to glm for AnotA; not used for confint and plot

Value

For AnotA an object of class anota (which has a print method). This is a list with elements

coefficients

named vector of coefficients (d-prime)

res.glm

the glm-object from the fitting process

vcov

variance-covariance matrix of the coefficients

se

named vector with standard error of the coefficients (standard error of d-prime

data

a named vector with the data supplied to the function

p.value

one-sided p-value from Fisher's exact test (fisher.test)

test

a string with the name of the test (A-Not A) for the print method

call

the matched call

For plot a figure of the distributions of sensory intensity is produced, and for confint a 2-by-2 matrix of confidence intervals is returned.

Details

The AnotA function uses the glm and fisher.test functions of the stats package. Note that all arguments have to be positive integers.

References

Brockhoff, P.B. and Christensen, R.H.B. (2010). Thurstonian models for sensory discrimination tests as generalized linear models. Food Quality and Preference, 21, pp. 330-338.

See Also

print.discrim, discrim, discrimPwr, discrimSim, discrimSS, findcr

Examples

Run this code
# NOT RUN {
# data: 10 of the A-samples were judged to be A
#       20 A-samples in total
#       3 of the not-A samples were judged to be A
#       20 not-A-samples in total

AnotA(10, 20, 3, 20)
(m1 <- AnotA(10, 20, 3, 20))

## plot distributions of sensory intensity:
plot(m1)

## likelihood based confidence intervals:
confint(m1)

# }
# NOT RUN {
## Extended example plotting the profile likelihood
xt <- cbind(c(3, 10), c(20 - 3, 20 - 10))
lev <- gl(2, 1)
summary(res <- glm(xt ~ lev,
                   family = binomial(link = probit)))
N <- 100
dev <- double(N)
level <- c(0.95, 0.99)
delta <- seq(1e-4, 5, length = N)
for(i in 1:N)
  dev[i] <- glm(xt ~ 1 + offset(c(0, delta[i])),
                family = binomial(probit))$deviance
plot(delta, exp(-dev/2), type = "l",
     xlab = expression(delta),
     ylab = "Normalized Profile Likelihood")
## Add Normal approximation:
lines(delta, exp(-(delta - coef(res)[2])^2 /
                 (2 * vcov(res)[2,2])), lty = 2)
## Add confidence limits:
lim <- sapply(level, function(x)
              exp(-qchisq(x, df=1)/2) )
abline(h = lim, col = "grey")

# }

Run the code above in your browser using DataLab