code: def trivariate_data(request) -> tuple[ArrayLike2D, ArrayLike2D]:
      rs = np.random.RandomState(
          [922019, 12882912, 192010, 10189, 109981]
      )
      nobs = 1000
      burn = 100
      e = rs.standard_normal((nobs + burn, 3))
      y = e.copy()
      for i in range(1, 3):
          roots = np.ones(3)
          roots[1:] = rs.random_sample(2)
          ar = -np.poly(roots)[1:]
          lags = np.arange(1, 4)
          for j in range(3, nobs + burn):
              y[j, i] = y[j - lags, i] @ ar + e[j, i]
      y[:, 0] = 10 + 0.75 * y[:, 1] + 0.25 * y[:, 2] + e[:, 0]
      y = y[burn:]
      theta = np.pi * (2 * rs.random_sample(3) - 1)
      rot = np.eye(3)
      idx = 0
      for i in range(3):
          for j in range(i + 1, 3):
              th = theta[idx]
              c = np.cos(th)
              s = np.sin(th)
              r = np.eye(3)
              r[j, j] = r[i, i] = c
              r[i, j] = -s
              r[j, i] = s
              rot = rot @ r
              idx += 1
      y = y @ rot
      if request.param:
          dt_index = pd.date_range(
              "1-1-2000", periods=nobs, freq=MONTH_END
          )
          cols = [f"y{i}" for i in range(1, 4)]
          data = pd.DataFrame(y, columns=cols, index=dt_index)
          return data.iloc[:, :1], data.iloc[:, 1:]
  
      return y[:, :1], y[:, 1:]
  
imports: from arch.compat.pandas import MONTH_END
  import numpy
  import pandas
  import pytest
  from arch.typing import ArrayLike2D, Float64Array
label_desc: Use image node_id 2 for calling a global function with example usage: trivariate_data(request) and returns: y,  y, data,  data