boolean               package:boolean               R Documentation

_P_a_r_t_i_a_l-_O_b_s_e_r_v_a_b_i_l_i_t_y _L_o_g_i_t _o_r _P_r_o_b_i_t _M_o_d_e_l_s _f_o_r _T_e_s_t_i_n_g 
_B_o_o_l_e_a_n _H_y_p_o_t_h_e_s_e_s

_D_e_s_c_r_i_p_t_i_o_n:

     Boolean logit and probit are a family of partial-observability
     _n_-variate models designed to permit researchers to model causal
     complexity, or multiple causal "paths" to a given outcome (e.g., a
     situation in which either a or b will produce y, one in which (a
     or b) and c produce y, and so forth).

_U_s_a_g_e:

     boolean(structure, method, maxoptions = "", optimizer="nlm",
             safety=1, bootstrap=FALSE, bootsize=100)

_A_r_g_u_m_e_n_t_s:

structure: Structure of equation to be estimated, in standard y ~ f(x)
          form, using '&' to represent the Boolean operator "and" and
          '|' to represent the Boolean operator "or."  (Note that the
          syntax requires that constants be entered explicitly; see the
          entry for 'boolprep' for details.)  Be sure to enter the
          correct functional form and balance parentheses; if in doubt,
          or just for convenience, use the 'boolprep' command to
          prepare structure prior to estimation. 

  method: Either "logit" or "probit". 

maxoptions: Maximization options (see 'nlm' or 'optim' for details). 

optimizer: Either "nlm" or "optim". 

  safety: Number of search attempts.  The likelihood functions implied
          by Boolean procedures can become quite convoluted; in such
          cases, multiple searches from different starting points can
          be run. Works only when using 'nlm'. 

bootstrap: If TRUE, bootstraps standard errors. 

bootsize: Number of iterations if bootstrap=TRUE. 

_D_e_t_a_i_l_s:

     Boolean permits estimation of Boolean logit and probit equations
     (see Braumoeller 2003 for derivation).  Boolean logit and probit
     model situations in which any number of antecedent conditions (a,
     b, c, ...) occur with probabilities that can be modeled using
     standard logit or probit curves, and the antecedent conditions
     combine in a manner described by Boolean logic to produce the
     dependent variable.  This phenomenon has been referred to by
     various names, including interaction effects, causal complexity,
     multiple "causal paths," conjunctural causation, and
     substitutability.  To take a straightforward example, a theory
     might suggest that only the conjunction of two events produces
     some phenomenon of interest - i.e., for a binary dependent
     variable y, Pr(y=1|a,b) = Pr(a) x Pr(b); that the probability of
     a's occurrence is influenced by variables x1...x4; and that the
     probability of b's occurrence is influenced by variables x2 and
     x5...x8.  If, instead, the probability that the phenomenon of
     interest will occur is equal to the probability that one or the
     other of the antecedent events will occur ("or" rather than
     "and"), Pr(y=1|a,b) = 1 - ([1-Pr(a)] x [1-Pr(b)]).  In principle
     any combination of "and"s and "or"s can be modeled - (A and B) or
     C produces Y, (A and B and C) or (D and E) produce Y, etc., etc.,
     with each antecedent condition being influenced by some vector of
     independent variables.  Boolean logit and probit are designed for
     use in such situations.

_V_a_l_u_e:

     Returns an object of class booltest, with slots @Calculus,
     @LogLik, @Variables, @Coefficients, @StandardErrors, @Iterations,
     @Hessian, @Gradient, @Zscore, @Probz, @Conf95lo, @Conf95hi,
     @pstructure, and @method (note that some slots may be left empty
     if the relevant information is not furnished by the maximizer).

_N_o_t_e:

     Examining profile likelihoods with 'boolprof' is highly
     recommended.  Boolean logit and probit are partial observability
     models, which are generically starved for information; as a
     result, maximum likelihood estimation can encounter problems with
     plateaus in likelihood functions even with very large n.

_A_u_t_h_o_r(_s):

     Bear F. Braumoeller, Harvard University, bfbraum@fas.harvard.edu 
      Jacob Kline, Harvard University, jkline@fas.harvard.edu

_R_e_f_e_r_e_n_c_e_s:

     Braumoeller, Bear F. (2003) "Causal Complexity and the Study of
     Politics." _Political Analysis_ 11(3): 209-233.

_S_e_e _A_l_s_o:

     'boolprep' to prepare structure of equation, 'boolfirst' to graph
     first differences after estimation, and 'boolprof' to produce
     profile likelihoods after estimation.

_E_x_a_m_p_l_e_s:

     library("boolean")
     set.seed(50)
     x1<-rnorm(1000)
     x2<-rnorm(1000)
     x3<-rnorm(1000)
     x4<-rnorm(1000)
     x5<-rnorm(1000)
     x6<-rnorm(1000)
     e1<-rnorm(1000)/3
     e2<-rnorm(1000)/3
     e3<-rnorm(1000)/3
     y<-1-(1-pnorm(-2+0.33*x1+0.66*x2+1*x3+e1)*1-(pnorm(1+1.5*x4-0.25*x5+e2)*pnorm(1+0.2*x6+e3)))
     y <- y>runif(1000)
     answer <- boolean(y ~( ((cons+x1+x2+x3)|((cons+x4+x5)&(cons+x6))) ), method="probit")

     ## Examine coefficients, standard errors, etc.
     summary(answer)

     ## Examine "summary" output plus Hessian, gradient, etc.
     show(answer)

     ## Plot first differences for model
     plot(answer)

     ## Plot profiles
     plot(answer, panel="boolprof")

