Last data update: 2014.03.03

R: Two sided P-value from discrete distribution
twoSidedPValueFromDiscreteR Documentation

Two sided P-value from discrete distribution

Description

Function to calculate a 2-sided p-value of an observation xobs for a finite discrete distribution

Prob(X = xobs) = probs[xobs + 1]

over the range xobs in (0, 1, ..., xmax) by "squaring off" the distribution to a continuous distribution

Usage

twoSidedPValueFromDiscrete(probs, xobs)

Arguments

probs

an array containing the probabilities that X takes the values 0, 1, ..., xmax

xobs

a single observed value of X

Details

Note that the returned 2-sided p-value contains a random component, i.e. a given set of input parameters returns a different result each run

Value

A real valued randomised p-value between 0 and 1. If xobs is generated with randomly with probability probs[xobs + 1] the returned value will be uniformly distributed on the interval [0, 1].

Author(s)

Conrad Burden

Examples

pr <- dbinom(0:5,size=5,prob=0.4)
xSample <- rbinom(10000,size=5,prob=0.4)
pvalues <- c()
for(x in xSample){
  pvalues <- c(pvalues, twoSidedPValueFromDiscrete(pr,x))
	}
hist(pvalues)

Results


R version 3.3.1 (2016-06-21) -- "Bug in Your Hair"
Copyright (C) 2016 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

> library(Polyfit)
Loading required package: DESeq
Loading required package: BiocGenerics
Loading required package: parallel

Attaching package: 'BiocGenerics'

The following objects are masked from 'package:parallel':

    clusterApply, clusterApplyLB, clusterCall, clusterEvalQ,
    clusterExport, clusterMap, parApply, parCapply, parLapply,
    parLapplyLB, parRapply, parSapply, parSapplyLB

The following objects are masked from 'package:stats':

    IQR, mad, xtabs

The following objects are masked from 'package:base':

    Filter, Find, Map, Position, Reduce, anyDuplicated, append,
    as.data.frame, cbind, colnames, do.call, duplicated, eval, evalq,
    get, grep, grepl, intersect, is.unsorted, lapply, lengths, mapply,
    match, mget, order, paste, pmax, pmax.int, pmin, pmin.int, rank,
    rbind, rownames, sapply, setdiff, sort, table, tapply, union,
    unique, unsplit

Loading required package: Biobase
Welcome to Bioconductor

    Vignettes contain introductory material; view with
    'browseVignettes()'. To cite Bioconductor, see
    'citation("Biobase")', and for packages 'citation("pkgname")'.

Loading required package: locfit
locfit 1.5-9.1 	 2013-03-22
Loading required package: lattice
    Welcome to 'DESeq'. For improved performance, usability and
    functionality, please consider migrating to 'DESeq2'.
> png(filename="/home/ddbj/snapshot/RGM3/R_BC/result/Polyfit/twoSidedPValueFromDiscrete.Rd_%03d_medium.png", width=480, height=480)
> ### Name: twoSidedPValueFromDiscrete
> ### Title: Two sided P-value from discrete distribution
> ### Aliases: twoSidedPValueFromDiscrete
> ### Keywords: ~kwd1 ~kwd2
> 
> ### ** Examples
> 
> pr <- dbinom(0:5,size=5,prob=0.4)
> xSample <- rbinom(10000,size=5,prob=0.4)
> pvalues <- c()
> for(x in xSample){
+   pvalues <- c(pvalues, twoSidedPValueFromDiscrete(pr,x))
+ 	}
> hist(pvalues)
> 
> 
> 
> 
> 
> dev.off()
null device 
          1 
>