Learn R Programming

fMultivar (version 4031.84)

mvdist-mscFit: Multivariate Skew Cauchy Parameter Estimation

Description

Fitting the parameters for the Multivariate Skew Cauchy Distribution.

Usage

mscFit(x, trace=FALSE, title = NULL, description = NULL)

Arguments

x

a matrix with "d" columns, giving the coordinates of the point(s) where the density must be evaluated.

trace

a logical value, should the estimation be traced? By default FALSE.

title

an optional project title.

description

an option project desctiption.

Details

This is an easy to use wrapper function using default function settings for fitting the distributional parameters in the framework of the contributed package "sn" written by Adelchi Azzalini.

Starting values for the estimation have not to be provided, they are automatically created.

Examples

Run this code
if (FALSE) {
## Load Library:
   require(sn)
   
## mscFit - 
   # Fit Example:
   N <- 1000
   xi <- c(0, 0) 
   Omega <- diag(2); Omega[2,1] <- Omega[1,2] <- 0.5
   alpha <- c(2, -6)
   set.seed(4711)
   X <- rmsc(n=N, xi, Omega, alpha)
   ans <- mscFit(X)
   # Show fitted Parameters:
   print(ans)
   
   # 2-D Density Plot:
   plot(hexBinning(X[,1], X[, 2], bins = 30), main="Skew Cauchy")
   # Add Contours:
   N <- 101
   x <- seq(min(X[, 1]), max(X[, 1]), l=N)
   y <- seq(min(X[, 2]), max(X[, 2]), l=N)        
   u <- grid2d(x, y)$x
   v <- grid2d(x, y)$y
   XY <- cbind(u, v)
   param <- ans@fit$dp
   Z <- matrix(dmsc(XY, param[[1]][1,], param[[2]], param[[3]]), ncol=N)
   contour(x, y, Z, add=TRUE, col="green", lwd=2)
   grid(col="brown", lty=3)
   
## Cut the Tails:
   CUT <- 25
   X <- X[abs(X[, 1]) <= CUT, ] 
   X <- X[abs(X[, 2]) <= CUT, ]   
   plot(hexBinning(X[,1], X[, 2], bins = 30), main="Skew Cauchy")
   x <- y <- seq(-CUT, CUT, l=N) 
   u <- grid2d(x, y)$x
   v <- grid2d(x, y)$y
   XY <- cbind(u, v)
   param <- ans@fit$dp
   Z <- matrix(dmsc(XY, param[[1]][1,], param[[2]], param[[3]]), ncol=N)
   contour(x, y, Z, add=TRUE, col="green", lwd=2)
   grid(col="brown", lty=3)
   # Try larger cuts ...
}

Run the code above in your browser using DataLab