function(explan, depend, mbound, ubound = 0, keyc = 0)
{
	K <- ncol(explan)
	dmat <- cbind(explan, depend)
	dmat <- as.matrix(na.omit(dmat))
	tmat <- as.matrix(cov.wt(dmat)$cov)
	gmat <- tmat
	gmat[K + 1, K + 1] <- mbound * tmat[K + 1, K + 1]
	if(ubound > 0)
		gmat[keyc, keyc] <- (1 - ubound) * gmat[keyc, keyc]
	igmat <- solve(gmat)
	allrev <- NULL
	for(i in 1:K) {
		rev <- NULL
		for(j in 1:(K + 1)) {
			br <-  - igmat[i, j]/igmat[K + 1, j]
			rev <- c(rev, br)
		}
		allrev <- rbind(allrev, rev)
	}
	dimnames(allrev)[[2]] <- c(dimnames(explan)[[2]], "Direct")
	dimnames(allrev)[[1]] <- dimnames(explan)[[2]]
	list(allrev = allrev, mbound = mbound)
}
