# Nonparametric Tests

## Empirical Likelihood Tests

Empirical likelihood is a nonparametric method of inference based on a data driven likelihood ratio function. Like the bootstrap and jackknife, empirical likelihood inference does not require us to specify a family of distributions for the data. Like parametric likelihood methods, empirical likelihood makes an automatic determination of the shape of confidence regions […] and has very favorable asymptotic power properties. It can be thought of as a bootstrap that does not resample and as a likelihood without parametric assumptions. (Owen 2001)

## Tests For Mu

One sample and one-way tests are implemented. Note the distribution does not need to be symmetrical and less data is needed.

    library(LRTesteR)
    library(statmod)

    set.seed(1)
    x <- rinvgauss(n = 30, mean = 2.25, dispersion = 2)
    empirical_mu_one_sample(x = x, mu = 1, alternative = "two.sided")
    #> Log Likelihood Statistic: 4.36
    #> p value: 0.037
    #> Confidence Level: 95%
    #> Confidence Interval: (1.028, 2.486)

The one way test does not require nuisance parameters or sample size to be equal.

    set.seed(1)
    x <- c(
      rinvgauss(n = 35, mean = 1, dispersion = 1),
      rinvgauss(n = 40, mean = 2, dispersion = 3),
      rinvgauss(n = 45, mean = 3, dispersion = 5)
    )
    fctr <- c(rep(1, 35), rep(2, 40), rep(3, 45))
    fctr <- factor(fctr, levels = c("1", "2", "3"))
    empirical_mu_one_way(x = x, fctr = fctr, conf.level = .95)
    #> Log Likelihood Statistic: 50.89
    #> p value: 0
    #> Confidence Level Of Set: 95%
    #> Individual Confidence Level: 98.3%
    #> Confidence Interval For Group 1: (0.759, 1.688)
    #> Confidence Interval For Group 2: (1.472, 5.16)
    #> Confidence Interval For Group 3: (2.481, 14.701)

## Tests For A Quantile

Any quantile can be tested. In this example, the null hypothesis is the median (Q equal to .50) is 0 (value argument).

    set.seed(2)
    x <- rnorm(n = 30, mean = 0, sd = 1)
    empirical_quantile_one_sample(x = x, Q = .50, value = 0, alternative = "two.sided")
    #> Log Likelihood Statistic: 2.16
    #> p value: 0.142
    #> Confidence Level: 95%
    #> Confidence Interval: (-0.24, 0.792)

Other quantiles can be tested as well.

    # Q1
    empirical_quantile_one_sample(x = x, Q = .25, value = 0, alternative = "two.sided")
    #> Log Likelihood Statistic: 2
    #> p value: 0.157
    #> Confidence Level: 95%
    #> Confidence Interval: (-1.2, 0.036)

    # Q3
    empirical_quantile_one_sample(x = x, Q = .75, value = 0, alternative = "two.sided")
    #> Log Likelihood Statistic: 19.58
    #> p value: 0
    #> Confidence Level: 95%
    #> Confidence Interval: (0.418, 1.782)

In one-way analysis, equality of a quantile is tested. Here, a common median (Q equal to .50) is tested.

    set.seed(1)
    x <- c(
      rnorm(n = 35, mean = 1, sd = 1),
      rnorm(n = 40, mean = 2, sd = 1.25),
      rnorm(n = 45, mean = 3, sd = 1.5)
    )
    fctr <- c(rep(1, 35), rep(2, 40), rep(3, 45))
    fctr <- factor(fctr, levels = c("1", "2", "3"))
    empirical_quantile_one_way(x = x, Q = .50, fctr = fctr)
    #> Log Likelihood Statistic: 39.74
    #> p value: 0
    #> Confidence Level Of Set: 95%
    #> Individual Confidence Level: 98.3%
    #> Confidence Interval For Group 1: (0.695, 1.594)
    #> Confidence Interval For Group 2: (1.507, 2.712)
    #> Confidence Interval For Group 3: (2.308, 3.576)