docstr: :param dataframe: Model input data.
  :param params: Additional parameters to pass to the model for inference.
  
                 .. Note:: Experimental: This parameter may change or be removed in a future
                                         release without warning.
  
  :return: Model predictions.
docstr_tok: [":","param","dataframe",":","Model","input","data",".",":","param","params",":","Additional","parameters","to","pass","to","the","model","for","inference",".","..","Note",":",":","Experimental",":","This","parameter","may","change","or","be","removed","in","a","future","release","without","warning",".",":","return",":","Model","predictions","."]
code: def predict(
      self,
      dataframe,
      params: Optional[
          Dict[str, Any]
      ] = None,  # pylint: disable=unused-argument
  ):
      """
      :param dataframe: Model input data.
      :param params: Additional parameters to pass to the model for inference.
  
                     .. Note:: Experimental: This parameter may change or be removed in a future
                                             release without warning.
  
      :return: Model predictions.
      """
      from statsmodels.tsa.base.tsa_model import TimeSeriesModel
  
      model = self.statsmodels_model.model
      if isinstance(model, TimeSeriesModel):
          # Assume the inference dataframe has columns "start" and "end", and just one row
          # TODO: move this to a specific mlflow.statsmodels.tsa flavor? Time series models
          # often expect slightly different arguments to make predictions
          if dataframe.shape[0] != 1 or not (
              "start" in dataframe.columns
              and "end" in dataframe.columns
          ):
              raise MlflowException(
                  "prediction dataframes for a TimeSeriesModel must have exactly one row"
                  + " and include columns called start and end"
              )
  
          start_date = dataframe["start"][0]
          end_date = dataframe["end"][0]
          return self.statsmodels_model.predict(
              start=start_date, end=end_date
          )
      else:
          return self.statsmodels_model.predict(dataframe)
  
imports: import inspect
  import itertools
  import logging
  import os
  from typing import Any, Dict, Optional
  import yaml
  import mlflow
  from mlflow import pyfunc
  from mlflow.exceptions import MlflowException
  from mlflow.models import Model, ModelInputExample, ModelSignature
  from mlflow.models.model import MLMODEL_FILE_NAME
  from mlflow.models.signature import _infer_signature_from_input_example
  from mlflow.models.utils import _save_example
  from mlflow.tracking._model_registry import DEFAULT_AWAIT_MAX_SLEEP_SECONDS
  from mlflow.tracking.artifact_utils import _download_artifact_from_uri
  from mlflow.utils.autologging_utils import autologging_integration, get_autologging_config, log_fn_args_as_params, safe_patch
  from mlflow.utils.docstring_utils import LOG_MODEL_PARAM_DOCS, format_docstring
  from mlflow.utils.environment import _CONDA_ENV_FILE_NAME, _CONSTRAINTS_FILE_NAME, _PYTHON_ENV_FILE_NAME, _REQUIREMENTS_FILE_NAME, _mlflow_conda_env, _process_conda_env, _process_pip_requirements, _PythonEnv, _validate_env_arguments
  from mlflow.utils.file_utils import get_total_file_size, write_to
  from mlflow.utils.model_utils import _add_code_from_conf_to_system_path, _get_flavor_configuration, _validate_and_copy_code_paths, _validate_and_prepare_target_save_path
  from mlflow.utils.requirements_utils import _get_pinned_requirement
  from mlflow.utils.validation import _is_numeric
label_desc: Use image node_id 2 for calling the _StatsmodelsModelWrapper obj's underlying member method code with example usage: obj.predict(dataframe, params) and returns: self, self