ifs.FT: IFS estimator

View source: R/ifs.R

ifs.FTR Documentation

IFS estimator

Description

Distribution function estimator based on inverse Fourier transform of ans IFSs.

Usage

ifs.FT(x, p, s, a, k = 2)
ifs.setup.FT(m, p, s, a, k = 2, cutoff)
ifs.pf.FT(x,b,nterms)
ifs.df.FT(x,b,nterms)
IFS.pf.FT(y, k = 2, n = 512, maps=c("quantile","wl1","wl2")) 
IFS.df.FT(y, k = 2, n = 512, maps=c("quantile","wl1","wl2")) 

Arguments

x

where to estimate the function

p

the vector of coefficients p_i

s

the vector of coefficients s_i in: w_i = s_i *x + a_i

a

the vector of coefficients a_i in: w_i = s_i *x + a_i

m

the vector of sample moments

k

number of iterations, default = 2

y

a vector of sample observations

n

the number of points in which to calculate the estimator

maps

type of affine maps

b

the Fourier coefficients

nterms

the number of significant Fourier coefficients after the cutoff

cutoff

cutoff used to determine how many Fourier coefficients are needed

Details

This estimator is intended to estimate the continuous distribution function, the charateristic function (Fourier transform) and the density function of a random variable on [0,1].

Value

The estimated value of the Fourier transform for ifs.FT, the estimated value of the distribution function for ifs.pf.FT and the estimated value of the density function for ifs.df.FT. A list of ‘x’ and ‘y’ coordinates plus the Fourier coefficients and the number of significant coefficients of the distribution function estimator for IFS.pf.FT and the density function for IFS.df.FT. The function ifs.setup.FT return a list of Fourier coefficients and the number of significant coefficients.

Note

Details of this tecnique can be found in Iacus and La Torre, 2002.

Author(s)

S. M. Iacus

References

Iacus, S.M, La Torre, D. (2005) Approximating distribution functions by iterated function systems, Journal of Applied Mathematics and Decision Sciences, 1, 33-46.

See Also

ecdf

Examples

require(ifs)


nobs <- 100
y<-rbeta(nobs,2,4)

# uncomment if you want to test the normal distribution
# y<-sort(rnorm(nobs,3,1))/6


IFS.est <- IFS(y)
xx <- IFS.est$x
tt <- IFS.est$y

ss <- pbeta(xx,2,4)

# uncomment if you want to test the normal distribution   
# ss <- pnorm(6*xx-3)
     
par(mfrow=c(3,1))   
  
plot(ecdf(y),xlim=c(0,1),main="IFS estimator versus EDF")
lines(xx,ss,col="blue")
lines(IFS.est,col="red")
IFS.FT.est <- IFS.pf.FT(y)
xxx <- IFS.FT.est$x
uuu <- IFS.FT.est$y
sss <- pbeta(xxx,2,4)
# uncomment if you want to test the normal distribution   
# sss <- pnorm(6*xxx-3)

lines(IFS.FT.est,col="green")


# calculates MSE


ww <- ecdf(y)(xx)
mean((ww-ss)^2)
mean((tt-ss)^2)
mean((uuu-sss)^2)

plot(xx,(ww-ss)^2,main="MSE",type="l",xlab="x",ylab="MSE(x)")
lines(xx,(tt-ss)^2,col="red")
lines(xxx,(uuu-sss)^2,col="green")

plot(IFS.df.FT(y),type="l",col="green",ylim=c(0,3),main="IFS vs Kernel")
lines(density(y),col="blue")
curve(dbeta(x,2,4),0,1,add=TRUE)
# uncomment if you want to test the normal distribution   
# curve(6*dnorm(x*6-3,0,1),0,1,add=TRUE)

ifs documentation built on Dec. 5, 2022, 9:07 a.m.

Related to ifs.FT in ifs...