code: def create_ds_asymmetric(
      num_points: int,
      t_dof: List[float] = [10, 10],
      noise_mult: List[float] = [0.25, 0.25],
      xi: List[float] = [1 / 50.0, 1 / 25.0],
      points_per_sinusoid: int = 100,
      magnitude_sin: float = 1,
  ):
      """
      Creates noisy sinusoid.
      (Noise distributed as student t with degrees of freedom = t_dof.)
      Returns tensor of shape (1, 1, num_points).
  
      Arguments:
        num_points: int, number of points in the dataset.
        t_dof: [int, int], degrees of freedom for Students'-t distribution for [lower, upper] noise respectively.
        noise_mult: [float, float], standard deviation for [lower, upper] noise respectively.
        points_per_sinusoid: int, datapoints per sine period
        magnitude_sin: float, magnitude of sine amplitude
      """
      end = num_points / points_per_sinusoid * 2 * np.pi
      sinusoid = np.sin(np.linspace(0, end, num_points)) * magnitude_sin
  
      idx = 0
      noise_lower = (
          np.random.standard_t(t_dof[idx], num_points) * noise_mult[idx]
      )
      noise_lower = np.minimum(0, noise_lower)
  
      idx = 1
      noise_upper = (
          np.random.standard_t(t_dof[idx], num_points) * noise_mult[idx]
      )
      noise_upper = np.maximum(0, noise_upper)
  
      values = sinusoid + noise_lower + noise_upper + 5.0
      values = add_spikes_asymmetric(values, xi=xi)
      return torch.tensor(values.reshape(1, 1, -1))
  
file_path: gluonts/src/gluonts/nursery/spliced_binned_pareto/data_functions.py
imports: from typing import List
  import numpy
  from scipy import stats
  import torch
label_desc: Use image node_id 5 for calling a global function with example usage: create_ds_asymmetric(num_points, t_dof, noise_mult, xi, points_per_sinusoid, magnitude_sin) and returns: torch