Learn R Programming

fMultivar (version 4031.84)

mvdist-mstFit: Multivariate Skew Student-t Parameter Estimation

Description

Fitting the parameters for the Multivariate Skew Student-t Distribution

Usage

mstFit(x, fixed.nu=NULL, 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.

fixed.nu

a positive value to keep fixed the parameter nu of the Student-t distribution in the optimization process; with default value NULL, nu is estimated like the other parameters.

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)
   
## mstFit - 
   # Fit Example:
   N <- 1000
   xi <- c(0, 0) 
   Omega <- diag(2); Omega[2,1] <- Omega[1,2] <- 0.5
   alpha <- c(2, -2)
   nu <- 4
   set.seed(4711)
   X <- rmst(n=N, xi, Omega, alpha, nu=4)
   ans <- mstFit(X)
   # Show fitted Parameters:
   print(ans)

   # 2-D Density Plot:
   plot(hexBinning(X[,1], X[, 2], bins = 30), main="Skew Student-t")
   # 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(dmst(
     XY, param[[1]][1,], param[[2]], param[[3]], param[[4]]), ncol=N)
   contour(x, y, Z, add=TRUE, col="green", lwd=2)
   grid(col="brown", lty=3)
    
## mstFit - 
   # Fit Example with fixed nu=4:
   ans <- mstFit(X, fixed.nu=4)
   # Show fitted Parameters:
   print(ans)
   
   # 2-D Density Plot:
   plot(hexBinning(X[,1], X[, 2], bins = 30), main="Student-t | fixed nu")
   # Add Contours:
   param <- ans@fit$dp
   Z <- matrix(dmst(
     XY, param[[1]][1,], param[[2]], param[[3]], nu=4), ncol=N)
   contour(x, y, Z, add=TRUE, col="green", lwd=2)
   grid(col="brown", lty=3)
}

Run the code above in your browser using DataLab