Learn R Programming

ProDenICA (version 1.1)

GPois: Fit a tilted Gaussian density via a Poisson GAM

Description

This is a contrast method for ProDenICA. It fits a tilted Gaussian density estimate by multiplying the Gaussian density by an exponential tilt function using a cubic smoothing spline

Usage

GPois(x, df = 6, B = 500, order = 1, widen = 1.2, density.return = FALSE, ...)

Arguments

x

vector of real values

df

degrees of freedom for the smoothing-spline fit; default is 6

B

number of grid points for density estimate; default is 500

order

A robustness parameter to avoid responding to outliers in x. The range of x is estimated by the orderth and n-order+1th order statistics. Default is order=1

widen

an expansion factor to widen the range of x; default is widen=1.2

density.return

logical variable, with default FALSE. If density.return=TRUE, the estimated density is returned

additional arguments to GAM; typically not used

Value

a list with components

Gs

estimated contrast function, which is the log of the tilting function, evaluated at the original values of x. mean(Gs) is measure of negentropy

gs

estimated first derivative of Gs at x

gps

estimated second derivative of Gs at x

density

if density.return=TRUE, a list with components $x the grid of B values of x, and $y the estimated density.

Details

See Section 14.7.4 of 'Elements of Statistical Learning (Hastie, Tibshirani and Friedman, 2009, 2nd Edition)' for details

References

Hastie, T. and Tibshirani, R. (2003) Independent Component Analysis through Product Density Estimation in Advances in Neural Information Processing Systems 15 (Becker, S. and Obermayer, K., eds), MIT Press, Cambridge, MA. pp 649-656 Hastie, T., Tibshirani, R. and Friedman, J. (2009) Elements of Statistical Learning (2nd edition), Springer. https://hastie.su.domains/ElemStatLearn/printings/ESLII_print12_toc.pdf

See Also

ProDenICA, G1 and G0

Examples

Run this code
# NOT RUN {
p=2
### Can use letters a-r below for dist
dist="n" 
N=1024
A0<-mixmat(p)
s<-scale(cbind(rjordan(dist,N),rjordan(dist,N)))
x <- s %*% A0
fit=ProDenICA(x,Gfunc=GPois, whiten=TRUE, density=TRUE)
par(mfrow=c(2,1))
plot(fit)
# }

Run the code above in your browser using DataLab