class_docstr: Recursive least squares
  
  Parameters
  ----------
  endog : array_like
      The observed time-series process :math:`y`
  exog : array_like
      Array of exogenous regressors, shaped nobs x k.
  constraints : array_like, str, or tuple
          - array : An r x k array where r is the number of restrictions to
            test and k is the number of regressors. It is assumed that the
            linear combination is equal to zero.
          - str : The full hypotheses to test can be given as a string.
            See the examples.
          - tuple : A tuple of arrays in the form (R, q), ``q`` can be
            either a scalar or a length p row vector.
  
  Notes
  -----
  Recursive least squares (RLS) corresponds to expanding window ordinary
  least squares (OLS).
  
  This model applies the Kalman filter to compute recursive estimates of the
  coefficients and recursive residuals.
  
  References
  ----------
  .. [*] Durbin, James, and Siem Jan Koopman. 2012.
     Time Series Analysis by State Space Methods: Second Edition.
     Oxford University Press.
class_docstr_tok: ["Recursive","least","squares","Parameters","--","--","--","--","--","endog",":","array_like","The","observed","time-series","process",":","math",":","`","y","`","exog",":","array_like","Array","of","exogenous","regressors",",","shaped","nobs","x","k.","constraints",":","array_like",",","str",",","or","tuple","-","array",":","An","r","x","k","array","where","r","is","the","number","of","restrictions","to","test","and","k","is","the","number","of","regressors",".","It","is","assumed","that","the","linear","combination","is","equal","to","zero",".","-","str",":","The","full","hypotheses","to","test","can","be","given","as","a","string",".","See","the","examples",".","-","tuple",":","A","tuple","of","arrays","in","the","form","(","R",",","q",")",",","``","q","``","can","be","either","a","scalar","or","a","length","p","row","vector",".","Notes","--","--","-","Recursive","least","squares","(","RLS",")","corresponds","to","expanding","window","ordinary","least","squares","(","OLS",")",".","This","model","applies","the","Kalman","filter","to","compute","recursive","estimates","of","the","coefficients","and","recursive","residuals",".","References","--","--","--","--","--","..","[","*","]","Durbin",",","James",",","and","Siem","Jan","Koopman",".","2012",".","Time","Series","Analysis","by","State","Space","Methods",":","Second","Edition",".","Oxford","University","Press","."]
code: def smooth(self, return_ssm=False, **kwargs):
      # Get the state space output
      result = super().smooth(
          [],
          transformed=True,
          cov_type="none",
          return_ssm=True,
          **kwargs,
      )
  
      # Wrap in a results object
      if not return_ssm:
          params = result.filtered_state[:, -1]
          cov_kwds = {
              "custom_cov_type": "nonrobust",
              "custom_cov_params": result.filtered_state_cov[:, :, -1],
              "custom_description": (
                  "Parameters and covariance matrix"
                  " estimates are RLS estimates"
                  " conditional on the entire sample."
              ),
          }
          result = RecursiveLSResultsWrapper(
              RecursiveLSResults(
                  self,
                  params,
                  result,
                  cov_type="custom",
                  cov_kwds=cov_kwds,
              )
          )
  
      return result
  
imports: import numpy
  import pandas
  from statsmodels.compat.pandas import Appender
  from statsmodels.tools.data import _is_using_pandas
  from statsmodels.tsa.statespace.mlemodel import MLEModel, MLEResults, MLEResultsWrapper, PredictionResults, PredictionResultsWrapper
  from statsmodels.tsa.statespace.tools import concat
  from statsmodels.tools.tools import Bunch
  from statsmodels.tools.decorators import cache_readonly
  import statsmodels.base.wrapper
label_desc: Use image node_id 6 for calling the RecursiveLS obj's underlying member method code with example usage: obj.smooth(return_ssm) and returns: result