DesignMatrix               package:cmm               R Documentation

_D_e_s_i_g_n_M_a_t_r_i_x

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

     Returns hierarchical model design matrix

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

     DesignMatrix(var, suffconfigs, dim, SubsetCoding = "Automatic", MakeSubsets=TRUE)

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

     var: character or numeric vector containing variables

suffconfigs: subvector or list of subvectors of 'var' indicating the
          sufficient configurations or highest order interactions in
          model

     dim: numeric vector indicating the dimension of 'var' (must be
          same length as 'var')

SubsetCoding: allows a (character) type or a matrix to be assigned to
          variables for each element of 'suffconfigs'

MakeSubsets: boolean, indicates whether or not to use subsets of
          'suffconfigs' (used as option in 'MarginaMatrix')

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

     The design matrix for a model mu_ij = alpha + beta_i + gamma_j, 
     where i and j each have three possible values, would be:
     'Designmatrix(c(1,2),list(c(1),c(2)),c(3,3))'. For readability,
     the use of characters is recommended for variable names, e.g.,
     'Designmatrix(c("A","B"),list(c("A"),c("B")),c(3,3))'. The
     probability vector is assumed to be a vectorized form of the
     probabilities in a table,  such that the last variable changes
     value fastest, then the before last variable, etc.  For example,
     the cells of a 2 x 3 table are arranged in vector form as
     (11,12,13,21,22,23). To achieve this, the appropriate way to
     vectorize a data frame 'dat' is using 'c(t(ftable(dat)))'.

     The optional argument 'SubsetCoding' is useful for e.g. specifying
     various regression models, a linear by nominal model, grouping
     categories of a variable, or omitting a category. 'SubsetCoding'
     has default value '"Automatic"', which is the same as the value
     '"Nominal"'. Other options are '"Linear"', '"Quadratic"',
     '"Cubic"', '"Quartic"', '"Quintic"', '"Identity"'.\ The command
     'ConstraintMatrix' is often more useful than 'DesignMatrix' for
     specification of models for use in 'SampleStatistics',
     'ModelStatistics' or 'MarginalModelFit'.

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

     matrix

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

     W. P. Bergsma w.p.bergsma@lse.ac.uk

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

     Bergsma, W. P. (1997). _Marginal models for categorical data_.
     Tilburg, The Netherlands: Tilburg University Press. <URL:
     http://stats.lse.ac.uk/bergsma/pdf/bergsma_phdthesis.pdf>

     Bergsma, W. P., Croon, M. A., & Hagenaars, J. A. P. (2009).
     Marginal models for dependent, clustered, and longitudunal
     categorical data. Berlin: Springer.

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

     'ConstraintMatrix', 'MarginalMatrix', 'DirectSum'

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

     # Design matrix for independence model
     var <- c("A","B")
     suffconfigs <- list(c("A"),c("B"))
     dim <- c(3, 3)
     DesignMatrix(var,suffconfigs,dim)
     # notation in one line
     DesignMatrix(c("A","B"),list(c("A"),c("B")),c(3,3))

     # Design matrix for saturated model, two short specifications giving same result
     DesignMatrix(c("A","B"),c("A","B"),c(3,3))
     DesignMatrix(c("A","B"),list(c("A","B")),c(3,3))

     # Design matrix for univariate quadratic regression model
     var <- c("A")
     suffconfigs <- c("A")
     dim <- c(5)
     DesignMatrix(var,suffconfigs,dim,SubsetCoding=list(c("A"),"Quadratic"))
     # notation in one line
     DesignMatrix(c("A"),c("A"),c(5),SubsetCoding=list(c("A"),"Quadratic"))

     # Design matrix for linear by nominal model, various methods:
     # simplest method which assumes equidistant centered scores:
     DesignMatrix(c("A","B"),c("A","B"),c(3,3),SubsetCoding=list(c("A","B"),list("Linear","Nominal")))
     # alternative specification with same result as above:
     DesignMatrix(c("A","B"),c("A","B"),c(3,3),SubsetCoding=list(c("A","B"),list(rbind(c(-1,0,1)),rbind(c(1,0,0),c(0,1,0)))))
     # specifying your own category scores
     scores=c(1,2,5);
     DesignMatrix(c("A","B"),c("A","B"),c(3,3),SubsetCoding=list(c("A","B"),list(rbind(scores),"Nominal")))

     # Design matrix for nominal by nominal model, equating parameters of last two categories of second variable:
     DesignMatrix(c("A","B"),c("A","B"),c(3,3),SubsetCoding=list(c("A","B"),list("Nominal",rbind(c(1,0,0),c(0,1,1)))))

