Type: | Package |
Title: | Khmaladze Martingale Transformation Goodness-of-Fit Test |
Version: | 2.2.0 |
Date: | 2020-10-17 |
Author: | Jiwoong Kim <jwboys26 at gmail.com> |
Maintainer: | Jiwoong Kim <jwboys26@gmail.com> |
Description: | Consider a goodness-of-fit (GOF) problem of testing whether a random sample comes from one sample location-scale model where location and scale parameters are unknown. It is well known that Khmaladze martingale transformation method - which was proposed by Khmaladze (1981) <doi:10.1137/1126027> - provides asymptotic distribution free test for the GOF problem. This package contains one function: KhmaladzeTrans(). In this version, KhmaladzeTrans() provides test statistic and critical value of GOF test for normal, Cauchy, and logistic distributions. This package used the main algorithm proposed by Kim (2020) <doi:10.1007/s00180-020-00971-7> and tests for other distributions will be available at the later version. |
Depends: | R (≥ 3.5.0) |
License: | GPL-2 |
LazyData: | TRUE |
Imports: | Rcpp (≥ 1.0.3), ggplot2, stats, utils, Rsolnp |
LinkingTo: | Rcpp, RcppArmadillo |
RoxygenNote: | 7.1.1 |
NeedsCompilation: | yes |
Packaged: | 2020-10-20 12:06:00 UTC; Jason |
Repository: | CRAN |
Date/Publication: | 2020-10-20 12:30:02 UTC |
Obtain Critical Value Table
Description
Obtain critical values of the Khmaladze martingale transformation test for various significane levels and sample sizes
Usage
GetCV(strDist, Modified)
Arguments
strDist |
the name of the null distribution for the hypothesis test: Normal, Cauchy, or Logistic. Other distributions such as Gumbel, Weibull and Frechet will be available in later versions. |
Modified |
a logical value which specifies whether or not to use the modeifed version of the test: False calls the original version while True calls the modified version. |
Value
A 10-by-6 table of critical values for various significance levles (0.1, 0.075, 0.05, 0.025, 0.01) and sample sizes (10,20,...,100).
See Also
KhmaladzeTrans()
Examples
### Critical values of the original test for a normal distribution
strDist = "Normal"
Modified=FALSE
CritValue = GetCV(strDist, Modified)
## Critical values of the modified test for the logistic distribution
strDist = "Logistic"
Modified=TRUE
CritValue = GetCV(strDist, Modified)
##Critical values of the modified test for the Cauchy distribution
strDist = "Cauchy"
Modified=TRUE
CritValue = GetCV(strDist, Modified)
Implementing Khmaladze Martingale Transformation.
Description
Performs goodness-of-fit test through Khmaladze matringale transformation
Usage
KhmaladzeTrans(X, Modified = FALSE, strDist, bGraph = FALSE, nNum = 10)
Arguments
X |
a random sample of n observations |
Modified |
a logical value which specifies whether or not to use the modeifed version of the test: False calls the original version while True calls the modified version. |
strDist |
the name of the null distribution for the hypothesis test: Normal, Cauchy, or Logistic. Other distributions such as Gumbel, Weibull and Frechet will be available in later versions. |
bGraph |
a logical value which specifies whether or not to get the graph of the objective function of the martingale transformation. |
nNum |
the number of ticks on each segmented interval when drawing the graph of the objective function. The default is 10. Bigger value will result in a smoother graph. |
Value
A list of the following values:
- opt.x
-
When Modified is False, opt.x is the value of x where the optimum of the objective function - which is also the test statistic - occurs.
When Modified is True, opt.x is the vector of the value of x's where the infimum and supremum of
U_{n}
occur.
- test.stat
-
When Modified is False, test.stat is the test statistic obtained through Khmaladze martingale transformation.
When Modified is True, test.stat is the vector of the supremum of
U_{n}
, the infimum ofU_{n}
, and the difference of them.
- graph.data
a data frame which includes the information of the objective function.
- graph
a ggplot object which includes the graph of the objective function.
- intervals
a list of segmented intervals over which the graph of the objective function is defined.
- mu
the point estimate for the location parameter mu
- sigma
the point estimate for the scale parameter sigma
References
[1] Khmaladze, E.V., Koul, H.L. (2004). Martingale transforms goodness-of-fit tests in regression models. Ann. Statist., 32. 995-1034
[2] E.V. Khmaladze, H.L. Koul (2009). Goodness-of-fit problem for errors in nonparametric regression: distribution free approach. Ann. Statist., 37(6A) 3165-3185.
[3] Kim, Jiwoong (2020). Implementation of a goodness-of-fit test through Khmaladze martingale transformation. Comp. Stat., 35(4): 1993-2017
Examples
####################
n = 10
X = rnorm(n, 1,3) # Generate a random sample of n observations from N(1,3)
strDist = "Normal"
Modified=FALSE
lResult = KhmaladzeTrans(X, Modified, strDist, bGraph=TRUE, nNum=10)
KMT_OptimalX = lResult$opt.x
KMT_TestStat = lResult$test.stat
KMT_DM = lResult$graph.data
KMT_Graph = lResult$graph
#### Draw the graph of the objective function
KMT_Graph
KMT_Intervals = lResult$intervals
KMT_Muhat = lResult$mu
KMT_Sigmahat = lResult$sigma
#####################
#####################
n = 10
X = rlogis(n, 1,2) # Generate a random sample of n observations from the logistic distribution
strDist = "Logistic"
Modified=TRUE
lResult = KhmaladzeTrans(X, Modified, strDist, bGraph=TRUE, nNum=10)
KMT_Optimal_Positive_X = lResult$opt.x[1]
KMT_Optimal_Negative_X = lResult$opt.x[2]
KMT_Postive_TestStat = lResult$test.stat[1]
KMT_Negative_TestStat = lResult$test.stat[2]
KMT_TestStat = lResult$test.stat[3]
KMT_DM = lResult$graph.data
KMT_Graph = lResult$graph
#### Draw the graph of the objective function
KMT_Graph
KMT_Intervals = lResult$intervals
KMT_Muhat = lResult$mu
KMT_Sigmahat = lResult$sigma
#####################
#####################
n = 10
X = rcauchy(n, 0,1) # Generate a random sample of n observations from Cauchy distribution
strDist = "Cauchy"
Modified=FALSE
lResult = KhmaladzeTrans(X, Modified, strDist, bGraph=TRUE, nNum=10)
KMT_OptimalX = lResult$opt.x
KMT_TestStat = lResult$test.stat
KMT_DM = lResult$graph.data
KMT_Graph = lResult$graph
#### Draw the graph of the objective function
KMT_Graph
KMT_Intervals = lResult$intervals
KMT_Muhat = lResult$mu
KMT_Sigmahat = lResult$sigma
#####################
Tables of integrations and critical values
Description
A dataset containing integration values used for fast computation and critical values for hypothesis test
Usage
data(Tables)
Details
#'@format A list containing tables of integrations and critical values for normal, logistic and Cauchy distributions:
- Integration.Table.Normal
2561-by-3 table for a normal distribution
- Integration.Table.Logistic1
1281-by-3 table for the logistic distribution
- Integration.Table.Logistic2
1281-by-1 table for the logistic distribution
- Integration.Table.Cauchy
2561-by-3 table for the Cauchy distribution
- Critical.Value.for.OriginalTest.Normal
100-by-6 table of critical values of the original test for a normal distribution
- Critical.Value.for.ModifiedTest.Normal
100-by-6 table of critical values of the modified test for a normal distribution
- Critical.Value.for.OriginalTest.Logistic
100-by-6 table of critical values of the original test for the logistic distribution
- Critical.Value.for.ModifiedTest.Logistic
100-by-6 table of critical values of the modified test for the logistic distribution
- Critical.Value.for.OriginalTest.Cauchy
100-by-6 table of critical values of the original test for the Cauchy distribution
- Critical.Value.for.ModifiedTest.Cauchy
100-by-6 table of critical values of the modified test for the Cauchy distribution