如何计算弹性

时间:2017-04-23 14:56:39

标签: r

如何计算R中的因子弹性?例如,“从数据集nlsw88计算样本中所有女性的工资保有权弹性”

h <- read.dta("nlsw88.dta")
h1 <- mutate(h, age = log(h$age), wage = log(h$wage))
model2 <- lm(data = h1,
             wage ~ age + race + married + never_married + grade + collgrad + industry + union + occupation + hours + ttl_exp + tenure + c_city)

我使用这个公式来计算弹性

elas1<-as.numeric(model2$coefficients["age"]*mean(h1$age)/mean(h1$wage))
-0.2217391

但是使用这个公式我无法计算“种族”弹性,因为它不是数字, 如果我放elas3<-as.numeric(model2$coefficients["hours"]*mean(h1$hours)/mean(h1$wage))

,那么R写信给我NA_real_

怎么了?

1 个答案:

答案 0 :(得分:3)

当您不包含任何可重复的示例时,很难给出准确的答案,但这里有一个如何计算需求弹性的示例:

 # Create a data
 df = data.frame(sales = c(18,20,22,23), Price=c(4.77,4.67,4.75,4.74))

 # Run regression 
 formula = lm(sales~., data=df)

 # Get the summary of the regression 
 summary(formula)

 #Call:
 #lm(formula = sales ~ ., data = df)

 #Residuals:
 #      1       2       3       4 
 #-2.6344 -0.9427  1.3040  2.2731 

 #Coefficients:
 #            Estimate Std. Error t value Pr(>|t|)
 #(Intercept)   35.344    170.297   0.208    0.855
 #Price         -3.084     35.983  -0.086    0.940

要计算需求的弹性,我们使用以下公式: PE =(ΔQ/ΔP)*(P / Q)

(ΔQ/ΔP)由我们的回归公式中的系数-3.084确定。

要确定(P / Q),我们将使用平均价格(4.73)和平均销售额(20.75)。

  The PE = -3.084 * 4.73/20.75 = -0.70

  formula$coefficients["Price"]*mean(df[,2])/mean(df[,1])
  # -0.7033066 

这意味着[将您的工资中给定产品的价格]增加1个单位将使销售额减少0.70个单位。

希望有所帮助