New Feature Proposals

Posted on
Picture of user. mspiegel Joined: 07/31/2009

OpenMx 1.0 feature set

At the end of the last developers meeting, it was tentatively agreed that we should discuss the feature set for the OpenMx 1.0 release. I propose to make that issue the primary topic for the next developers meeting, on 3/19/10. Of course if something critical comes up this week, we can push the topic forward a week. Logistically, we should have this conversation soon as we are planning a June date for the OpenMx 1.0 release.

Developers: remind ourselves of the feature set promised in the grant. High probability these features will have greatest priority.

Posted on
Picture of user. smedland Joined: 08/04/2009

Crosstab or weighted response vector data?

Hi
Any chance we could get crosstab or weighted response vector data types ?
these are very useful for obtaining starting values for larger FIML ordinal analyses
thanks
Sarah

(by weighted response vector data I mean data that looks something like this
v1 v2 v3 v4 v5 v6 freq
0 0 0 0 0 0 100
0 0 0 0 0 1 100
...
)

Posted on
Picture of user. smedland Joined: 08/04/2009

Conseptual work arround for CIs on estimated parameters - untested

This is based on an old classicMx trick that I used a lot in writing stealth model code

I think you can constrain the calculated matrix to be equal to a free matrix and the obtain CIs on the free matrix. for example:

mxMatrix( type="Full", nrow=nvar, ncol=nf, free=TRUE, values=.3, name="factor" ),
mxMatrix( type="Diag", nrow=nvar, ncol=nvar, free=TRUE, values=.3, name="residual" ),
mxMatrix( type="Stand", nrow=nvar, ncol=nvar, free=TRUE, name="Vconstraint" ),
mxAlgebra( expression=((factor %*% t(factor))+(residual%*% t(residual))), name="expCov" ),

Posted on
Picture of user. mspiegel Joined: 07/31/2009

Improving ordinal model specification

Two suggestions have been proposed by smedland for improving the specification of ordinal models. I support both of these suggestions, and encourage OpenMx users to leave their feedback on these proposed changes.

1. Allow neighboring duplicate values to exist within a column of the thresholds matrix. CURRENT: a column must consist of strictly increasing values. CHANGE: a column must consist of non-decreasing values. Internally, neighboring duplicate values are collapsed into a single threshold.

Posted on
Picture of user. mspiegel Joined: 07/31/2009

ranges and subranges implemented in MxAlgebra expressions

In the next binary release** you will be able to use ranges and subranges in MxAlgebra expression. The range operator "x : y" creates a column vector of elements [x, x+1, x+2, ..., y]. In addition, the square bracket operator now supports subranges. The following are now valid MxAlgebra expressions:

foo <- mxAlgebra(bar[1:2, 3:4], name = 'foo')
foo <- mxAlgebra(bar[1:2, 1], name = 'foo')
foo <- mxAlgebra(bar[1:2, ], name = 'foo')
foo <- mxAlgebra(bar[cbind(1,3,5), ], name = 'foo') # select odd rows

Posted on
Picture of user. mspiegel Joined: 07/31/2009

foo[x,y] for MxMatrix objects

It was suggested at last week's developers meeting that it could be useful to use the extract operator for MxMatrix objects. So I've implemented foo[x,y] and foo[x,y] <- z where 'foo' is a MxMatrix object. The new feature has been checked into the subversion repository.

Some notes about foo[x,y]

  • returns a MxMatrix object
  • applies [x,y] extraction to the components of foo (values, labels, free, lbound, ubound)
  • returns a MxMatrix of the same type as foo, unless that would cause an error. In cases of errors, return a Full matrix.
Posted on
Picture of user. mspiegel Joined: 07/31/2009

MxRowObjective objective function

This proposal is for a new objective function that allows for a generic row-by-row computation on a data-set, followed by a final computation to aggregate all the row-by-row results. The objective function takes four arguments.

mxRowObjective(rowAlgebra, rowResults = NA, reduceAlgebra = NA, name = NA).