Added R help files for mxFitFunctionR and mxFitFunctionRow. Deprecated mxRObjective...
[openmx:openmx.git] / man / mxExpectationRAM.Rd
1 %
2 %   Copyright 2007-2013 The OpenMx Project
3 %
4 %   Licensed under the Apache License, Version 2.0 (the "License");
5 %   you may not use this file except in compliance with the License.
6 %   You may obtain a copy of the License at
7
8 %        http://www.apache.org/licenses/LICENSE-2.0
9
10 %   Unless required by applicable law or agreed to in writing, software
11 %   distributed under the License is distributed on an "AS IS" BASIS,
12 %   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 %   See the License for the specific language governing permissions and
14 %   limitations under the License.
15
16 \name{mxExpectationRAM}
17 \alias{mxExpectationRAM}
18
19 \title{Create an MxExpectationRAM Object}
20
21 \description{
22 This function creates an MxExpectationRAM object.
23 }
24
25 \usage{
26 mxExpectationRAM(A="A", S="S", F="F", M = NA, dimnames = NA, thresholds = NA, threshnames = dimnames)
27 }
28
29
30 \arguments{
31    \item{A}{A character string indicating the name of the 'A' matrix.}
32    \item{S}{A character string indicating the name of the 'S' matrix.}
33    \item{F}{A character string indicating the name of the 'F' matrix.}
34    \item{M}{An optional character string indicating the name of the 'M' matrix.}
35    \item{dimnames}{An optional character vector to be assigned to the column names of the 'F' and 'M' matrices.}   
36    \item{thresholds}{An optional character string indicating the name of the thresholds matrix.}
37    \item{threshnames}{An optional character vector to be assigned to the column names of the thresholds matrix.}
38 }
39
40 \details{
41 Expectation functions define the way that model expectations are calculated. The mxRAMObjective provides maximum likelihood estimates of free parameters in a model of the covariance of a given \link{MxData} object. This model is defined by reticular action modeling (McArdle and McDonald, 1984). The 'A', 'S', and 'F' arguments must refer to \link{MxMatrix} objects with the associated properties of the A, S, and F matrices in the RAM modeling approach.
42
43 The 'dimnames' arguments takes an optional character vector.  If this argument is not a single NA, then this vector be assigned to be the column names of the 'F' matrix and optionally to the 'M' matrix, if the 'M' matrix exists.
44
45 The 'A' argument refers to the A or asymmetric matrix in the RAM approach. This matrix consists of all of the asymmetric paths (one-headed arrows) in the model. A free parameter in any row and column describes a regression of the variable represented by that row regressed on the variable represented in that column. 
46
47 The 'S' argument refers to the S or symmetric matrix in the RAM approach, and as such must be square. This matrix consists of all of the symmetric paths (two-headed arrows) in the model. A free parameter in any row and column describes a covariance between the variable represented by that row and the variable represented by that column. Variances are covariances between any variable at itself, which occur on the diagonal of the specified matrix.
48
49 The 'F' argument refers to the F or filter matrix in the RAM approach. If no latent variables are included in the model (i.e., the A and S matrices are of both of the same dimension as the data matrix), then the 'F' should refer to an identity matrix. If latent variables are included (i.e., the A and S matrices are not of the same dimension as the data matrix), then the 'F' argument should consist of a horizontal adhesion of an identity matrix and a matrix of zeros. 
50
51 The 'M' argument refers to the M or means matrix in the RAM approach.  It is a 1 x n matrix, where n is the number of manifest variables + the number of latent variables. The M matrix must be specified if either the mxData type is \dQuote{cov} or \dQuote{cor} and a means vector is provided, or if the mxData type is \dQuote{raw}.  Otherwise the M matrix is ignored.
52
53 The \link{MxMatrix} objects included as arguments may be of any type, but should have the properties described above. The mxRAMObjective will not return an error for incorrect specification, but incorrect specification will likely lead to estimation problems or errors in the \link{mxRun} function.
54
55 mxRAMObjective evaluates with respect to an \link{MxData} object. The \link{MxData} object need not be referenced in the mxRAMObjective function, but must be included in the \link{MxModel} object. mxRAMObjective requires that the 'type' argument in the associated \link{MxData} object be equal to 'cov', 'cor' or 'sscp'.
56
57 To evaluate, place MxRAMObjective objects, the \link{mxData} object for which the expected covariance approximates, referenced \link{MxAlgebra} and \link{MxMatrix} objects, and optional \link{MxBounds} and \link{MxConstraint} objects in an \link{MxModel} object. This model may then be evaluated using the \link{mxRun} function. The results of the optimization can be found in the 'output' slot of the resulting model, and may be obtained using the \link{mxEval} function..
58 }
59
60 \value{
61     Returns a new MxExpectationRAM object. MxRAMObjective objects should be included with models with referenced \link{MxAlgebra}, \link{MxData} and \link{MxMatrix} objects.
62 }
63
64 \references{
65 McArdle, J. J. and MacDonald, R. P. (1984). Some algebraic properties of the Reticular Action Model for moment structures. \emph{British Journal of Mathematical and Statistical Psychology, 37,} 234-251.
66
67 The OpenMx User's guide can be found at http://openmx.psyc.virginia.edu/documentation.
68 }
69
70 \examples{
71    
72 # Create and fit a model using mxMatrix, mxAlgebra, mxExpectationNormal, and mxFitFunctionML
73
74 library(OpenMx)
75
76 # Simulate some data
77
78 x=rnorm(1000, mean=0, sd=1)
79 y= 0.5*x + rnorm(1000, mean=0, sd=1)
80 tmpFrame <- data.frame(x, y)
81 tmpNames <- names(tmpFrame)
82
83 # Define the matrices
84
85 matrixS <- mxMatrix(type = "Full", nrow = 2, ncol = 2, values=c(1,0,0,1), 
86               free=c(TRUE,FALSE,FALSE,TRUE), labels=c("Vx", NA, NA, "Vy"), name = "S")
87 matrixA <- mxMatrix(type = "Full", nrow = 2, ncol = 2, values=c(0,1,0,0), 
88               free=c(FALSE,TRUE,FALSE,FALSE), labels=c(NA, "b", NA, NA), name = "A")
89 matrixF <- mxMatrix(type="Iden", nrow=2, ncol=2, name="F")
90 matrixM <- mxMatrix(type = "Full", nrow = 1, ncol = 2, values=c(0,0), 
91               free=c(TRUE,TRUE), labels=c("Mx", "My"), name = "M")
92
93 # Define the expectation
94
95 expFunction <- mxExpectationRAM(M="M", dimnames = tmpNames)
96
97 # Choose a fit function
98
99 fitFunction <- mxFitFunctionML()
100
101 # Define the model
102
103 tmpModel <- mxModel("exampleRAMModel", matrixA, matrixS, matrixF, matrixM, expFunction, fitFunction, 
104                     mxData(observed=tmpFrame, type="raw"))
105
106 # Fit the model and print a summary
107
108 tmpModelOut <- mxRun(tmpModel)
109 summary(tmpModelOut)
110 }