Learn R Programming

ptools (version 2.0.0)

powalt: Power for Small Sample Exact Test

Description

A helper function to calculate power for different alternative distributions

Usage

powalt(SST, p_alt, a = 0.05)

Value

A PowerSmallSamp object with slots for:

  • permutations, a dataframe that contains the exact probabilities and test statistic values for every possible permutation

  • power, the estimated power of the scenario

  • alternative, the alternative distribution of probabilities specified

  • null, the null distribution (taken from the SST object)

  • alpha, the specified alpha level

Arguments

SST

a small_samptest object created with the small_samptest function

p_alt

vector of alternative probabilities to calculate power for

a

scaler, alpha level for power estimate, default 0.05

Details

This construct a null distribution for small sample statistics for N counts in M bins. Example use cases are to see if a repeat offender have a proclivity to commit crimes on a particular day of the week (see the referenced paper). It can also be used for Benford's analysis of leading/trailing digits for small samples.

See Also

small_samptest() for generating the SST object needed to estimate the power

Examples

Run this code
# Counts for different days of the week
d <- c(3,1,2,0,0,0,0) #format N observations in M bins
res <- small_samptest(d=d,type="G")
# Power if someone only commits crime on 4 days of the week
alt_p <- c(1/4,1/4,1/4,1/4,0,0,0)
rp <- powalt(res,alt_p) #need to use previously created SST object
print(rp)

# Example for Benfords analysis
f <- 1:9
p_fd <- log10(1 + (1/f)) #first digit probabilities
#check data from Nigrini page 84
checks <- c(1927.48,27902.31,86241.90,72117.46,81321.75,97473.96,
           93249.11,89658.17,87776.89,92105.83,79949.16,87602.93,
           96879.27,91806.47,84991.67,90831.83,93766.67,88338.72,
           94639.49,83709.28,96412.21,88432.86,71552.16)
# To make example run a bit faster
checks <- checks[1:10]
# extracting the first digits
fd <- substr(format(checks,trim=TRUE),1,1)
tot <- table(factor(fd, levels=paste(f)))
resG <- small_samptest(d=tot,p=p_fd,type="Chi")
# Lets look at alt under equal probabilities (very conservative)
alt_equal <- rep(1/length(p_fd),length(p_fd))
powalt(resG,alt_equal)

Run the code above in your browser using DataLab