restModel-methods: ~~ Methods for Function 'restModel' in Package 'gmm4' ~~

Description Usage Arguments Methods Examples

Description

It creates gmmModels class of objects with linear restrictions on the coefficients.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
## S4 method for signature 'linearGmm'
restModel(object, R, rhs=NULL)

## S4 method for signature 'linearGel'
restModel(object, R, rhs=NULL)

## S4 method for signature 'slinearGmm'
restModel(object, R, rhs=NULL)

## S4 method for signature 'nonlinearGmm'
restModel(object, R, rhs=NULL)

## S4 method for signature 'nonlinearGel'
restModel(object, R, rhs=NULL)

## S4 method for signature 'formulaGmm'
restModel(object, R, rhs=NULL)

## S4 method for signature 'functionGmm'
restModel(object, R, rhs=NULL)

## S4 method for signature 'formulaGel'
restModel(object, R, rhs=NULL)

## S4 method for signature 'functionGel'
restModel(object, R, rhs=NULL)

Arguments

object

An object of class "gmmModels" or "gelModels".

R

Either a matrix or a vector of characters for linear models and a list of formulas for nonlinear models

rhs

The right hand side of the linear restrictions. It is ignored for nonlinear models.

Methods

signature(object = "linearGmm")

Method for object of class linearGmm.

signature(object = "linearGel")

Method for all classes related to linearGel.

signature(object = "slinearGmm")

Method for object of class slinearGmm.

signature(object = "nonlinearGmm")

Method for object of class nonlinearGmm.

signature(object = "nonlinearGel")

Method for object of class nonlinearGel.

signature(object = "functionGmm")

Method for object of class functionGmm.

signature(object = "functionGel")

Method for object of class functionGel.

signature(object = "formulaGmm")

Method for object of class formulaGmm.

signature(object = "formulaGel")

Method for object of class formulaGel.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
data(simData)
theta <- c(beta0=1,beta1=2)

## Unrestricted model
model1 <- gmmModel(y~x1+x2+x3+z1, ~x1+x2+z1+z2+z3+z4, data=simData)

## Using matrix R
R <- matrix(c(1,1,0,0,0,0,0,2,0,0,0,0,0,1,-1),3,5, byrow=TRUE)
q <- c(0,1,3)

rmodel1 <- restModel(model1, R, q)
rmodel1

## Using character
## Many ways to write the constraints

R1 <- c("x1","2*x2+z1=2", "4+x3*5=3")
rmodel1 <- restModel(model1, R1)
rmodel1

## Works with interaction and identity function I()

model1 <- gmmModel(y~x1*x2+exp(x3)+I(z1^2), ~x1+x2+z1+z2+z3+z4, data=simData)
R1 <- c("x1","exp(x3)+2*x1:x2", "I(z1^2)=3")
rmodel1 <- restModel(model1, R1)
rmodel1

## nonlinear constraints on a linear model
## we need to convert the linear model into a nonlinear one

model <- gmmModel(y~x1+x2+x3+z1, ~x1+x2+z1+z2+z3+z4, data=simData)
NLmodel <- as(model, "nonlinearGmm")

## To avoid having unconventional parameter names, which happens
## when I() is used or with interaction, the X's and coefficients are
## renamed

NLmodel@parNames

## Restriction can be a list of formula or vector of characters
## For the latter, it will be converted into a list of formulas

R1 <- c("theta2=2", "theta3=theta4^2")
rmod1 <- restModel(NLmodel, R1)
res1 <- modelFit(rmod1)
res1
## recover the orignial form
coef(rmod1, coef(res1))

## with formulas

R2 <- list(theta2~2, theta3~1/theta4)
rmod2 <- restModel(NLmodel, R2)
res2 <- modelFit(rmod2)
res2
coef(rmod2, coef(res2))

## The same can be done with function based models

gmm4 documentation built on Dec. 6, 2019, 3:01 a.m.