IDAS를 사용하는 우리나라 GDP
17549 단어 Pythonmidas혼합 데이터 샘플링시간 시퀀스 분석주조하다
목표
《우리나라 GDP의 나우루 분배에 관한 연구》의 재현성을 확인한다(MIDAS 방법과 브리지 방정식 방법에만 한정)
우리나라 GDP 나우 주입에 대한 탐구
repository 여기 있습니다.
앞말
혼합 데이터 샘플링의 유효성을 조사하기 위해 MIDAS와 브리지 방정식을 사용합니다.
사용된 지수는 광공업지수(생산지수) 광공업종합(이하 iip)과 GDP의 분기 속보치이다.
또한 사용된 데이터는 e-stat의 데이터를 미리 처리한 후에 사용된다.
브리지 방정식 y_t = \alpha + \sum_{i=1}^{N} \beta_i x^Q_{i,t} + \varepsilon _t \\
x^Q_{i,t} = \frac{1}{3}(x^M_{i,3t} + 2 x^M_{i,3t-1} + 3 x^M_{i,3t-2} + 2 x^M_{i,3t-3} + x^M_{i,3t-4})
참조[1]# ブリッジ方程式モデル(単回帰分析)
df4 = pd.merge(gdp, iip, left_index=True, right_index=True, how='outer')
df5 = pd.DataFrame(columns=['BRIDGE'])
x = np.array([])
flag = False
for date, IIP_YOY in zip(df4.index, df4['IIP_YOY']):
x = np.append(x, IIP_YOY)
if flag == False:
if date == '2013-07-01':
flag = True
if flag:
x3t = x[-1]
x3tm1 = x[-2]
x3tm2 = x[-3]
x3tm3 = x[-4]
x3tm4 = x[-5]
xt = (x3t + 2*x3tm1 + 3*x3tm2 + 2*x3tm3 + x3tm4)/3
record = pd.Series([xt],
index=df5.columns, name=date)
df5 = df5.append(record)
df5.index.name = 'DATE'
df6 = pd.merge(df4, df5, left_index=True, right_index=True, how='outer')
df6 = df6.dropna()
# 目的変数(Y)、説明変数(X)
Y2 = df6['GDP_CYOY']
X2 = df6[['BRIDGE']]
# 線形回帰をする
model = linear_model.LinearRegression()
model.fit(X2, Y2)
# パラメータ算出
reg_a = model.coef_[0]
reg_b = model.intercept_
df6['NOWCAST'] = df6.apply(lambda x: reg_b + reg_a*x['BRIDGE'], axis=1)
MIDAS y_t = \alpha + \sum_{i=1}^{K} \sum_{j=0}^{l_i} \beta_{i,j} x^M_{i,3t - j} + \varepsilon _t
# 日本の会計年度が4月始まりのため、4月を起点としている。
df['period'] = pd.to_datetime(df.index.to_series()).apply(
lambda x: 3 if x.month in [1, 4, 7, 10] else (1 if x.month in [2, 5, 8, 11] else 2))
df = df[df.index != '2013-01-01']
df2 = pd.DataFrame(columns=[
'GDP_CYOY', 'IIP_YOY_Q1', 'IIP_YOY_Q2', 'IIP_YOY_Q3'])
for date, GDP_CYOY, IIP_YOY, period in zip(df.index, df.GDP_CYOY, df.IIP_YOY, df.period):
if period == 1:
q1 = IIP_YOY
elif period == 2:
q2 = IIP_YOY
else:
record = pd.Series([GDP_CYOY, q1, q2, IIP_YOY],
index=df2.columns, name=date)
df2 = df2.append(record)
df2.index.name = 'DATE'
# 目的変数(Y)、説明変数(X)
Y = np.array(df2['GDP_CYOY'])
X = np.array(df2[['IIP_YOY_Q1', 'IIP_YOY_Q2', 'IIP_YOY_Q3']])
# 予測モデルを作成
clf.fit(X, Y)
# 偏回帰係数
ab = pd.DataFrame({"Name": ['IIP_YOY_Q1', 'IIP_YOY_Q2', 'IIP_YOY_Q3'],
"Coefficients": clf.coef_}).sort_values(by='Coefficients')
for index, row in ab.iterrows():
if row.Name == 'IIP_YOY_Q3':
b3 = row.Coefficients
elif row.Name == 'IIP_YOY_Q2':
b2 = row.Coefficients
else:
b1 = row.Coefficients
# 切片
print(clf.intercept_)
a = clf.intercept_
df2['NOWCAST'] = df2.apply(lambda x: a + b1*x['IIP_YOY_Q1'] +
b2*x['IIP_YOY_Q2'] + b3*x['IIP_YOY_Q3'], axis=1)
참고 문헌
[1]
[2]
Reference
이 문제에 관하여(IDAS를 사용하는 우리나라 GDP), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sugiyama404/items/dd25e8c7e5b29b0061ba
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
혼합 데이터 샘플링의 유효성을 조사하기 위해 MIDAS와 브리지 방정식을 사용합니다.
사용된 지수는 광공업지수(생산지수) 광공업종합(이하 iip)과 GDP의 분기 속보치이다.
또한 사용된 데이터는 e-stat의 데이터를 미리 처리한 후에 사용된다.
브리지 방정식 y_t = \alpha + \sum_{i=1}^{N} \beta_i x^Q_{i,t} + \varepsilon _t \\
x^Q_{i,t} = \frac{1}{3}(x^M_{i,3t} + 2 x^M_{i,3t-1} + 3 x^M_{i,3t-2} + 2 x^M_{i,3t-3} + x^M_{i,3t-4})
참조[1]# ブリッジ方程式モデル(単回帰分析)
df4 = pd.merge(gdp, iip, left_index=True, right_index=True, how='outer')
df5 = pd.DataFrame(columns=['BRIDGE'])
x = np.array([])
flag = False
for date, IIP_YOY in zip(df4.index, df4['IIP_YOY']):
x = np.append(x, IIP_YOY)
if flag == False:
if date == '2013-07-01':
flag = True
if flag:
x3t = x[-1]
x3tm1 = x[-2]
x3tm2 = x[-3]
x3tm3 = x[-4]
x3tm4 = x[-5]
xt = (x3t + 2*x3tm1 + 3*x3tm2 + 2*x3tm3 + x3tm4)/3
record = pd.Series([xt],
index=df5.columns, name=date)
df5 = df5.append(record)
df5.index.name = 'DATE'
df6 = pd.merge(df4, df5, left_index=True, right_index=True, how='outer')
df6 = df6.dropna()
# 目的変数(Y)、説明変数(X)
Y2 = df6['GDP_CYOY']
X2 = df6[['BRIDGE']]
# 線形回帰をする
model = linear_model.LinearRegression()
model.fit(X2, Y2)
# パラメータ算出
reg_a = model.coef_[0]
reg_b = model.intercept_
df6['NOWCAST'] = df6.apply(lambda x: reg_b + reg_a*x['BRIDGE'], axis=1)
MIDAS y_t = \alpha + \sum_{i=1}^{K} \sum_{j=0}^{l_i} \beta_{i,j} x^M_{i,3t - j} + \varepsilon _t
# 日本の会計年度が4月始まりのため、4月を起点としている。
df['period'] = pd.to_datetime(df.index.to_series()).apply(
lambda x: 3 if x.month in [1, 4, 7, 10] else (1 if x.month in [2, 5, 8, 11] else 2))
df = df[df.index != '2013-01-01']
df2 = pd.DataFrame(columns=[
'GDP_CYOY', 'IIP_YOY_Q1', 'IIP_YOY_Q2', 'IIP_YOY_Q3'])
for date, GDP_CYOY, IIP_YOY, period in zip(df.index, df.GDP_CYOY, df.IIP_YOY, df.period):
if period == 1:
q1 = IIP_YOY
elif period == 2:
q2 = IIP_YOY
else:
record = pd.Series([GDP_CYOY, q1, q2, IIP_YOY],
index=df2.columns, name=date)
df2 = df2.append(record)
df2.index.name = 'DATE'
# 目的変数(Y)、説明変数(X)
Y = np.array(df2['GDP_CYOY'])
X = np.array(df2[['IIP_YOY_Q1', 'IIP_YOY_Q2', 'IIP_YOY_Q3']])
# 予測モデルを作成
clf.fit(X, Y)
# 偏回帰係数
ab = pd.DataFrame({"Name": ['IIP_YOY_Q1', 'IIP_YOY_Q2', 'IIP_YOY_Q3'],
"Coefficients": clf.coef_}).sort_values(by='Coefficients')
for index, row in ab.iterrows():
if row.Name == 'IIP_YOY_Q3':
b3 = row.Coefficients
elif row.Name == 'IIP_YOY_Q2':
b2 = row.Coefficients
else:
b1 = row.Coefficients
# 切片
print(clf.intercept_)
a = clf.intercept_
df2['NOWCAST'] = df2.apply(lambda x: a + b1*x['IIP_YOY_Q1'] +
b2*x['IIP_YOY_Q2'] + b3*x['IIP_YOY_Q3'], axis=1)
참고 문헌
[1]
[2]
Reference
이 문제에 관하여(IDAS를 사용하는 우리나라 GDP), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sugiyama404/items/dd25e8c7e5b29b0061ba
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
y_t = \alpha + \sum_{i=1}^{N} \beta_i x^Q_{i,t} + \varepsilon _t \\
x^Q_{i,t} = \frac{1}{3}(x^M_{i,3t} + 2 x^M_{i,3t-1} + 3 x^M_{i,3t-2} + 2 x^M_{i,3t-3} + x^M_{i,3t-4})
# ブリッジ方程式モデル(単回帰分析)
df4 = pd.merge(gdp, iip, left_index=True, right_index=True, how='outer')
df5 = pd.DataFrame(columns=['BRIDGE'])
x = np.array([])
flag = False
for date, IIP_YOY in zip(df4.index, df4['IIP_YOY']):
x = np.append(x, IIP_YOY)
if flag == False:
if date == '2013-07-01':
flag = True
if flag:
x3t = x[-1]
x3tm1 = x[-2]
x3tm2 = x[-3]
x3tm3 = x[-4]
x3tm4 = x[-5]
xt = (x3t + 2*x3tm1 + 3*x3tm2 + 2*x3tm3 + x3tm4)/3
record = pd.Series([xt],
index=df5.columns, name=date)
df5 = df5.append(record)
df5.index.name = 'DATE'
df6 = pd.merge(df4, df5, left_index=True, right_index=True, how='outer')
df6 = df6.dropna()
# 目的変数(Y)、説明変数(X)
Y2 = df6['GDP_CYOY']
X2 = df6[['BRIDGE']]
# 線形回帰をする
model = linear_model.LinearRegression()
model.fit(X2, Y2)
# パラメータ算出
reg_a = model.coef_[0]
reg_b = model.intercept_
df6['NOWCAST'] = df6.apply(lambda x: reg_b + reg_a*x['BRIDGE'], axis=1)
y_t = \alpha + \sum_{i=1}^{K} \sum_{j=0}^{l_i} \beta_{i,j} x^M_{i,3t - j} + \varepsilon _t
# 日本の会計年度が4月始まりのため、4月を起点としている。
df['period'] = pd.to_datetime(df.index.to_series()).apply(
lambda x: 3 if x.month in [1, 4, 7, 10] else (1 if x.month in [2, 5, 8, 11] else 2))
df = df[df.index != '2013-01-01']
df2 = pd.DataFrame(columns=[
'GDP_CYOY', 'IIP_YOY_Q1', 'IIP_YOY_Q2', 'IIP_YOY_Q3'])
for date, GDP_CYOY, IIP_YOY, period in zip(df.index, df.GDP_CYOY, df.IIP_YOY, df.period):
if period == 1:
q1 = IIP_YOY
elif period == 2:
q2 = IIP_YOY
else:
record = pd.Series([GDP_CYOY, q1, q2, IIP_YOY],
index=df2.columns, name=date)
df2 = df2.append(record)
df2.index.name = 'DATE'
# 目的変数(Y)、説明変数(X)
Y = np.array(df2['GDP_CYOY'])
X = np.array(df2[['IIP_YOY_Q1', 'IIP_YOY_Q2', 'IIP_YOY_Q3']])
# 予測モデルを作成
clf.fit(X, Y)
# 偏回帰係数
ab = pd.DataFrame({"Name": ['IIP_YOY_Q1', 'IIP_YOY_Q2', 'IIP_YOY_Q3'],
"Coefficients": clf.coef_}).sort_values(by='Coefficients')
for index, row in ab.iterrows():
if row.Name == 'IIP_YOY_Q3':
b3 = row.Coefficients
elif row.Name == 'IIP_YOY_Q2':
b2 = row.Coefficients
else:
b1 = row.Coefficients
# 切片
print(clf.intercept_)
a = clf.intercept_
df2['NOWCAST'] = df2.apply(lambda x: a + b1*x['IIP_YOY_Q1'] +
b2*x['IIP_YOY_Q2'] + b3*x['IIP_YOY_Q3'], axis=1)
참고 문헌
[1]
[2]
Reference
이 문제에 관하여(IDAS를 사용하는 우리나라 GDP), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sugiyama404/items/dd25e8c7e5b29b0061ba
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(IDAS를 사용하는 우리나라 GDP), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/sugiyama404/items/dd25e8c7e5b29b0061ba텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)