\name{AbstractModel} \alias{AbstractModel} \alias{parameters} \alias{parameters<-} \title{An abstract class representing of the proficiency space for a group of examinees } \description{ This is an abstract class that contains information about a model. A model generally has parameters, contained in a \code{\link{ParameterObject}}, and hyperparameters, which depend on the implementation. Depending on the subtype, a model has additional methods to support its use in a bigger structure. } \usage{ AbstractModel(...) parameters(model) parameters(model) <- value } \arguments{ \item{\dots}{ Initial values for the object: these are usually population hyperparameters and vary with the implementation. In particular, this list should generally contain a \code{param} argument providing the parameter and a \code{paramType} which should be a string containing the expected type of the parameters. } \item{model}{A model whose parameters are needed.} \item{value}{A parameter object containing the new parameters of the object.} } \details{ This is an abstract class which is a parent of both the \code{\link{ProficiencyModel}} and \code{\link{EvidenceModel}} classes. It exists mainly to pull together code and slots relating to the \code{param} slot, which should contain a \code{\link{ParameterObject}}. The slot \code{paramType} should contain a string with the expected type of the parameter object. The function \code{parameters} access the parameter object associated with a model. This must be a subtype of the type indicated by the \code{paramType} slot, or as a special case it can always be an object of type \code{NullParameter}. } \value{ This is an abstract class, and must be extended by other classes. The abstract class supplies the following slots: \item{param}{An object of type \code{\link{ParameterObject}} which contains the parameters for the model.} \item{paramType}{A character string which provides the name of a subtype of \code{\link{ParameterObject}}. The \code{param} slot should be of this class.} } \references{ %% ~put references to the literature/web site here ~ } \author{Russell Almond } \seealso{ Methods: \code{parameters}, \code{\link{lpriorParam}} Extensions: \code{\link{ProficiencyModel}}, \code{\link{EvidenceModel}}, Contained Classes: \code{\link{ParameterObject}} } \examples{ ## Must be extended to be used. See TimelessNormalPM.R for example. } \keyword{ distribution } \keyword{ class }