inside_binom function

Check Whether Choice Frequencies are in Polytope

Check Whether Choice Frequencies are in Polytope

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, b3 A <- 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)

See Also

inside