An S4 class to represent a multivariate mixture of regression model.
The model follows [minka-linear](https://tminka.github.io/papers/minka-linear.pdf) .
The model corresponds to the following generative model:
$$ \pi \sim Dirichlet(\alpha)$$
$$ Z_i \sim \mathcal{M}(1,\pi)$$
$$ V_k \sim \mathcal{W}(\varepsilon^{-1},n_0)$$
$$ A_k \sim \mathcal{MN}(0,(V_k)^{-1},\tau XX^\top)$$
$$ Y_{i.}|X_{i.}, A_k, Z_{ik}=1 \sim \mathcal{N}(A_k x_{i.},V_{k}^{-1})$$
with \(\mathcal{W}(\epsilon^{-1},n_0)\) the Wishart distribution and \(\mathcal{MN}\) the matrix-normal distribution.
The MoR-class
must be used when fitting a simple Mixture of Regression whereas the MoRPrior-class
must be used when fitting a CombinedModels-class
.
a formula
that describe the linear model to use
Prior parameter (inverse variance) default 0.001
Prior parameter (default to NaN, in this case N0 will be fixed equal to the number of columns of Y.)
Covariance matrix prior parameter (default to NaN, in this case epsilon will be fixed to a diagonal variance matrix equal to 0.1 time the variance of the regression residuals with only one cluster.)
Dirichlet prior parameter over the cluster proportions (default to 1)
a MoRPrior-class
object
a MoR-class
object
MoRPrior(y ~ x1 + x2)
#> An object of class "MoRPrior"
#> Slot "formula":
#> y ~ x1 + x2
#> <environment: 0x55aff4819fd0>
#>
#> Slot "tau":
#> [1] 0.001
#>
#> Slot "N0":
#> [1] NaN
#>
#> Slot "epsilon":
#> [,1]
#> [1,] NaN
#>
MoRPrior(y ~ x1 + x2, N0 = 100)
#> An object of class "MoRPrior"
#> Slot "formula":
#> y ~ x1 + x2
#> <environment: 0x55aff4819fd0>
#>
#> Slot "tau":
#> [1] 0.001
#>
#> Slot "N0":
#> [1] 100
#>
#> Slot "epsilon":
#> [,1]
#> [1,] NaN
#>
MoRPrior(cbind(y1, y2) ~ x1 + x2, N0 = 100)
#> An object of class "MoRPrior"
#> Slot "formula":
#> cbind(y1, y2) ~ x1 + x2
#> <environment: 0x55aff4819fd0>
#>
#> Slot "tau":
#> [1] 0.001
#>
#> Slot "N0":
#> [1] 100
#>
#> Slot "epsilon":
#> [,1]
#> [1,] NaN
#>
MoR(y ~ x1 + x2)
#> An object of class "MoR"
#> Slot "formula":
#> y ~ x1 + x2
#> <environment: 0x55aff4819fd0>
#>
#> Slot "tau":
#> [1] 0.1
#>
#> Slot "N0":
#> [1] NaN
#>
#> Slot "epsilon":
#> [,1]
#> [1,] NaN
#>
#> Slot "alpha":
#> [1] 1
#>
MoR(y ~ x1 + x2, N0 = 100)
#> An object of class "MoR"
#> Slot "formula":
#> y ~ x1 + x2
#> <environment: 0x55aff4819fd0>
#>
#> Slot "tau":
#> [1] 0.1
#>
#> Slot "N0":
#> [1] 100
#>
#> Slot "epsilon":
#> [,1]
#> [1,] NaN
#>
#> Slot "alpha":
#> [1] 1
#>
MoR(cbind(y1, y2) ~ x1 + x2, N0 = 100)
#> An object of class "MoR"
#> Slot "formula":
#> cbind(y1, y2) ~ x1 + x2
#> <environment: 0x55aff4819fd0>
#>
#> Slot "tau":
#> [1] 0.1
#>
#> Slot "N0":
#> [1] 100
#>
#> Slot "epsilon":
#> [,1]
#> [1,] NaN
#>
#> Slot "alpha":
#> [1] 1
#>