OpenMx Wishlist

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

matrix redimensioning

We've had a request for a function that changes the dimensions of a matrix.

Maybe mxRedim(mat, row, col)? Conformance would require that the total number of elements remain constant. That is, mat->rows * mat->cols == row * col.

Semantics would probably fill in by columns.

Posted on
No user picture. felix.s Joined: 02/09/2010

LRtest for model comparison

Dear OpenMx community,

I'm rather new to the field of SEM, but I am very happy about OpenMx - the learning curve really was really steep (... in the sense of quick successes). Congratulations!

In some post there are already some hints about a "mxCompare" function. I tried to implement a likelihood ratio / chi square test myself:

Posted on
Picture of user. trinewa Joined: 11/30/2009

More example scripts for twin models

Hi! My favorite web-site when preparing scripts for running twin models on Mx has been the ’Mx scripts Library’ http://www.psy.vu.nl/mxbib/index.php?page=home
It would have been very helpful to have all the scripts in this library converted to OpenMx.
Posted on
Picture of user. izahn Joined: 09/02/2009

Path diagrams

One of the nice things about John Fox's sem package is that it can output path diagrams. I think this is a very nice feature, and would love to see it in OpenMx. Even better if it's implemented using grid or some other R graphics system instead of graphviz (as the sem package does). Graphviz works great once you get it installed and set up, but this can be difficult.
Posted on
Picture of user. mspiegel Joined: 07/31/2009

Square bracket substitution implemented

Square bracket substitution has been implemented in the subversion repository. This is a feature that allows you to construct MxMatrix objects, and within the labels of a matrix use a string of the form "foo[row,col]" where 'foo' refers to another MxMatrix or MxAlgebra and 'row','col' must be numeric literals. It is very important to keep in mind that this only applies to matrix labels. You cannot use this notation in mxAlgebra expressions. Here are some examples of this notation:

require(OpenMx)
A <- mxMatrix('Full', 1, 1, values = 1, name = 'A')
Posted on
Picture of user. tbates Joined: 07/31/2009

Capability to offer a vector to value and free slots in MXMatrix objects

This works

Chol    = mxMatrix(type="Full", 2,2, free=c(TRUE,TRUE,FALSE,TRUE), values=c(1,.2,0,1))

But this fails

Chol@free=c(TRUE,FALSE,FALSE,TRUE)
Chol@values=c(1,0,0,1)

It would be nice, given that we can create the free and values slots with vectors, if we could also update them iwth vectors, using the pre-existing nrow and ncol of the MxMatrix to do this:

vec2MatFormxMatrix <- function(oldMat, newVec) {
 newMat = matrix(data=newVec, nrow=nrow(oldMat), ncol=ncol(oldMat) )
 return(newMat)
}

newVec =c(TRUE,FALSE,FALSE,TRUE)
Posted on
Picture of user. stueller Joined: 08/04/2009

"saving" the score/information functions

First of all I want to say that OpenMx has been quite straightforward to start using given the documentation on this website.

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

Save the state of the optimiser for input to a new run (granted)

For lots of jobs, the ability to input the optimiser state from a previous run would be a massive productivity gain.

The cleanest way to implement it for the user would be as a parameter to mxRun, where you pass in the last fit, and this has in it the state of the optimiser which mxRun pushes into the current optimiser run as a set of start values.

fit = mxRun(model)
mxRun(model, fit)
#--> returns almost instantly having been started at the optimal location

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

Confidence intervals (granted)

Confidence intervals are basic to most results sections now, so implementing Mx's 'Intervals' likelihood-based confidence intervals (Neale & Miller, 1997) (plus standard error-based CIs for speed) would be high on the wish-list

maybe something like

mxInterval(..., percent=95, type="ML") where ... consists of matrix addresses

mxInterval(z.A) would mean all cells of A
mxInterval(z.A[1:2,], type="SE") first two rows of A, standard-error based method

Posted on
Picture of user. Steve Joined: 07/30/2009

Welcome to the OpenMx Wishlist forum

This is the forum for posting what you would like to see added to OpenMx. We expect that this forum will be used by OpenMx users who are thinking about new and different things they would like to do with OpenMx. But also, since OpenMx is an open source project, we expect that graduate students, post-docs, and early career quantitative psychologists and statisticians might use this forum as a source of ideas for dissertation projects or grant proposals. With many people contributing ideas and programming talents, all parts of the community can benefit.