code: def test_fit_model_via_design_matrix_stats_models():
      """Tests the model fits via statsmodels module"""
      df = generate_test_data_for_fitting(
          n=50, seed=41, heteroscedastic=False
      )["df"]
      df["y"] = df["y"].abs() + 1
      model_formula_str = "y ~ x1_categ + x2 + x3"
      design_mat_info = design_mat_from_formula(
          df, model_formula_str, pred_cols=None, y_col=None
      )
  
      x_train = design_mat_info["x_mat"]
      y_train = design_mat_info["y"]
  
      ml_model = fit_model_via_design_matrix(
          x_train=x_train,
          y_train=y_train,
          fit_algorithm="statsmodels_ols",
      )
  
      expected = [14.0, 1.0, -3.1, -2.1, -0.3, 2.3, 0.7]
      assert list(round(ml_model.params, 1).values) == expected
  
      ml_model = fit_model_via_design_matrix(
          x_train=x_train,
          y_train=y_train,
          fit_algorithm="statsmodels_wls",
      )
      assert list(round(ml_model.params, 1).values) == expected
  
      ml_model = fit_model_via_design_matrix(
          x_train=x_train,
          y_train=y_train,
          fit_algorithm="statsmodels_gls",
      )
      assert list(round(ml_model.params, 1).values) == expected
  
      ml_model = fit_model_via_design_matrix(
          x_train=x_train,
          y_train=y_train,
          fit_algorithm="statsmodels_glm",
      )
      assert list(round(ml_model.params, 1).values) == [
          0.1,
          0,
          0,
          0,
          0,
          0,
          0,
      ]
  
imports: import warnings
  import numpy
  import pandas
  import pytest
  import scipy
  from pandas.testing import assert_frame_equal
  from patsy import dmatrices
  from greykite.algo.common.ml_models import breakdown_regression_based_prediction
  from greykite.algo.common.ml_models import design_mat_from_formula
  from greykite.algo.common.ml_models import fit_ml_model
  from greykite.algo.common.ml_models import fit_ml_model_with_evaluation
  from greykite.algo.common.ml_models import fit_model_via_design_matrix
  from greykite.algo.common.ml_models import get_h_mat
  from greykite.algo.common.ml_models import get_intercept_col_from_design_mat
  from greykite.algo.common.ml_models import predict_ml
  from greykite.algo.common.ml_models import predict_ml_with_uncertainty
  from greykite.algo.uncertainty.conditional.conf_interval import predict_ci
  from greykite.common.constants import ERR_STD_COL
  from greykite.common.constants import QUANTILE_SUMMARY_COL
  from greykite.common.constants import TimeFeaturesEnum
  from greykite.common.evaluation import EvaluationMetricEnum
  from greykite.common.evaluation import calc_pred_err
  from greykite.common.features.timeseries_features import build_time_features_df
  from greykite.common.features.timeseries_features import fourier_series_multi_fcn
  from greykite.common.features.timeseries_features import get_fourier_col_name
  from greykite.common.python_utils import assert_equal
  from greykite.common.testing_utils import gen_sliced_df
label_desc: Use image node_id 10 for calling a global function with example usage: test_fit_model_via_design_matrix_stats_models() without return types