[R-pkg-devel] [External] Formula modeling

Richard M. Heiberger rmh @end|ng |rom temp|e@edu
Thu Oct 7 23:51:15 CEST 2021


I am responding to a subset of what you asked.  There are packages which use multiple formulas
in their argument sequence.


What you have as a single formula with | as a separator
q | p | subject | time | rho ~ p + x + y | p + w + y | z + y 
I think would be better as a comma-separated list of formulas

q , p , subject , time , rho ~ p + x + y , p + w + y , z + y 

because in R notation | is usually an operator, not a separator.

lattice uses formulas and the | is used as a conditioning operator.

nlme and lme4 can have multiple formulas in the same calling sequence.

lme4 is newer.  from its ?lme4-package
‘lme4’ covers approximately the same ground as the earlier ‘nlme’
     package.

lme4 should probably be the modelyou are looking for for the package design.

> On Oct 07, 2021, at 17:20, pikappa.devel using gmail.com wrote:
> 
> Dear R-package-devel subscribers,
> 
> 
> 
> My question concerns a package design issue relating to the usage of
> formulas.
> 
> 
> 
> I am interested in describing via formulas systems of the form:
> 
> 
> 
> d = p + x + y 
> 
> s = p + w + y
> 
> p = z + y
> 
> q = min(d,s).
> 
> 
> 
> The context in which I am working is that of market models with, primarily,
> panel data. In the above system, one may think of the first equation as
> demand, the second as supply, and the third as an equation (co-)determining
> prices. The fourth equation is implicitly used by the estimation method, and
> it does not need to be specified when programming the R formula. If you need
> more information bout the system, you may check the package diseq.
> Currently, I am using constructors to build market model objects. In a
> constructor call, I pass [i] the right-hand sides of the first three
> equations as strings, [ii] an argument indicating whether the equations of
> the system have correlated shocks, [iii] the identifiers of the used dataset
> (one for the subjects of the panel and one for time), and [iv] the quantity
> (q) and price (p) variables. These four arguments contain all the necessary
> information for constructing a model.
> 
> 
> 
> I would now like to re-implement model construction using formulas, which
> would be a more regular practice for most R users. I am currently
> considering passing all the above information with a single formula of the
> form:
> 
> 
> 
> q | p | subject | time | rho ~ p + x + y | p + w + y | z + y 
> 
> 
> 
> where subject and time are the identifiers, and rho indicates whether
> correlated or independent shocks should be used.
> 
> 
> 
> I am unaware of other packages that use formulas in this way (for instance,
> passing the identifiers in the formula), and I wonder if this would go
> against any good practices. Would it be better to exclude some of the
> necessary elements for constructing the model? This might make the resuting
> formulas more similar to those of models with multiple responses or multiple
> parts. I am not sure, though, how one would use such model formulas without
> all the relevant information. Is there any suggested design alternative that
> I could check?
> 
> 
> 
> I would appreciate any suggestions and discussion!
> 
> 
> 
> Kind regards,
> 
> Pantelis
> 
> 
> 	[[alternative HTML version deleted]]
> 
> ______________________________________________
> R-package-devel using r-project.org mailing list
> https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fstat.ethz.ch%2Fmailman%2Flistinfo%2Fr-package-devel&data=04%7C01%7Crmh%40temple.edu%7C21a51d63bc6242e5e24908d989d84fce%7C716e81efb52244738e3110bd02ccf6e5%7C0%7C0%7C637692385020500219%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=UKazmoIzXSn8DDQY3diUTPmVIg1cfTI3e1roXyo2DMQ%3D&reserved=0



More information about the R-package-devel mailing list