class_docstr: Multivariate Analysis of Variance
  
  The implementation of MANOVA is based on multivariate regression and does
  not assume that the explanatory variables are categorical. Any type of
  variables as in regression is allowed.
  
  Parameters
  ----------
  endog : array_like
      Dependent variables. A nobs x k_endog array where nobs is
      the number of observations and k_endog is the number of dependent
      variables.
  exog : array_like
      Independent variables. A nobs x k_exog array where nobs is the
      number of observations and k_exog is the number of independent
      variables. An intercept is not included by default and should be added
      by the user. Models specified using a formula include an intercept by
      default.
  
  Attributes
  ----------
  endog : ndarray
      See Parameters.
  exog : ndarray
      See Parameters.
  
  Notes
  -----
  MANOVA is used though the `mv_test` function, and `fit` is not used.
  
  The ``from_formula`` interface is the recommended method to specify
  a model and simplifies testing without needing to manually configure
  the contrast matrices.
  
  References
  ----------
  .. [*] ftp://public.dhe.ibm.com/software/analytics/spss/documentation/
     statistics/20.0/en/client/Manuals/IBM_SPSS_Statistics_Algorithms.pdf
class_docstr_tok: ["Multivariate","Analysis","of","Variance","The","implementation","of","MANOVA","is","based","on","multivariate","regression","and","does","not","assume","that","the","explanatory","variables","are","categorical",".","Any","type","of","variables","as","in","regression","is","allowed",".","Parameters","--","--","--","--","--","endog",":","array_like","Dependent","variables",".","A","nobs","x","k_endog","array","where","nobs","is","the","number","of","observations","and","k_endog","is","the","number","of","dependent","variables",".","exog",":","array_like","Independent","variables",".","A","nobs","x","k_exog","array","where","nobs","is","the","number","of","observations","and","k_exog","is","the","number","of","independent","variables",".","An","intercept","is","not","included","by","default","and","should","be","added","by","the","user",".","Models","specified","using","a","formula","include","an","intercept","by","default",".","Attributes","--","--","--","--","--","endog",":","ndarray","See","Parameters",".","exog",":","ndarray","See","Parameters",".","Notes","--","--","-","MANOVA","is","used","though","the","`","mv_test","`","function",",","and","`","fit","`","is","not","used",".","The","``","from_formula","``","interface","is","the","recommended","method","to","specify","a","model","and","simplifies","testing","without","needing","to","manually","configure","the","contrast","matrices",".","References","--","--","--","--","--","..","[","*","]","ftp",":","\/\/public.dhe.ibm.com\/software\/analytics\/spss\/documentation\/","statistics\/20.0\/en\/client\/Manuals\/IBM_SPSS_Statistics_Algorithms.pdf"]
docstr: Linear hypotheses testing
  
  Parameters
  ----------
  %(hypotheses_doc)s
  skip_intercept_test : bool
      If true, then testing the intercept is skipped, the model is not
      changed.
      Note: If a term has a numerically insignificant effect, then
      an exception because of emtpy arrays may be raised. This can
      happen for the intercept if the data has been demeaned.
  
  Returns
  -------
  results: MultivariateTestResults
  
  Notes
  -----
  Testing the linear hypotheses
  
      L * params * M = 0
  
  where `params` is the regression coefficient matrix for the
  linear model y = x * params
  
  If the model is not specified using the formula interfact, then the
  hypotheses test each included exogenous variable, one at a time. In
  most applications with categorical variables, the ``from_formula``
  interface should be preferred when specifying a model since it
  provides knowledge about the model when specifying the hypotheses.
docstr_tok: ["Linear","hypotheses","testing","Parameters","--","--","--","--","--","%","(","hypotheses_doc",")","s","skip_intercept_test",":","bool","If","true",",","then","testing","the","intercept","is","skipped",",","the","model","is","not","changed",".","Note",":","If","a","term","has","a","numerically","insignificant","effect",",","then","an","exception","because","of","emtpy","arrays","may","be","raised",".","This","can","happen","for","the","intercept","if","the","data","has","been","demeaned",".","Returns","--","--","--","-","results",":","MultivariateTestResults","Notes","--","--","-","Testing","the","linear","hypotheses","L","*","params","*","M","=","0","where","`","params","`","is","the","regression","coefficient","matrix","for","the","linear","model","y","=","x","*","params","If","the","model","is","not","specified","using","the","formula","interfact",",","then","the","hypotheses","test","each","included","exogenous","variable",",","one","at","a","time",".","In","most","applications","with","categorical","variables",",","the","``","from_formula","``","interface","should","be","preferred","when","specifying","a","model","since","it","provides","knowledge","about","the","model","when","specifying","the","hypotheses","."]
code: def mv_test(self, hypotheses=None, skip_intercept_test=False):
      """
      Linear hypotheses testing
  
      Parameters
      ----------
      %(hypotheses_doc)s
      skip_intercept_test : bool
          If true, then testing the intercept is skipped, the model is not
          changed.
          Note: If a term has a numerically insignificant effect, then
          an exception because of emtpy arrays may be raised. This can
          happen for the intercept if the data has been demeaned.
  
      Returns
      -------
      results: MultivariateTestResults
  
      Notes
      -----
      Testing the linear hypotheses
  
          L * params * M = 0
  
      where `params` is the regression coefficient matrix for the
      linear model y = x * params
  
      If the model is not specified using the formula interfact, then the
      hypotheses test each included exogenous variable, one at a time. In
      most applications with categorical variables, the ``from_formula``
      interface should be preferred when specifying a model since it
      provides knowledge about the model when specifying the hypotheses.
      """
      if hypotheses is None:
          if (
              hasattr(self, "data")
              and self.data is not None
              and hasattr(self.data, "design_info")
          ):
              terms = self.data.design_info.term_name_slices
              hypotheses = []
              for key in terms:
                  if skip_intercept_test and key == "Intercept":
                      continue
                  L_contrast = np.eye(self.exog.shape[1])[terms[key], :]
                  hypotheses.append([key, L_contrast, None])
          else:
              hypotheses = []
              for i in range(self.exog.shape[1]):
                  name = "x%d" % (i)
                  L = np.zeros([1, self.exog.shape[1]])
                  L[0, i] = 1
                  hypotheses.append([name, L, None])
  
      results = _multivariate_ols_test(
          hypotheses, self._fittedmod, self.exog_names, self.endog_names
      )
  
      return MultivariateTestResults(
          results, self.endog_names, self.exog_names
      )
  
file_path: statsmodels/statsmodels/multivariate/manova.py
imports: import numpy
  from statsmodels.compat.pandas import Substitution
  from statsmodels.base.model import Model
  from .multivariate_ols import MultivariateTestResults
  from .multivariate_ols import _multivariate_ols_fit
  from .multivariate_ols import _multivariate_ols_test, _hypotheses_doc
label_desc: Use image node_id 3 for calling the MANOVA obj's underlying member method code with example usage: obj.mv_test(hypotheses, skip_intercept_test) and returns: MultivariateTestResults