# AnotA: Analysis of A-not-A tests In sensR: Thurstonian Models for Sensory Discrimination

## 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

 ```1 2 3 4 5 6 7``` ```AnotA(x1, n1, x2, n2, ...) ## S3 method for class 'anota' confint(object, parm, level = 0.95, ...) ## S3 method for class '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`

## Details

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

## 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.

## Author(s)

Rune Haubo B Christensen and Per Bruun Brockhoff

## 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.

`print.discrim`, `discrim`, `discrimPwr`, `discrimSim`, `discrimSS`, `findcr`
 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37``` ```# 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) ## 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") ```