def _transparams(self, params): """ Transforms params to induce stationarity/invertability. Reference --------- Jones(1980) """ p = self.k_ar k = self.k_trend newparams = params.copy() newparams[k:k+p] = _ar_transparams(params[k:k+p].copy()) return newparams
def _transparams(self, params): """ Transforms params to induce stationarity/invertability. Reference --------- Jones(1980) """ p = self.k_ar k = self.k_trend newparams = params.copy() newparams[k:k+p] = _ar_transparams(params[k:k+p].copy()) return newparams
def _transparams(self, params): """ Transforms params to induce stationarity/invertability. Reference --------- Jones(1980) """ k_ar, k_ma = self.k_ar, self.k_ma k = self.k_exog + self.k_trend newparams = np.zeros_like(params) # just copy exogenous parameters if k != 0: newparams[:k] = params[:k] # AR Coeffs if k_ar != 0: newparams[k:k + k_ar] = _ar_transparams(params[k:k + k_ar].copy()) # MA Coeffs if k_ma != 0: newparams[k + k_ar:] = _ma_transparams(params[k + k_ar:].copy()) return newparams
def _transparams(self, params): """ Transforms params to induce stationarity/invertability. Reference --------- Jones(1980) """ k_ar, k_ma = self.k_ar, self.k_ma k = self.k_exog + self.k_trend newparams = np.zeros_like(params) # just copy exogenous parameters if k != 0: newparams[:k] = params[:k] # AR Coeffs if k_ar != 0: newparams[k:k+k_ar] = _ar_transparams(params[k:k+k_ar].copy()) # MA Coeffs if k_ma != 0: newparams[k+k_ar:] = _ma_transparams(params[k+k_ar:].copy()) return newparams
def test_ar_transparams(): arr = np.array([-1000.0, -100.0, -10.0, 1.0, 0.0, 1.0, 10.0, 100.0, 1000.0]) assert (not np.isnan(tools._ar_transparams(arr)).any())
loglikelihood = DiscrepancyLogLikelihood( problem, armax_result, transparams=transparams ) ################# <-----Changed 21/10 ##################### logmodelprior = LogPrior[info_id](transform_to_model_param, transform_from_model_param) # Priors for discrepancy logarmaprior = ArmaNormalCentredLogPrior( armax_result, 0.25) # Note for Chon: Worth checking out more wider/narrower priors logprior = pints.ComposedLogPrior(logmodelprior, logarmaprior) logposterior = pints.LogPosterior(loglikelihood, logprior) # Check logposterior is working fine init_arma_ar = _ar_transparams(armax_result.arparams.copy( )) ################# <-----Changed 21/10 ##################### init_arma_ma = _ma_transparams(armax_result.maparams.copy( )) ################# <-----Changed 21/10 ##################### init_arma = np.append( init_arma_ar, init_arma_ma) ################# <-----Changed 21/10 ##################### priorparams = np.copy(info.base_param) transform_priorparams = transform_from_model_param(priorparams) priorparams = np.append(priorparams, init_arma) transform_priorparams = np.append(transform_priorparams, init_arma) print('Posterior at prior parameters: ', logposterior(transform_priorparams)) for _ in range(10): assert(logposterior(transform_priorparams) ==\ logposterior(transform_priorparams))
def test_ar_transparams(): arr = np.array([-1000.0, -100.0, -10.0, 1.0, 0.0, 1.0, 10.0, 100.0, 1000.0]) assert (not np.isnan(tools._ar_transparams(arr)).any())