class_docstr: Fit a Gaussian mean/variance regression model.
  
  This class fits a one-dimensional Gaussian process model with
  parametrized mean and covariance structures to grouped data.  For
  each group, there is an independent realization of a latent
  Gaussian process indexed by an observed real-valued time
  variable..  The data consist of the Gaussian process observed at a
  finite number of `time` values.
  
  The process mean and variance can be lined to covariates.  The
  mean structure is linear in the covariates.  The covariance
  structure is non-stationary, and is defined parametrically through
  'scaling', and 'smoothing' parameters.  The covariance of the
  process between two observations in the same group is a function
  of the distance between the time values of the two observations.
  The scaling and smoothing parameters can be linked to covariates.
  
  The observed data are modeled as the sum of the Gaussian process
  realization and (optionally) independent white noise.  The standard
  deviation of the white noise can be linked to covariates.
  
  The data should be provided in 'long form', with a group label to
  indicate which observations belong to the same group.
  Observations in different groups are always independent.
  
  Parameters
  ----------
  endog : array_like
      The dependent variable.
  exog : array_like
      The design matrix for the mean structure
  exog_scale : array_like
      The design matrix for the scaling structure
  exog_smooth : array_like
      The design matrix for the smoothness structure
  exog_noise : array_like
      The design matrix for the additive white noise. The
      linear predictor is the log of the white noise standard
      deviation.  If None, there is no additive noise (the
      process is observed directly).
  time : array_like (1-dimensional)
      The univariate index values, used to calculate distances
      between observations in the same group, which determines
      their correlations.
  groups : array_like (1-dimensional)
      The group values.
  cov : a ProcessCovariance instance
      Defaults to GaussianCovariance.
docstr: Split the packed parameter vector into blocks.
code: def unpack(self, z):
      """
      Split the packed parameter vector into blocks.
      """
  
      # Mean parameters
      pm = self.exog.shape[1]
      mnpar = z[0:pm]
  
      # Standard deviation parameters
      pv = self.exog_scale.shape[1]
      scpar = z[pm : pm + pv]
  
      # Smoothness parameters
      ps = self.exog_smooth.shape[1]
      smpar = z[pm + pv : pm + pv + ps]
  
      # Observation white noise standard deviation.
      # Empty if has_noise = False.
      nopar = z[pm + pv + ps :]
  
      return mnpar, scpar, smpar, nopar
  
imports: import numpy
  import pandas
  import patsy
  import statsmodels.base.model
  from statsmodels.regression.linear_model import OLS
  import collections
  from scipy.optimize import minimize
  from statsmodels.iolib import summary2
  from statsmodels.tools.numdiff import approx_fprime
  import warnings
label_desc: Use image node_id 4 for calling the ProcessMLE obj's underlying member method code with example usage: obj.unpack(z) and returns: mnpar,  scpar,  smpar,  nopar