flexmix (version 2.3-9)

relabel: Relabel the Components

Description

The components are sorted by the value of one of the parameters or according to an integer vector containing the permutation of the numbers from 1 to the number of components.

Usage

relabel(object, by, ...)
## S3 method for class 'FLXdist,character':
relabel(object, by, which=NULL, ...)

Arguments

object
An object of class "flexmix".
by
If a character vector, it needs to be one of "prior", "model", "concomitant" indicating if the parameter should be from the component-specific or the concomitant variable model. If an integer vector it in
which
Name (or unique substring) of a parameter if by is equal to "model" or "concomitant".
...
Currently not used.

Examples

Run this code
set.seed(123)
    beta <- matrix(1:16, ncol=4)
    beta
    df1 <- ExLinear(beta, n=100, sd=.5)
    f1 <- flexmix(y~., data=df1, k=4)

    ## There was label switching, parameters are not in the same order
    ## as in beta:
    round(parameters(f1))
        
    betas <- rbind(beta, .5)
    betas

    ## This makes no sense:
    summary(abs(as.vector(betas-parameters(f1))))

    ## We relabel the components by sorting the coefficients of x1:
    r1 <- relabel(f1, by="model", which="x1")
    round(parameters(r1))

    ## Now we can easily compare the fit with the true parameters:
    summary(abs(as.vector(betas-parameters(r1))))

Run the code above in your browser using DataCamp Workspace