Package 'PSSIM'

Title: Test of Independence & Image Structural Similarity Measure PSSIM
Description: Test-based Image structural similarity measure and test of independence. This package implements the key functions of two tasks: (1) computing image structural similarity measure PSSIM of Wang, Maldonado and Silwal (2011) <DOI:10.1016/j.csda.2011.04.021>; and (2) test of independence between a response and a covariate in presence of heteroscedastic treatment effects proposed by Wang, Tolos, and Wang (2010) <DOI:10.1002/cjs.10068>.
Authors: Luann C. Jung, Haiyan Wang, Diego Maldonado, Sharad Silwal, Siti Tolos, Suojin Wang
Maintainer: Haiyan Wang <[email protected]>
License: GPL-2
Version: 0.1.0
Built: 2024-12-15 07:26:55 UTC
Source: CRAN

Help Index


Nearest neighbor augmentatation based on ranks

Description

The function makepseudo performs the nearest neighbor augmentation based on the rank of covariate values according to the scheme discribed on page 410-411 of Wang, Tolos and Wang (2010)

Usage

makepseudo(N, n, k, a, alltrt)

Arguments

N

total number of covariate values.

n

vector of sample sizes from all treatments

k

number of nearest neighbors

a

number of treatment levels in the data

alltrt

a matrix of dimension 3xN, whose first two rows are Y and X, and the third row gives the rank of X values within the same treatment level.

Value

A list containing the following: psudo: a 3-d array of the dimension (k, a, N) that stores the augmented observations based on k-nearest neighbor rule in Wang, Tolos and Wang (2010). index: a 3-d array of the dimension (k, a, N) that stores the index of which observation was used for augmentation.

References

Haiyan Wang, Siti Tolos, and Suojin Wang (2010). A Distribution Free Nonparametric Test to Detect Dependence Between a Response Variable and Covariate in Presence of Heteroscedastic Treatment Effects. The Canadian Journal of Statistics. 38(3), 408433. Doi:10.1002/cjs.10068

Examples

a=2; n=c(7,9); N=sum(n);  X=runif(N);
 trt=c(rep(1,n[1]), rep(2, n[2])); e=rnorm(N, 0, 0.1)
 Y=ifelse(trt==1, 4*(X-0.5)^2+e, 2*X+e)
 ranksuse=unlist(tapply(X, trt, rank) )
 alltrt=rbind(Y, X, ranksuse )
 aug=makepseudo(N,n, k=3, a, alltrt)

Index in one vector mapped to treatment and observation index

Description

Function mapindex() maps the 1-d index r=1,...,N to 2-d index i=1, ...a, j=1, ..., ni. Generally the covariate values from all treatments are stored together in one vector and r=1,...,N enumerates the values. For any integer between 1 and N, mapindex tells which treatment the rth value belongs to, and which observation in the identified treatment.

Usage

mapindex(r, n)

Arguments

r

an integer between 1 and sum(n).

n

a vector of the sample sizes.

Value

the 2-d index, where the first gives which treatment the value belongs to and the second gives which observation in that treatment.

Examples

r=5; n=c(7, 8); mapindex(r, n)
r=7; n=c(7, 8); mapindex(r, n)
r=9; n=c(7, 8); mapindex(r, n)

Mini-image data matrice for example

Description

The matrices are grayscale images in matrix format.

Usage

data(miniimagematrix)

Format

A list with two grayscale image matrices

A

A matrix for one image

B

A matrix for a second image

Examples

data(miniimagematrix)
miniimagematrix$A

Test of independence in presence of heteroscedastic treatments

Description

NPtest_indept performs the test of independence between the response variable and a single covariate when there is potentially heteroscedastic treatment effects present (see Wang, Tolos and Wang (2010)).

Usage

NPtest_indept(dat, k = 7)

Arguments

dat

A data frame with three columns named X, trt, and Y, where X is the covarite, trt is the treatment level, and Y is the response variable.

k

An odd integer to specify the number of nearest neighbors to be used in augmentation. Generally recommend to use 3, 5, or 7.

Value

A list containing the following variables:

Asys_var: the asymptotic variance for the test statistics

Tstat: the test statistic

pvalue: the p-value of the test under H0: independence between X and Y.

References

Haiyan Wang, Siti Tolos, and Suojin Wang (2010). A Distribution Free Nonparametric Test to Detect Dependence Between a Response Variable and Covariate in Presence of Heteroscedastic Treatment Effects. The Canadian Journal of Statistics. 38(3), 408433. Doi:10.1002/cjs.10068

Examples

n=64;  X=runif(n); trt=gl(2, n/2)
e=rnorm(n, 0, 0.1)
Y=ifelse(trt==1, 4*(X-0.5)^2+e, 2*X+e)
dat=data.frame(X, Y, trt)
NPtest_indept(dat, k=7)

Image structural similarity measure PSSIM based on hypothesis test

Description

PSSIM_snow computes image structural similarity PSSIM of Wang, Maldonado and Silwal (2011) using parallel programming.

Usage

PSSIM_snow(
  A,
  A1,
  nprocess = min(8, parallel::detectCores()),
  b = 64,
  a = 2,
  vs = 32,
  wavecoeff = FALSE,
  cs = 2,
  dyn = FALSE
)

Arguments

A

a grayscale image stored as a matrix.

A1

grayscale image stored as a matix. Same dimension as A.

nprocess

number of cores (workers) to use for parallel computation. Note: In personal computer, nprocess =detectCores() is good to use. On cluster machine, nprocess need to be specified to a number that is no more than its number of cores (for courtesy)

b

Number of columns in each block. Suggest to use default value 64.

a

Number of rows in each block. Suggest to use default value 2.

vs

Block shift size. Suggest to use default value 32.

wavecoeff

logical of whether the input matrices are wavelet coefficients. Currently, wavelet version is not implemented. This parameter is a placeholder for future implementation.

cs

dividing factor to split index.

dyn

logical, whether dynamic scheduling should be used.

Value

: Image structural similarity based on PSSIM. The value is in [0,1] with values close to 0 meaning the two images are different and values close to 1 meaning the two iamges are similar.

References

Haiyan Wang, Diego Maldonado, and Sharad Silwal (2011). A Nonparametric-Test-Based Structural Similarity Measure for Digital Images. Computational Statistics and Data Analysis. 55: 2925-2936. Doi:10.1016/j.csda.2011.04.021

Examples

A=miniimagematrix$A
  B=miniimagematrix$B
  # see it with image(A, axes=FALSE, col  = gray((0:255)/256) )
  PSSIM_snow(A, B, nprocess=2)

Starting and ending position in a vector

Description

Function trt_position() gives the starting and ending index of covariate values in the i1th group if all the covariate values from all treatment groups are together in a vector. E.g., covariate values in group 1 start from 1st value to the n1 th value; those in group 2 start from n1+1 and end at (n1+n2)th value. This function is for retrieving the position of an observations when the covariate values from all treatments are stored together in one vector.

Usage

trt_position(i1, n)

Arguments

i1

an integer between 1 and length(n).

n

the vector of sample sizes.

Examples

i = 2; n=c(7, 8); trt_position(i, n)