Learn R Programming

fixedpointproperty (version 1.0)

fpConditionCheck: Checks preconditions before performing fpANOVA

Description

This function checks whether two conditions are met before performing fpANOVA.

Usage

fpConditionCheck(object)

Value

No return value, called for warnings generated by fpConditionCheck1 and fpConditionCheck2

Arguments

object

a list of objects from class fpp.

Author

Leendert van Maanen (l.vanmaanen@uu.nl)

Details

Finding support for the fixed-point property will be mute if there is no significant difference between experimental conditions. Whether all conditions differ can be tested using fpConditionCheck1, which performs pairwise t-tests. A warning is provided if at least one paire of conditions does not significantly differ (default settings of pairwise.t.test are used).

Finding support for the fixed-point property is difficult if the bandwidth of the density estimation is chosen too small. In that case, multiple crossing points of pairs of densities will preclude a precise estimate of the fixed point. fpConditionCheck2 tests the number of crossing points for each pair of conditions, and provides a warning if more crossing points are detected.

References

Van Maanen, L., De Jong, R., Van Rijn, H (2014). How to assess the existence of competing strategies in cognitive tasks: A primer on the fixed-point property. PLOS One, 9, e106113

Van Maanen, L. Couto, J. & Lebetron, M. (2016). Three boundary conditions for computing the fixed-point property in binary mixture data. PLOS One, 11, e0167377.

See Also

Examples

Run this code
N <- 200  # nr of observations per condition
M <- 50  # nr of participants
p <- seq(0.1, 0.9, 0.4)  # mixture proportions
means <- c(0.3, 0.3)  # means of base distributions are equal, yielding a warning if check=TRUE
sigma <- 5  # scale of base distributions

bw <- 0.01 
# kernel bandwidth of the density estimation. Too small values yield a warning if check=TRUE

### generate data
rt <- NULL
for (i in 1:length(p)) {
    rt <- c(rt, ifelse(sample(0:1, N * M, replace = TRUE, prob = c(p[i], 1 - p[i])), 
        rnorm(N * M, means[1], sigma), rnorm(N * M, means[2], sigma)))
}
rt <- rt + rep(rnorm(M, sd = 0.1), times = N)  # normally distributed pp random effect
dat <- data.frame(rt = rt, cond = rep(1:length(p), each = N * M), pp = rep(1:M, 
    each = N))

### compute crossing points
res <- tapply(1:nrow(dat), dat$pp, function(X) {
    fpGet(dat[X, ], 1000, bw = bw)
})  

### test fixed point
fpAnova(res, stat = "both", check=TRUE) # this provides both warnings

Run the code above in your browser using DataLab