Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

A collection of hypothesis tests and confidence intervals based on the likelihood ratio.

License

NotificationsYou must be signed in to change notification settings

gmcmacran/LRTesteR

Repository files navigation

R-CMD-checkCRAN status

LRTesteR provides likelihood ratio tests and confidence intervals formany common distributions.

Example 1: Test lambda of a poisson distribution

To test lambda, simply call poisson_lambda_one_sample.

library(LRTesteR)set.seed(1)x<- rpois(n=100,lambda=1)poisson_lambda_one_sample(x=x,lambda=1,alternative="two.sided")#> Log Likelihood Statistic: 0.01#> p value: 0.92#> Confidence Level: 95%#> Confidence Interval: (0.826, 1.22)

Example 2: Confidence Interval

To get a confidence interval, set the conf.level to the desiredconfidence. Below gets a two sided 90% confidence interval for scalefrom a Cauchy random variable.

set.seed(1)x<- rcauchy(n=100,location=3,scale=5)cauchy_scale_one_sample(x=x,scale=5,alternative="two.sided",conf.level=.90)#> Log Likelihood Statistic: 1.21#> p value: 0.271#> Confidence Level: 90%#> Confidence Interval: (4.64, 7.284)

Setting alternative to “less” gets a lower one sided interval.

cauchy_scale_one_sample(x=x,scale=5,alternative="less",conf.level=.90)#> Log Likelihood Statistic: 1.1#> p value: 0.865#> Confidence Level: 90%#> Confidence Interval: (0, 6.93)

Setting it to “greater” gets an upper one sided interval.

cauchy_scale_one_sample(x=x,scale=5,alternative="greater",conf.level=.90)#> Log Likelihood Statistic: 1.1#> p value: 0.135#> Confidence Level: 90%#> Confidence Interval: (4.878, Inf)

Example 3: One-way Analysis

One-way ANOVA is generalized to all distributions. Here gamma randomvariables are created with different shapes. The one way test has asmall p value and provides confidence intervals with 95% confidence forthe whole set.

set.seed(1)x<- c(rgamma(n=50,shape=1,rate=2), rgamma(n=50,shape=2,rate=2), rgamma(n=50,shape=3,rate=2))fctr<- c(rep(1,50), rep(2,50), rep(3,50))fctr<-factor(fctr,levels= c("1","2","3"))gamma_shape_one_way(x=x,fctr=fctr,conf.level=.95)#> Log Likelihood Statistic: 68.59#> p value: 0#> Confidence Level Of Set: 95%#> Individual Confidence Level: 98.3%#> Confidence Interval For Group 1: (0.65, 1.515)#> Confidence Interval For Group 2: (1.376, 3.376)#> Confidence Interval For Group 3: (1.691, 4.192)

Example 4: Empirical Likelihood

The empirical likelihood tests do not require any distributionalassumptions and work with less data.

set.seed(1)x<- rnorm(n=25,mean=1,sd=1)empirical_mu_one_sample(x=x,mu=1,alternative="two.sided")#> Log Likelihood Statistic: 0.73#> p value: 0.392#> Confidence Level: 95%#> Confidence Interval: (0.752, 1.501)

The$\chi^2$ approximation

As implemented, all functions depend on the asymptotic$\chi^2$approximation. To get a sense of accuracy of this approximation forlarge samples, the likelihood tests are compared to the exact tests.

X is normally distributed with mu equal to 3 and standard deviationequal to 2. The two intervals for$\mu$ are similar.

set.seed(1)x<- rnorm(n=500,mean=3,sd=2)exactTest<- t.test(x=x,mu=2.5,alternative="two.sided",conf.level=.95)likelihoodTest<- gaussian_mu_one_sample(x=x,mu=2.5,alternative="two.sided",conf.level=.95)as.numeric(exactTest$conf.int)#> [1] 2.867461 3.223115likelihoodTest$conf.int#> [1] 2.867729 3.222847

The confidence intervals for variance are similar as well.

set.seed(1)x<- rnorm(n=500,mean=3,sd=2)sigma2<-1.5^2# Variance, not standard deviation.exactTest<-EnvStats::varTest(x=x,sigma.squared=sigma2,alternative="two.sided",conf.level=.95)likelihoodTest<- gaussian_variance_one_sample(x=x,sigma.squared=sigma2,alternative="two.sided",conf.level=.95)as.numeric(exactTest$conf.int)#> [1] 3.631734 4.655834likelihoodTest$conf.int#> [1] 3.620303 4.639384

Changing to p for a binomial random variable, the confidence intervalsare similar yet again.

exactTest<-stats::binom.test(x=250,n=500,p=.50,alternative="two.sided",conf.level=.95)likelihoodTest<- binomial_p_one_sample(x=250,n=500,p=.50,alternative="two.sided",conf.level=.95)as.numeric(exactTest$conf.int)#> [1] 0.4552856 0.5447144likelihoodTest$conf.int#> [1] 0.4562579 0.5437421

When sample size is small, similarity will decrease. When exact methodsare available, they are the better option. The utility of the likelihoodbased approach is its generality. Many tests in this package don’t haveother well known options.

Estimated asymptotic type I and type II error rates can be foundhere.

About

A collection of hypothesis tests and confidence intervals based on the likelihood ratio.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages


[8]ページ先頭

©2009-2025 Movatter.jp