Computes relative choice frequencies and checks whether these are in the polytope defined via (1) A*x <= b or (2) by the convex hull of a set of vertices V.
inside_binom(k, n, A, b, V)inside_multinom(k, options, A, b, V)
Arguments
k: choice frequencies. For inside_binom: per item type (e.g.: a1,b1,c1,..) For inside_multinom: for all choice options ordered by item type (e.g., for ternary choices: a1,a2,a3, b1,b2,b3,..)
n: only for inside_binom: number of choices per item type.
A: a matrix with one row for each linear inequality constraint and one column for each of the free parameters. The parameter space is defined as all probabilities x that fulfill the order constraints A*x <= b.
b: a vector of the same length as the number of rows of A.
V: a matrix of vertices (one per row) that define the polytope of admissible parameters as the convex hull over these points (if provided, A and b are ignored). Similar as for A, columns of V omit the last value for each multinomial condition (e.g., a1,a2,a3,b1,b2 becomes a1,a2,b1). Note that this method is comparatively slow since it solves linear-programming problems to test whether a point is inside a polytope (Fukuda, 2004) or to run the Gibbs sampler.
options: only for inside_multinom: number of response options per item type.
Examples
############ binomial# x1<x2<x3<.50:A <- matrix(c(1,-1,0,0,1,-1,0,0,1), ncol =3, byrow =TRUE)b <- c(0,0,.50)k <- c(0,1,5)n <- c(10,10,10)inside_binom(k, n, A, b)############ multinomial# two ternary choices:# (a1,a2,a3, b1,b2,b3)k <- c(1,4,10,5,9,1)options <- c(3,3)# a1<b1, a2<b2, no constraints on a3, b3A <- matrix(c(1,-1,0,0,0,0,1,-1), ncol =4, byrow =TRUE)b <- c(0,0)inside_multinom(k, options, A, b)# V-representation:V <- matrix(c(0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,1,0,1,0,1,1,1,0,0,0,1,1,1,1,1,0,1,1,1,1,1),9,4, byrow =TRUE)inside_multinom(k, options, V = V)