# [R] Fitting a Mixture of Noncentral Student t Distributions to a one-dimensional sample

Johannes Moser jzmoser at gmail.com
Wed Apr 30 22:30:34 CEST 2014

```Dear R community,

I`d like to extract the parameters of a two-component mixture
distribution of noncentral student t distributions which was fitted to a
one-dimensional sample.

There are many packages for R that are capable of handling mixture
distributions in one way or another. Some in the context of a Bayesian
framework requiring kernels. Some in a regression framework. Some in a
nonparametric framework. ...

So far the "mixdist"-package seems to come closest to my wish. This
package fits parametric mixtures to a sample of data. Unfortunately it
doesn`t support the student t distribution.

I have also tried to manually set up a likelihood function as described
here:
http://stackoverflow.com/questions/6485597/r-how-to-fit-a-large-dataset-with-a-combination-of-distributions
But the result is far from perfect.

The "gamlss.mx"-package might be helping, but originally it seems to be
set up for another context, i.e. regression. I tried to regress my data
on a constant and then extract the parameters for the estimated mixture
error distribution. But the estimated parameters seem to be not directly
accessable individually by some command (such as fit1\$sigma). And there
seem to be serious convergence problems even in pretty simple and
nonambiguous cases (see example 2). The following syntax is my
gamlss.mx-setup so far:

library(gamlss.dist)
library(gamlss.mx)
library(MASS)

# 1:
data(geyser)
plot(density(geyser\$waiting) )
fit1 <- gamlssMX(waiting~1,data=geyser,family="TF",K=2)
fit1
# works fine

# 2:
N <- 100000
components <- sample(1:2,prob=c(0.6,0.4),size=N,replace=TRUE)
mus <- c(3,-6)
sds <- c(1,9)
nus <- c(25,3)
mixsim <-
data.frame(rTF2(N,mu=mus[components],sigma=sds[components],nu=nus[components]))
colnames(mixsim) <- "MCsim"
plot(density(mixsim\$MCsim) , xlim=c(-50,50))
fit2 <- gamlssMX(MCsim~1,data=mixsim,family="TF",K=2)
fit2
# no convergence

With another dataset and when using the same two component densities for
the mixture as above I ended up with negative estimates for sigma (which
should be positive).

I would be very grateful for any advice. I`ve read through many manuals
and vignettes today but it seems that I am nearly in the same place