class_docstr: StepM multiple comparison procedure of Romano and Wolf.
  
  Parameters
  ----------
  benchmark : {ndarray, Series}
      T element array of benchmark model *losses*
  models : {ndarray, DataFrame}
      T by k element array of alternative model *losses*
  size : float, optional
      Value in (0,1) to use as the test size when implementing the
      comparison. Default value is 0.05.
  block_size : int, optional
      Length of window to use in the bootstrap.  If not provided, sqrt(T)
      is used.  In general, this should be provided and chosen to be
      appropriate for the data.
  reps : int, optional
      Number of bootstrap replications to uses.  Default is 1000.
  bootstrap : str, optional
      Bootstrap to use.  Options are
      'stationary' or 'sb': Stationary bootstrap (Default)
      'circular' or 'cbb': Circular block bootstrap
      'moving block' or 'mbb': Moving block bootstrap
  studentize : bool, optional
      Flag indicating to studentize loss differentials. Default is True
  nested : bool, optional
      Flag indicating to use a nested bootstrap to compute variances for
      studentization.  Default is False.  Note that this can be slow since
      the procedure requires k extra bootstraps.
  seed : {int, Generator, RandomState}, optional
      Seed value to use when creating the bootstrap used in the comparison.
      If an integer or None, the NumPy default_rng is used with the seed
      value.  If a Generator or a RandomState, the argument is used.
  
  Notes
  -----
  The size controls the Family Wise Error Rate (FWER) since this is a
  multiple comparison procedure.  Uses SPA and the consistent selection
  procedure.
  
  See [1]_ for detail.
  
  See Also
  --------
  SPA
  
  References
  ----------
  .. [1] Romano, J. P., & Wolf, M. (2005). Stepwise multiple testing as
     formalized data snooping. Econometrica, 73(4), 1237-1282.
class_docstr_tok: ["StepM","multiple","comparison","procedure","of","Romano","and","Wolf",".","Parameters","--","--","--","--","--","benchmark",":","{","ndarray",",","Series","}","T","element","array","of","benchmark","model","*","losses","*","models",":","{","ndarray",",","DataFrame","}","T","by","k","element","array","of","alternative","model","*","losses","*","size",":","float",",","optional","Value","in","(","0,1",")","to","use","as","the","test","size","when","implementing","the","comparison",".","Default","value","is","0.05.","block_size",":","int",",","optional","Length","of","window","to","use","in","the","bootstrap",".","If","not","provided",",","sqrt","(","T",")","is","used",".","In","general",",","this","should","be","provided","and","chosen","to","be","appropriate","for","the","data",".","reps",":","int",",","optional","Number","of","bootstrap","replications","to","uses",".","Default","is","1000.","bootstrap",":","str",",","optional","Bootstrap","to","use",".","Options","are","'stationary","'","or","'sb","'",":","Stationary","bootstrap","(","Default",")","'circular","'","or","'cbb","'",":","Circular","block","bootstrap","'moving","block","'","or","'mbb","'",":","Moving","block","bootstrap","studentize",":","bool",",","optional","Flag","indicating","to","studentize","loss","differentials",".","Default","is","True","nested",":","bool",",","optional","Flag","indicating","to","use","a","nested","bootstrap","to","compute","variances","for","studentization",".","Default","is","False",".","Note","that","this","can","be","slow","since","the","procedure","requires","k","extra","bootstraps",".","seed",":","{","int",",","Generator",",","RandomState","}",",","optional","Seed","value","to","use","when","creating","the","bootstrap","used","in","the","comparison",".","If","an","integer","or","None",",","the","NumPy","default_rng","is","used","with","the","seed","value",".","If","a","Generator","or","a","RandomState",",","the","argument","is","used",".","Notes","--","--","-","The","size","controls","the","Family","Wise","Error","Rate","(","FWER",")","since","this","is","a","multiple","comparison","procedure",".","Uses","SPA","and","the","consistent","selection","procedure",".","See","[","1","]","_","for","detail",".","See","Also","--","--","--","--","SPA","References","--","--","--","--","--","..","[","1","]","Romano",",","J.","P.",",","&","Wolf",",","M.","(","2005",")",".","Stepwise","multiple","testing","as","formalized","data","snooping",".","Econometrica",",","73","(","4",")",",","1237-1282","."]
docstr: List of the indices or column names of the superior models
  
  Returns
  -------
  list
      List of superior models.  Contains column indices if models is an
      array or contains column names if models is a DataFrame.
docstr_tok: ["List","of","the","indices","or","column","names","of","the","superior","models","Returns","--","--","--","-","list","List","of","superior","models",".","Contains","column","indices","if","models","is","an","array","or","contains","column","names","if","models","is","a","DataFrame","."]
code: def superior_models(self) -> list[Hashable]:
      """
      List of the indices or column names of the superior models
  
      Returns
      -------
      list
          List of superior models.  Contains column indices if models is an
          array or contains column names if models is a DataFrame.
      """
      if self._superior_models is None:
          msg = (
              "compute must be called before accessing superior_models"
          )
          raise RuntimeError(msg)
      return self._superior_models
  
imports: from __future__ import annotations
  from collections.abc import Hashable, Sequence
  import copy
  from typing import cast
  import warnings
  import numpy
  import pandas
  from arch.bootstrap.base import CircularBlockBootstrap, MovingBlockBootstrap, StationaryBootstrap
  from arch.typing import ArrayLike, ArrayLike2D, BoolArray, Float64Array, Int64Array, IntArray, Literal, Uint32Array
  from arch.utility.array import DocStringInheritor, ensure2d
label_desc: Use image node_id 3 for calling the StepM obj's underlying member method code with example usage: obj.superior_models() and returns: self