elasticity | R Documentation |
Calculates and plots the elasticity of a smooth function.
elasticity(object, select = NULL, plot = TRUE, se = TRUE)
object |
fitted mgcv object with family |
select |
specifying the smooth function for which the elasticity is calculated. If |
plot |
logical; if TRUE, plots the elasticities. If FALSE, returns the average elasticity. |
se |
logical; if TRUE, adds standard errors to the plot of elasticities. |
Calculates the marginal product for parametric terms. For smooth terms the average of the derivative is calculated.
If plot is TRUE, plots the elasticities specified in select of the provided object. If plot is FALSE returns a named vector of the elasticity of the provided inputs.
schmidt2023multivariatedsfa
kumbhakar2015practitionerdsfa
aigner1977formulationdsfa
meeusen1977efficiencydsfa
#Set seed, sample size and type of function
set.seed(1337)
N=500 #Sample size
s=-1 #Set to production function
#Generate covariates
x1<-runif(N,-1,1); x2<-runif(N,-1,1); x3<-runif(N,-1,1)
x4<-runif(N,-1,1); x5<-runif(N,-1,1)
#Set parameters of the distribution
mu=2+0.75*x1+0.4*x2+0.6*x2^2+6*log(x3+2)^(1/4) #production function parameter
sigma_v=exp(-1.5+0.75*x4) #noise parameter
sigma_u=exp(-1+sin(2*pi*x5)) #inefficiency parameter
y<-rcomper(n=N, mu=mu, sigma_v=sigma_v, sigma_u=sigma_u, s=s, distr="normhnorm")
dat<-data.frame(y, x1, x2, x3, x4, x5)
#Write formulae for parameters
mu_formula<-y~x1+x2+I(x2^2)+s(x3, bs="ps")
sigma_v_formula<-~1+x4
sigma_u_formula<-~1+s(x5, bs="ps")
#Fit model
model<-dsfa(formula=list(mu_formula, sigma_v_formula, sigma_u_formula),
data=dat, family=comper(s=s, distr="normhnorm"), optimizer = c("efs"))
#Get elasticities
elasticity(model, plot=TRUE)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.