# NDK_SARIMAX_GOF

 int __stdcall NDK_SARIMAX_GOF ( double * pData, double ** pFactors, size_t nSize, size_t nFactors, double * fBetas, double mean, double sigma, WORD nIntegral, double * phis, size_t p, double * thetas, size_t q, WORD nSIntegral, WORD nSPeriod, double * sPhis, size_t sP, double * sThetas, size_t sQ, GOODNESS_OF_FIT_FUNC retType, double * retVal )

Computes the log-likelihood ((LLF), Akaike Information Criterion (AIC) or other goodness of fit function of the SARIMA-X model.

Returns
status code of the operation
Return values
 NDK_SUCCESS Operation successful NDK_FAILED Operation unsuccessful. See Macros for full list.
Parameters
[in] pData is the response univariate time series data (a one dimensional array).
[in] pFactors  is the exogneous factors time series data (each column is a separate factor, and each row is an observation).
[in] nSize  is the number of observations.
[in] nFactors is the number of exognous factors
[in] mean is the ARIMA/SARIMA model's long-run mean/trend (i.e. mu). If missing (i.e. NaN), then it is assumed zero.
[in] sigma is the standard deviation of the model's residuals/innovations.
[in] nIntegral is the non-seasonal difference order
[in] phis are the coefficients's values of the non-seasonal AR component
[in] p is the order of the non-seasonal AR component
[in] thetas are the coefficients's values of the non-seasonal MA component
[in] q is the order of the non-seasonal MA component
[in] nSIntegral  is the seasonal difference
[in] nSPeriod  is the number of observations per one period (e.g. 12=Annual, 4=Quarter)
[in] sPhis are the coefficients's values of the seasonal AR component
[in] sP is the order of the seasonal AR component
[in] sThetas  are the coefficients's values of the seasonal MA component
[in] sQ is the order of the seasonal MA component
[in] retType  is a switch to select a fitness measure
Order   Description
1 Log-Likelihood Function (LLF) (default)
2 Akaike Information Criterion (AIC)
3 Schwarz/Bayesian Information Criterion (SIC/BIC)
4 Hannan-Quinn information criterion (HQC)
[out] retVal is the calculated goodness of fit value.
Remarks
1. The underlying model is described here.
2. The time series is homogeneous or equally spaced
3. The time series may include missing values (e.g. NaN) at either end.
4. Each column in the explanatory factors input matrix (i.e. X) corresponds to a separate variable.
5. Each row in the explanatory factors input matrix (i.e. X) corresponds to an observation.
6. Observations (i.e. rows) with missing values in X or Y are assumed missing.
7. The number of rows of the explanatory variable (X) must be at equal to the number of rows of the response variable (Y).
8. The residuals/innovations standard deviation (i.e. $$\sigma$$) should be greater than zero.
9. ARMA model has independent and normally distributed residuals with constant variance. The ARMA log-likelihood function becomes: $\ln L^* = -T\left(\ln 2\pi \hat \sigma^2+1\right)/2$ Where:
• $$\hat \sigma$$ is the standard deviation of the residuals.
10. The value of the input argument - period - must be greater than one, or the function returns #VALUE!.
11. The value of the seasonal difference argument - sD - must be greater than one, or the function returns #VALUE!.
12. The maximum likelihood estimation (MLE) is a statistical method for fitting a model to the data and provides estimates for the model's parameters.
13. The intercept or the regression constant term input argument is optional. If omitted, a zero value is assumed.
14. For the input argument - Beta:
• The input argument is optional and can be omitted, in which case no regression component is included (i.e. plain SARIMA).
• The order of the parameters defines how the exogenous factor input arguments are passed.
15. The long-run mean argumen (mean) of the differenced regression residuals can take any value. If ommitted, a zero value is assumed.
16. The residuals/innovations standard deviation (sigma) must greater than zero.
17. For the input argument - phi (parameters of the non-seasonal AR component):
• The input argument is optional and can be omitted, in which case no non-seasonal AR component is included.
• The order of the parameters starts with the lowest lag
• The order of the non-seasonal AR component model is solely determined by the order of the last value in the array with a numeric value (vs. missing, or error).
18. For the input argument - theta (parameters of the non-seasonal MA component):
• The input argument is optional and can be omitted, in which case no non-seasonal MA component is included.
• The order of the parameters starts with the lowest lag
• The order of the non-seasonal MA component model is solely determined by the order of the last value in the array with a numeric value (vs. missing, or error).
19. For the input argument - sPhi (parameters of the seasonal AR component):
• The input argument is optional and can be omitted, in which case no seasonal AR component is included.
• The order of the parameters starts with the lowest lag
• The order of the seasonal AR component model is solely determined by the order of the last value in the array with a numeric value (vs. missing, or error).
20. For the input argument - sTheta (parameters of the seasonal MA component):
• The input argument is optional and can be omitted, in which case no seasonal MA component is included.
• The order of the parameters starts with the lowest lag
• The order of the seasonal MA component model is solely determined by the order of the last value in the array with a numeric value (vs. missing, or error).
21. The non-seasonal integration order - d - is optional and can be omitted, in which case d is assumed zero.
22. The seasonal integration order - sD - is optional and can be omitted, in which case sD is assumed zero.
23. The season length - s - is optional and can be omitted, in which case s is assumed zero (i.e. Plain ARIMA).
Requirements