class_docstr: Single index semiparametric model ``y = g(X * b) + e``.
  
  Parameters
  ----------
  endog : array_like
      The dependent variable
  exog : array_like
      The independent variable(s)
  var_type : str
      The type of variables in X:
  
          - c: continuous
          - o: ordered
          - u: unordered
  
  Attributes
  ----------
  b : array_like
      The linear coefficients b (betas)
  bw : array_like
      Bandwidths
  
  Methods
  -------
  fit(): Computes the fitted values ``E[Y|X] = g(X * b)``
         and the marginal effects ``dY/dX``.
  
  References
  ----------
  See chapter on semiparametric models in [1]
  
  Notes
  -----
  This model resembles the binary choice models. The user knows
  that X and b interact linearly, but ``g(X * b)`` is unknown.
  In the parametric binary choice models the user usually assumes
  some distribution of g() such as normal or logistic.
docstr: Provide something sane to print.
docstr_tok: ["Provide","something","sane","to","print","."]
code: def __repr__(self):
      """Provide something sane to print."""
      repr = "Single Index Model \n"
      repr += "Number of variables: K = " + str(self.K) + "\n"
      repr += "Number of samples:   nobs = " + str(self.nobs) + "\n"
      repr += "Variable types:      " + self.var_type + "\n"
      repr += "BW selection method: cv_ls" + "\n"
      repr += "Estimator type: local constant" + "\n"
      return repr
  
imports: import numpy
  from scipy import optimize
  from scipy.stats.mstats import mquantiles
  from statsmodels.nonparametric.api import KDEMultivariate, KernelReg
  from statsmodels.nonparametric._kernel_base import gpke, LeaveOneOut, _get_type_pos, _adjust_shape
label_desc: Use image node_id 5 for calling the SingleIndexModel obj's underlying member method code with example usage: obj.__repr__() and returns: repr