测试cobb-douglas函数的Constant Return to scale的假设检验:

时间:2016-03-30 09:33:18

标签: python numpy pandas statsmodels patsy

我使用像numpy和pandas + statsmodel这样的scipy项目包进行一些计量经济学工作,比如回归,现在我想要一个显示β1+β2= 1的测试。

我的公式是:$ Ln(Q_i)= \ beta_0 + \ beta_1 Ln(L_i)+ \ beta_2 Ln(K_i)$

我知道在stata中我必须使用这段代码但是在python中我不知道测试β1+β2= 1的最佳方法是什么:

test ln(K)+ln(L)=1

1 个答案:

答案 0 :(得分:1)

感谢@JohnE和JseBold Slides我找到了测试OLS参数和使用statsmodels包的OLS参数的线性组合的方式,它与patsy公式一起工作,这很容易,这是我的代码:

import pandas as pn
import numpy as np
import statsmodels.formula.api as smf

\\reading stata data file:
dp4 = pn.read_stata('datapset4.dta')

\\Rergession:
formula = 'Ln(output) ~ Ln(labor) +Ln(capital)   '
cb= smf.ols(formula, data = dp4).fit()

\\Hypothesis Test for H0: "beta1 + beta 2 = 1"
print(cb.t_test("Ln(labor) +Ln(capital)=1"))



                           Test for Constraints                             
==============================================================================
                 coef    std err          t      P>|t|      [95.0% Conf. Int.]
------------------------------------------------------------------------------
c0             0.9787      0.063     -0.340      0.737         0.850     1.108
==============================================================================

因此,为了测试参数的线性组合,您只需要为所需的变量和线性组合编写patsy公式,并将其放在回归的t_test或f_test方法中:

cb.t_test("Ln(labor) +Ln(capital)=1")

为了测试关于参数的假设,您只需要编写要在引号内测试的等式,例如,如果您想要测试beta1 = 1/2,(beta1作为Ln(人工)系数),您只需要写这段代码:

print(cb.t_test("Ln(labor)=0.5"))
                             Test for Constraints                             
==============================================================================
                 coef    std err          t      P>|t|      [95.0% Conf. Int.]
------------------------------------------------------------------------------
c0             0.6030      0.126      0.818      0.422         0.343     0.863
==============================================================================