class_docstr: Defines univariate time series input. The dataset can include regressors,
  but only one metric is designated as the target metric to forecast.
  
  Loads time series into a standard format. Provides statistics, plotting
  functions, and ability to generate future dataframe for prediction.
  
  Attributes
  ----------
  df: `pandas.DataFrame`
      Data frame containing timestamp and value, with standardized column names for internal use
      (TIME_COL, VALUE_COL). Rows are sorted by time index, and missing gaps between dates are filled
      in so that dates are spaced at regular intervals. Values are adjusted for anomalies
      according to ``anomaly_info``.
      The index can be timezone aware (but TIME_COL is not).
  y: `pandas.Series`, dtype float64
      Value of time series to forecast.
  time_stats: `dict`
      Summary statistics about the timestamp column.
  value_stats: `dict`
      Summary statistics about the value column.
  original_time_col: `str`
      Name of time column in original input data.
  original_value_col: `str`
      Name of value column in original input data.
  regressor_cols: `list` [`str`]
      A list of regressor columns in the training and prediction DataFrames.
  lagged_regressor_cols: `list` [`str`]
      A list of additional columns needed for lagged regressors in the training and prediction DataFrames.
  last_date_for_val: `datetime.datetime` or None, default None
      Date or timestamp corresponding  to last non-null value in ``df[original_value_col]``.
  last_date_for_reg: `datetime.datetime` or None, default None
      Date or timestamp corresponding to last non-null value in ``df[regressor_cols]``.
      If ``regressor_cols`` is None, ``last_date_for_reg`` is None.
  last_date_for_lag_reg: `datetime.datetime` or None, default None
      Date or timestamp corresponding to last non-null value in ``df[lagged_regressor_cols]``.
      If ``lagged_regressor_cols`` is None, ``last_date_for_lag_reg`` is None.
  train_end_date: `datetime.datetime`
      Last date or timestamp in ``fit_df``. It is always less than or equal to
      minimum non-null values of ``last_date_for_val`` and ``last_date_for_reg``.
  fit_cols: `list` [`str`]
      A list of columns used in the training and prediction DataFrames.
  fit_df: `pandas.DataFrame`
      Data frame containing timestamp and value, with standardized column names for internal use.
      Will be used for fitting (train, cv, backtest).
  fit_y: `pandas.Series`, dtype float64
      Value of time series for fit_df.
  freq: `str`
      timeseries frequency, DateOffset alias, e.g. {'T' (minute), 'H', D', 'W', 'M' (month end), 'MS' (month start),
      'Y' (year end), 'Y' (year start)}
      See https://pandas.pydata.org/pandas-docs/stable/user_guide/timeseries.html#offset-aliases
  anomaly_info : `dict` or `list` [`dict`] or None, default None
      Anomaly adjustment info. Anomalies in ``df``
      are corrected before any forecasting is done.
      See ``self.load_data()``
  df_before_adjustment : `pandas.DataFrame` or None, default None
      ``self.df`` before adjustment by ``anomaly_info``.
      Used by ``self.plot()`` to show the adjustment.
class_docstr_tok: ["Defines","univariate","time","series","input",".","The","dataset","can","include","regressors",",","but","only","one","metric","is","designated","as","the","target","metric","to","forecast",".","Loads","time","series","into","a","standard","format",".","Provides","statistics",",","plotting","functions",",","and","ability","to","generate","future","dataframe","for","prediction",".","Attributes","--","--","--","--","--","df",":","`","pandas.DataFrame","`","Data","frame","containing","timestamp","and","value",",","with","standardized","column","names","for","internal","use","(","TIME_COL",",","VALUE_COL",")",".","Rows","are","sorted","by","time","index",",","and","missing","gaps","between","dates","are","filled","in","so","that","dates","are","spaced","at","regular","intervals",".","Values","are","adjusted","for","anomalies","according","to","``","anomaly_info","``",".","The","index","can","be","timezone","aware","(","but","TIME_COL","is","not",")",".","y",":","`","pandas.Series","`",",","dtype","float64","Value","of","time","series","to","forecast",".","time_stats",":","`","dict","`","Summary","statistics","about","the","timestamp","column",".","value_stats",":","`","dict","`","Summary","statistics","about","the","value","column",".","original_time_col",":","`","str","`","Name","of","time","column","in","original","input","data",".","original_value_col",":","`","str","`","Name","of","value","column","in","original","input","data",".","regressor_cols",":","`","list","`","[","`","str","`","]","A","list","of","regressor","columns","in","the","training","and","prediction","DataFrames",".","lagged_regressor_cols",":","`","list","`","[","`","str","`","]","A","list","of","additional","columns","needed","for","lagged","regressors","in","the","training","and","prediction","DataFrames",".","last_date_for_val",":","`","datetime.datetime","`","or","None",",","default","None","Date","or","timestamp","corresponding","to","last","non-null","value","in","``","df","[","original_value_col","]","``",".","last_date_for_reg",":","`","datetime.datetime","`","or","None",",","default","None","Date","or","timestamp","corresponding","to","last","non-null","value","in","``","df","[","regressor_cols","]","``",".","If","``","regressor_cols","``","is","None",",","``","last_date_for_reg","``","is","None",".","last_date_for_lag_reg",":","`","datetime.datetime","`","or","None",",","default","None","Date","or","timestamp","corresponding","to","last","non-null","value","in","``","df","[","lagged_regressor_cols","]","``",".","If","``","lagged_regressor_cols","``","is","None",",","``","last_date_for_lag_reg","``","is","None",".","train_end_date",":","`","datetime.datetime","`","Last","date","or","timestamp","in","``","fit_df","``",".","It","is","always","less","than","or","equal","to","minimum","non-null","values","of","``","last_date_for_val","``","and","``","last_date_for_reg","``",".","fit_cols",":","`","list","`","[","`","str","`","]","A","list","of","columns","used","in","the","training","and","prediction","DataFrames",".","fit_df",":","`","pandas.DataFrame","`","Data","frame","containing","timestamp","and","value",",","with","standardized","column","names","for","internal","use",".","Will","be","used","for","fitting","(","train",",","cv",",","backtest",")",".","fit_y",":","`","pandas.Series","`",",","dtype","float64","Value","of","time","series","for","fit_df",".","freq",":","`","str","`","timeseries","frequency",",","DateOffset","alias",",","e.g",".","{","'T","'","(","minute",")",",","'","H","'",",","D","'",",","'","W","'",",","'M","'","(","month","end",")",",","'MS","'","(","month","start",")",",","'","Y","'","(","year","end",")",",","'","Y","'","(","year","start",")","}","See","https",":","\/\/pandas.pydata.org\/pandas-docs\/stable\/user_guide\/timeseries.html","#","offset-aliases","anomaly_info",":","`","dict","`","or","`","list","`","[","`","dict","`","]","or","None",",","default","None","Anomaly","adjustment","info",".","Anomalies","in","``","df","``","are","corrected","before","any","forecasting","is","done",".","See","``","self.load_data","(",")","``","df_before_adjustment",":","`","pandas.DataFrame","`","or","None",",","default","None","``","self.df","``","before","adjustment","by","``","anomaly_info","``",".","Used","by","``","self.plot","(",")","``","to","show","the","adjustment","."]
docstr: Basic descriptive stats on the timeseries value column.
  
  Returns
  -------
  value_stats : `dict` [`str`, `float`]
      Dict with keys: count, mean, std, min, 25%, 50%, 75%, max
docstr_tok: ["Basic","descriptive","stats","on","the","timeseries","value","column",".","Returns","--","--","--","-","value_stats",":","`","dict","`","[","`","str","`",",","`","float","`","]","Dict","with","keys",":","count",",","mean",",","std",",","min",",","25","%",",","50","%",",","75","%",",","max"]
code: def describe_value_col(self):
      """Basic descriptive stats on the timeseries value column.
  
      Returns
      -------
      value_stats : `dict` [`str`, `float`]
          Dict with keys: count, mean, std, min, 25%, 50%, 75%, max
      """
      if self.df is None:
          raise RuntimeError("Must load data before describing values")
      self.value_stats = self.df[
          VALUE_COL
      ].describe()  # count is the total number of provided timepoints
      log_message("Input value stats:", LoggingLevelEnum.INFO)
      log_message(repr(self.value_stats), LoggingLevelEnum.INFO)
      return self.value_stats
  
imports: import warnings
  from datetime import datetime
  from functools import partial
  from typing import Dict
  from typing import List
  from typing import Optional
  from typing import Union
  import numpy
  import pandas
  from greykite.common.constants import TIME_COL
  from greykite.common.constants import VALUE_COL
  from greykite.common.logging import LoggingLevelEnum
  from greykite.common.logging import log_message
  from greykite.common.time_properties import describe_timeseries
  from greykite.common.time_properties import get_canonical_data
  from greykite.common.viz.timeseries_plotting import add_groupby_column
  from greykite.common.viz.timeseries_plotting import flexible_grouping_evaluation
  from greykite.common.viz.timeseries_plotting import grouping_evaluation
  from greykite.common.viz.timeseries_plotting import plot_multivariate
  from greykite.common.viz.timeseries_plotting import plot_univariate
  from greykite.framework.constants import MEAN_COL_GROUP
  from greykite.framework.constants import OVERLAY_COL_GROUP
  from greykite.framework.constants import QUANTILE_COL_GROUP
label_desc: Use image node_id 4 for calling the UnivariateTimeSeries obj's underlying member method code with example usage: obj.describe_value_col() and returns: self