# R/bootSignPcent.R In generalCorr: Generalized Correlations, Causal Paths and Portfolio Selection

#### Documented in bootSignPcent

```#' Probability of unambiguously correct (+ or -) sign from bootPairs output transformed
#' to percentages.
#'
#' If there are p columns of data, \code{bootSignPcent} produces a p-1 by 1 vector
#' of probabilities of correct signs assuming that the mean of n999 values
#' has the correct sign and assuming that m of the 'ui' index values inside the
#' range [-tau, tau] are neither positive nor negative but
#' indeterminate or ambiguous (being too close to zero). That is,
#' the denominator of P(+1) or P(-1) is (n999-m) if m signs are too close to zero.
#' Thus it measures the bootstrap success rate in identifying the correct sign,  when the sign
#' of the average of n999 bootstraps is assumed to be correct.
#'
#' @param out {output from bootPairs with p-1 columns and n999 rows}
#' @param tau {threshold to determine what value is too close to
#'  zero, default tau=5 is 5 percent threshold for the unanimity index ui}
#' @return  sgn {When \code{mtx} has p columns, \code{sgn}
#' reports pairwise p-1 signs  representing
#' (fixing the first column in each pair)
#' the average sign after averaging the
#' output of of \code{bootPairs(mtx)} (a n999 by p-1 matrix)
#' each containing resampled `sum' values summarizing the weighted sums
#' associated with all three  criteria from the
#' function \code{silentPairs(mtx)}
#' applied to each bootstrap sample separately.} #'
#'
#' @author Prof. H. D. Vinod, Economics Dept., Fordham University, NY
#' @references Vinod, H. D. `Generalized Correlation and Kernel Causality with
#'  Applications in Development Economics' in Communications in
#'  Statistics -Simulation and Computation, 2015,
#'  \doi{10.1080/03610918.2015.1122048}
#' @references Vinod, H. D. and Lopez-de-Lacalle, J. (2009). 'Maximum entropy bootstrap
#'  for time series: The meboot R package.' Journal of Statistical Software,
#'  Vol. 29(5), pp. 1-19.
#' @references Vinod, H. D. Causal Paths and Exogeneity Tests
#' in {Generalcorr} Package for Air Pollution and Monetary Policy
#' (June 6, 2017). Available at SSRN: \url{https://www.ssrn.com/abstract=2982128}
#' @concept bootstrap
#' @concept  meboot
#' @concept  kernel regression
#' @concept  pairwise comparisons
#' @examples
#' \dontrun{
#' options(np.messages = FALSE)
#' set.seed(34);x=sample(1:10);y=sample(2:11)
#' bb=bootPairs(cbind(x,y),n999=29)
#' bootSignPcent(bb,tau=5) #gives success rate in n999 bootstrap sum computations
#'
#' bb=bootPairs(airquality,n999=999);options(np.messages=FALSE)
#' bootSignPcent(bb,tau=5)#success rate for signs from n999 bootstraps
#'
#' data('EuroCrime');options(np.messages=FALSE)
#' attach(EuroCrime)
#' bb=bootPairs(cbind(crim,off),n999=29) #col.1= crim causes off
#' #hence positive signs are more intuitively meaningful.
#' #note that n999=29 is too small for real problems, chosen for quickness here.
#' bootSignPcent(bb,tau=5)#successful signs from n999 bootstraps
#' }
#' @export

bootSignPcent=function(out,tau=5) {
n999=NROW(out)
signNull=sign(apply(out,2,mean,na.rm=TRUE))#average out columns over n999 rows
pm1=NCOL(out)  #p m=minus 1
bootSign=rep(NA,pm1)
for (j in 1:(pm1)) {
zj=out[,j]*100/3.175 #one column at a time RESCALED here
m = length(zj[abs(zj)<tau])
if (signNull[j]==1) bootSign[j]= length(zj[zj > tau]) /(n999-m)
if (signNull[j]==-1) bootSign[j]= length(zj[zj < -tau]) /(n999-m)
}  #end j loop
return(bootSign)
}
```

## Try the generalCorr package in your browser

Any scripts or data that you put into this service are public.

generalCorr documentation built on Oct. 10, 2023, 1:06 a.m.