mxRowObjective-help

Wiki home page

Back to top

1) Description:

This function creates a new MxRowObjective object.

Back to top

2) Usage:

mxRowObjective(rowAlgebra, reduceAlgebra, dimnames, rowResults = "rowResults", filteredDataRow = "filteredDataRow", existenceVector = "existenceVector")

Back to top

3) Arguments:

rowAlgebra: A character string indicating the name of the algebra to be evaluated row-wise.
reduceAlgebra: A character string indicating the name of the algebra that collapses the row results into a single number which is then optimized.
dimnames: A character vector of names corresponding to columns be extracted from the data set.
rowResults: The name of the auto-generated "rowResults" matrix. See details.
filteredDataRow: The name of the auto-generated "filteredDataRow" matrix. See details.
existenceVector: The name of the auto-generated "existenceVector" matrix. See details.

Back to top

4) Details:

Objective functions are functions for which free parameter values are chosen such that the value of the objective function is minimized. The mxRowObjective function evaluates a user-defined MxAlgebra object called the ‘rowAlgebra’ in a row-wise fashion. It then stores results of the row-wise evaluation in another MxAlgebra object called the ‘rowResults’. Finally, the mxRowObjective function collapses the row results into a single number which is then used for optimization. The MxAlgebra object named by the ‘reduceAlgebra’ collapses the row results into a single number.

The ‘filteredDataRow’ is populated in a row-by-row fashion with all the non-missing data from the current row. You cannot assume that the length of the filteredDataRow matrix remains constant (unless you have no missing data). The ‘existenceVector’ is populated in a row-by-row fashion with a value of 1.0 in column j if a non-missing value is present in the data set in column j, and a value of 0.0 otherwise. Use the functions omxSelectRows, omxSelectCols, and omxSelectRowsAndCols to shrink other matrices so that their dimensions will be conformable to the size of ‘filteredDataRow’.

Back to top

5) Value:

Returns a new MxRowObjective object. MxRowObjective objects should be included with models with referenced MxAlgebra objects.

Back to top

6) Examples:

# Model that adds two data columns row-wise, then sums that column
# Notice no optimization is performed here.
xdat <- data.frame(a=rnorm(10), b=1:10) # Make data set
amod <- mxModel(
        mxAlgebra(sum(filteredDataRow), name = 'rowAlgebra'),
        mxAlgebra(sum(rowResults), name = 'reduceAlgebra'),
        mxRowObjective(rowAlgebra='rowAlgebra',reduceAlgebra='reduceAlgebra',dimnames=c('a','b')),
        mxData(observed=xdat, type='raw')
)

# Model that find the parameter that minimizes the sum of the
#  squared difference between the parameter and a data row.

bmod <- mxModel(
    mxMatrix(values=.75, ncol=1, nrow=1, free=TRUE, name='B'),
    mxAlgebra((filteredDataRow - B) ^ 2, name='rowAlgebra'),
    mxAlgebra(sum(rowResults), name='reduceAlgebra'),
    mxRowObjective(rowAlgebra='rowAlgebra',reduceAlgebra='reduceAlgebra',dimnames=c('a')),
    mxData(observed=xdat, type='raw')
)

Back to top