class_docstr: Minimal implementation of WLS optimized for performance.
  
  Parameters
  ----------
  endog : array_like
      1-d endogenous response variable. The dependent variable.
  exog : array_like
      A nobs x k array where `nobs` is the number of observations and `k`
      is the number of regressors. An intercept is not included by default
      and should be added by the user. See
      :func:`statsmodels.tools.add_constant`.
  weights : array_like, optional
      1d array of weights.  If you supply 1/W then the variables are pre-
      multiplied by 1/sqrt(W).  If no weights are supplied the default value
      is 1 and WLS reults are the same as OLS.
  check_endog : bool, optional
      Flag indicating whether to check for inf/nan in endog.
      If True and any are found, ValueError is raised.
  check_weights : bool, optional
      Flag indicating whether to check for inf/nan in weights.
      If True and any are found, ValueError is raised.
  
  Notes
  -----
  Provides only resid, scale, fittedvalues, model.weights which are used by
  methods that iteratively apply WLS.
  
  Does not perform any checks on the input data for type or shape
  compatibility
class_docstr_tok: ["Minimal","implementation","of","WLS","optimized","for","performance",".","Parameters","--","--","--","--","--","endog",":","array_like","1-d","endogenous","response","variable",".","The","dependent","variable",".","exog",":","array_like","A","nobs","x","k","array","where","`","nobs","`","is","the","number","of","observations","and","`","k","`","is","the","number","of","regressors",".","An","intercept","is","not","included","by","default","and","should","be","added","by","the","user",".","See",":","func",":","`","statsmodels.tools.add_constant","`",".","weights",":","array_like",",","optional","1d","array","of","weights",".","If","you","supply","1\/W","then","the","variables","are","pre-","multiplied","by","1\/sqrt","(","W",")",".","If","no","weights","are","supplied","the","default","value","is","1","and","WLS","reults","are","the","same","as","OLS",".","check_endog",":","bool",",","optional","Flag","indicating","whether","to","check","for","inf\/nan","in","endog",".","If","True","and","any","are","found",",","ValueError","is","raised",".","check_weights",":","bool",",","optional","Flag","indicating","whether","to","check","for","inf\/nan","in","weights",".","If","True","and","any","are","found",",","ValueError","is","raised",".","Notes","--","--","-","Provides","only","resid",",","scale",",","fittedvalues",",","model.weights","which","are","used","by","methods","that","iteratively","apply","WLS",".","Does","not","perform","any","checks","on","the","input","data","for","type","or","shape","compatibility"]
code: def __init__(
      self,
      endog,
      exog,
      weights=1.0,
      check_endog=False,
      check_weights=False,
  ):
      self.endog = endog
      self.exog = exog
      self.weights = weights
      w_half = np.sqrt(weights)
      if check_weights:
          if not np.all(np.isfinite(w_half)):
              raise ValueError(self.msg.format("weights"))
  
      if check_endog:
          if not np.all(np.isfinite(endog)):
              raise ValueError(self.msg.format("endog"))
  
      self.wendog = w_half * endog
      if np.isscalar(weights):
          self.wexog = w_half * exog
      else:
          self.wexog = np.asarray(w_half)[:, None] * exog
  
imports: import numpy
  from statsmodels.tools.tools import Bunch
label_desc: Use image node_id 1 to create a new _MinimalWLS object  with example: obj = _MinimalWLS(endog, exog, weights, check_endog, check_weights)