code: def unconstrain_stationary_univariate(constrained):
      """
      Transform constrained parameters used in likelihood evaluation
      to unconstrained parameters used by the optimizer
  
      Parameters
      ----------
      constrained : ndarray
          Constrained parameters of, e.g., an autoregressive or moving average
          component, to be transformed to arbitrary parameters used by the
          optimizer.
  
      Returns
      -------
      unconstrained : ndarray
          Unconstrained parameters used by the optimizer, to be transformed to
          stationary coefficients of, e.g., an autoregressive or moving average
          component.
  
      References
      ----------
      .. [*] Monahan, John F. 1984.
         "A Note on Enforcing Stationarity in
         Autoregressive-moving Average Models."
         Biometrika 71 (2) (August 1): 403-404.
      """
      n = constrained.shape[0]
      y = np.zeros((n, n), dtype=constrained.dtype)
      y[n - 1 :] = -constrained
      for k in range(n - 1, 0, -1):
          for i in range(k):
              y[k - 1, i] = (y[k, i] - y[k, k] * y[k, k - i - 1]) / (
                  1 - y[k, k] ** 2
              )
      r = y.diagonal()
      x = r / ((1 - r**2) ** 0.5)
      return x
  
imports: import numpy
  from scipy.linalg import solve_sylvester
  import pandas
  from statsmodels.compat.pandas import Appender
  from statsmodels.tools.data import _is_using_pandas
  from scipy.linalg.blas import find_best_blas_type
  from .None import _initialization, _representation, _kalman_filter, _kalman_smoother, _simulation_smoother, _cfa_simulation_smoother, _tools
label_desc: Use image node_id 8 for calling a global function with example usage: unconstrain_stationary_univariate(constrained) and returns: x