OpenMx Developer Forums

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

Improving summary() function

The summary() function has been reimplemented. It now ignores columns in a dataset that are not used in a FIML objective function. It also now handles independent submodels more intelligently. The old implementation ran in about 10 seconds for models/failing/OneFactorCovRAMSpeedup.R (with numberIndicators = 80). The new implementation runs in about 0.5 seconds.

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

Developers Meeting 3/5/10 (Twin Workshop)

A short developers meeting was held today at the Twin Workshop. Our regular weekly meetings will resume next Friday at the usual time (1:00 PM EST). Here are the notes from today's meeting.

  • Incorporate some/all of the helper functions from the twins workshop into the OpenMx package. R help is needed for these functions.
  • The summary function is very slow on large models. Hermine + Steve will send Mike S. their scripts for debugging.
  • Add a timestamp to the summary statement, showing when the model was executed.
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. 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
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

test suite shows warning() messages

We've changed the test suite such that messages to standard error are not redirected to /dev/null. Why did we do this? When R detects a stack imbalance in the garbage collection (a memory leak) it does not throw an error, and it does not throw a warning. Instead the R interpreter writes output directly to standard error.

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

mxAlgebra efficiency

When seeking to optimize mxAlgebra, would there be a speed benefit (or cost?) to saying instead of, for example:

mxAlgebra(rbind (cbind(A+C+E, .5%x%A+C),
cbind(.5%x%A+C , A+C+E) ), name="DZCov")

instead saying:

mxAlgebra( A+C+E , name="ACE")
mxAlgebra( .5%x%A+C+E, name="halfACE")

mxAlgebra(rbind (cbind(ACE, hACE),
cbind(hACE, ACE) ), name="DZCov")

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. 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