

proj {base}                                  R Documentation

_P_r_o_j_e_c_t_i_o_n_s _o_f _M_o_d_e_l_s

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

     `proj' returns a matrix or list of matrices giving the
     projections of the data onto the terms of a linear
     model.  It is most frequently used for `aov' models.

_U_s_a_g_e_:

     proj     (object, ...)
     proj.aov    (object, onedf = FALSE, unweighted.scale = FALSE)
     proj.aovlist(object, onedf = FALSE, unweighted.scale = FALSE)
     proj.default(object, onedf = TRUE, ...)
     proj.lm     (object, onedf = FALSE, unweighted.scale = FALSE)

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

  object: An object of class `"lm"' or a class inheriting
          from it, or an object with a similar structure
          including in particular components `qr' and
          `effects'.

   onedf: A logical flag. If `TRUE', a projection is
          returned for all the columns of the model matrix.
          If `FALSE', the single-column projections are col-
          lapsed by terms of the model (as represented in
          the analysis of variance table).

unweighted.scale: If the fit producing `object' used
          weights, this determines if the projections corre-
          spond to weighted or unweighted observations.

     ...: Swallow and ignore any other arguments.

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

     A projection is given for each stratum of the object,
     so for `aov' models with an `Error' term the result is
     a list of projections.

_V_a_l_u_e_:

     A projection matrix or (for multi-stratum objects) a
     list of projection matrices.

     Each projection is a matrix with a row for each obser-
     vations and either a column for each term (`onedf =
     FALSE') or for each coefficient (`onedf = TRUE'). Pro-
     jection matrices from the default method have orthogo-
     nal columns representing the projection of the response
     onto the column space of the Q matrix from the QR
     decomposition.  The fitted values are the sum of the
     projections, and the sum of squares for each column is
     the reduction in sum of squares from fitting that col-
     umn (after those to the left of it).

     The methods for `lm' and `aov' models add a column to
     the projection matrix giving the residuals (the projec-
     tion of the data onto the orthogonal complement of the
     model space).

     Strictly, when `onedf = FALSE' the result is not a pro-
     jection, but the columns represent sums of projections
     onto the columns of the model matrix corresponding to
     that term. In this case the matrix does not depend on
     the coding used.

_A_u_t_h_o_r_(_s_)_:

     B.D. Ripley

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

     `aov', `lm', `model.tables'

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

     N <- c(0,1,0,1,1,1,0,0,0,1,1,0,1,1,0,0,1,0,1,0,1,1,0,0)
     P <- c(1,1,0,0,0,1,0,1,1,1,0,0,0,1,0,1,1,0,0,1,0,1,1,0)
     K <- c(1,0,0,1,0,1,1,0,0,1,0,1,0,1,1,0,0,0,1,1,1,0,1,0)
     yield <- c(49.5,62.8,46.8,57.0,59.8,58.5,55.5,56.0,62.8,55.8,69.5,
     55.0, 62.0,48.8,45.5,44.2,52.0,51.5,49.8,48.8,57.2,59.0,53.2,56.0)

     npk <- data.frame(block=gl(6,4), N=factor(N), P=factor(P),
                       K=factor(K), yield=yield)
     npk.aov <- aov(yield ~ block + N*P*K, npk)
     proj(npk.aov)

     ## as a test, not particularly sensible
     options(contrasts=c("contr.helmert", "contr.treatment"))
     npk.aovE <- aov(yield ~  N*P*K + Error(block), npk)
     proj(npk.aovE)

