混合线性回归

Reads: 861 Edit

1 数据说明

“areaEconomic.xlsx”数据中包含了2011年至2018年我国30个地区的经济数据,我们将根据该数据建立地区经济增长影响因素的混合线性回归模型。其中area中的(1,2,3)分别对应(东部、中部、西部)!

混合线性回归中,如果变量包含了所有情况,则该变量应该采用固定效应,如我国地区安装区位可以分成东中西部,那么数据中东中西部的数据都包含,那么该地区变量就应该使用固定效应;反之,如果变量没有包含所有的情况,如人均gdp的数据属于连续变量,样本数据不可能包含GDP总体的全部,该变量就应该采用随机效应!

2 估计混合线性回归模型

2.1 随机截距

import numpy as np
import pandas as pd
import statsmodels.api as sm


### 初步回归
data = pd.read_excel('D:\\Desktop\\areaEconomic.xlsx', sheet_name='Sheet1', na_values='n/a')
data_balance = data.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)
y=data_balance['pgdp']
X=data_balance[['area', 'year']]
X=sm.add_constant(X)
panel_model = sm.MixedLM(y, X, groups=data_balance['id'])
panel_results = panel_model.fit()
print(panel_results.summary())

估计结果显示:随着年份的增大,人均GDP(pgdp)将提高;地区从东部到西部,人均GDP将下降。

pyt-97

2.2 随机系数(包含交互项)

import numpy as np
import pandas as pd
import statsmodels.api as sm


### 初步回归
data = pd.read_excel('D:\\Desktop\\areaEconomic.xlsx', sheet_name='Sheet1', na_values='n/a')
data_balance = data.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)
y=data_balance['pgdp']
X=data_balance[['area', 'year']]
X=sm.add_constant(X)
panel_model = sm.MixedLM(y, X, groups=data_balance['id'],exog_re=data_balance[['open', 'pfdi']])
panel_results = panel_model.fit()
print(panel_results.summary())

估计结果显示:加入人均外商直接投资(pfdi)和对外贸易(open)两个变量的随机系数(包含交互项)后,地区和year对人均GDP的影响仍然显著,结果较为稳健。

pyt-98

2.3 随机系数(不包含交互项)

import numpy as np
import pandas as pd
import statsmodels.api as sm
from statsmodels.regression.mixed_linear_model import MixedLMParams


### 初步回归
data = pd.read_excel('D:\\Desktop\\areaEconomic.xlsx', sheet_name='Sheet1', na_values='n/a')
data_balance = data.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)
y=data_balance['pgdp']
X=data_balance[['area', 'year']]
X=sm.add_constant(X)

exog_re=data_balance[['open', 'pfdi']]

free = MixedLMParams.from_components(
                 fe_params=np.ones(X.shape[1]),
                 cov_re=np.eye(exog_re.shape[1]))

panel_model = sm.MixedLM(y, X, groups=data_balance['id'],exog_re=exog_re)
panel_results = panel_model.fit(free=free)
print(panel_results.summary())    

估计结果显示:加入人均外商直接投资(pfdi)和对外贸易(open)两个变量的随机系数(不包含交互项)后,地区和year对人均GDP的影响仍然显著,结果较为稳健。

pyt-99



获取案例数据和源代码,请关注微信公众号并回复:Python_dt10


Comments

Make a comment