class_docstr: Principal Orthogonal Complement Thresholding Estimator (POET)
  
  Reference:
      [1] Fan, J., Liao, Y., & Mincheva, M. (2013). Large covariance estimation by thresholding principal orthogonal complements.
          Journal of the Royal Statistical Society. Series B: Statistical Methodology, 75(4), 603–680. https://doi.org/10.1111/rssb.12016
      [2] http://econweb.rutgers.edu/yl1114/papers/poet/POET.m
class_docstr_tok: ["Principal","Orthogonal","Complement","Thresholding","Estimator","(","POET",")","Reference",":","[","1","]","Fan",",","J.",",","Liao",",","Y.",",","&","Mincheva",",","M.","(","2013",")",".","Large","covariance","estimation","by","thresholding","principal","orthogonal","complements",".","Journal","of","the","Royal","Statistical","Society",".","Series","B",":","Statistical","Methodology",",","75","(","4",")",",","603\u2013680",".","https",":","\/\/doi.org\/10.1111\/rssb.12016","[","2","]","http",":","\/\/econweb.rutgers.edu\/yl1114\/papers\/poet\/POET.m"]
docstr: Args:
      num_factors (int): number of factors (if set to zero, no factor model will be used).
      thresh (float): the positive constant for thresholding.
      thresh_method (str): thresholding method, which can be
          - 'soft': soft thresholding.
          - 'hard': hard thresholding.
          - 'scad': scad thresholding.
      kwargs: see `RiskModel` for more information.
docstr_tok: ["Args",":","num_factors","(","int",")",":","number","of","factors","(","if","set","to","zero",",","no","factor","model","will","be","used",")",".","thresh","(","float",")",":","the","positive","constant","for","thresholding",".","thresh_method","(","str",")",":","thresholding","method",",","which","can","be","-","'soft","'",":","soft","thresholding",".","-","'hard","'",":","hard","thresholding",".","-","'scad","'",":","scad","thresholding",".","kwargs",":","see","`","RiskModel","`","for","more","information","."]
code: def __init__(
      self,
      num_factors: int = 0,
      thresh: float = 1.0,
      thresh_method: str = "soft",
      **kwargs,
  ):
      """
      Args:
          num_factors (int): number of factors (if set to zero, no factor model will be used).
          thresh (float): the positive constant for thresholding.
          thresh_method (str): thresholding method, which can be
              - 'soft': soft thresholding.
              - 'hard': hard thresholding.
              - 'scad': scad thresholding.
          kwargs: see `RiskModel` for more information.
      """
      super().__init__(**kwargs)
  
      assert (
          num_factors >= 0
      ), "`num_factors` requires a positive integer"
      self.num_factors = num_factors
  
      assert thresh >= 0, "`thresh` requires a positive float number"
      self.thresh = thresh
  
      assert thresh_method in [
          self.THRESH_HARD,
          self.THRESH_SOFT,
          self.THRESH_SCAD,
      ], "`thresh_method` should be `soft`/`hard`/`scad`"
      self.thresh_method = thresh_method
  
imports: import numpy
  from qlib.model.riskmodel import RiskModel
label_desc: Use image node_id 1 to create a new POETCovEstimator object from inherited base classes: RiskModel with example: obj = POETCovEstimator(num_factors, thresh, thresh_method)