目录
原物料价格飙涨、通膨以及升息是今年金融市场的主要议题,新闻媒体也时常报导台湾股市近期的走跌与国际资金流动有关,因此本文便将以此为出发点,透过统计方法分析台湾股市与美债殖利率的关系。
本文使用MacOS 并以 Jupyter Notebook 作为编辑器。
# 基本功能 import numpy as np import pandas as pd
# TEJ API import tejapi tejapi.ApiConfig.api_key = 'Your Key' tejapi.ApiConfig.ignoretz = True
总体经济说明表:针对总体经济表的科目所使用的说明表,资料代码为(GLOBAL/ABMAR)。
总体经济表:政府部门发布的总体经济指标,来源包含IMF与OECD,以及相关专业刊物。资料代码为(GLOBAL/ANMAR)。
上市(柜)调整股价(月)-除权息调整:以上市的证券及指数之月资料为收录对象(TSE及OTC)。资料代码为(TWN/AAPRCM1)。
Step 1. 读取总经资料名称&代码
factor_macro = tejapi.get('GLOBAL/ABMAR', opts={'columns': ['coid','mdate', 'cname', 'freq']}, chinese_column_name=True, paginate=True)
select_1 = list(factor_macro['中文全称'][i] for i in range(0,6214) if '殖利率' in factor_macro.iloc[i,2])
上述过程首先,读取所有总经资料库数据的名称;随后,透过设定条件中文名称内含有“殖利率”三个字,筛选出“美国十年期公债殖利率”。
factor_macro[factor_macro['中文全称'] == '美国十年期公债殖利率']
借由中文全称的条件,找到该笔数据的总经代码 — CA15。
Step 2. 读取美债殖利率数据
yield_10yr = tejapi.get('GLOBAL/ANMAR', mdate={'gte': '2020-01-01', 'lte':'2022-03-01'}, opts={'columns': ['mdate', 'val']}, coid = 'CA15', chinese_column_name=True, paginate=True) yield_10yr = yield_10yr.rename(columns = {'数值':'yield_10yr'}) yield_10yr.head()
Step 1. 读取指数、基金报酬数据
index_list = ['Y9997', '0053', '0055', '0056']
index_data = tejapi.get('TWN/APRCM', coid = index_list, mdate= {'gte': '2020-01-01', 'lte': '2022-03-01'}, opts={'columns': ['coid', 'mdate', 'roi']}, paginate = True, chinese_column_name = True)
本文选择以Y9997报酬指数作为台股大盘的代表;0053是电子类股的基金;0055为金融股基金;0056则是高股息类型的基金。
Note:0056并非纯传产类型的基金,其主要成分股亦包含电子股中的高殖利率标的。
Step 2. 资料表整理
index_data = index_data.set_index('年月')
roi = {}
for i in index_list: r = index_data[index_data['证券代码'] == i] r = r['报酬率%_月'] roi.setdefault(i, r)
roi = pd.concat(roi, axis = 1).reset_index() roi.head()
Step 1. 资料整合
final = pd.merge(roi, yield_10yr, how = 'inner', on = ['年月']) final = final.rename(columns = {'Y9997':'台湾大盘', '0053':'电子股', '0055':'金融股', '0056':'高股息'}) final.head()
Step 2. 模型适配
import statsmodels.formula.api as smf from statsmodels.stats.anova import anova_lm
for i in list(final.columns)[1:5]: data = pd.DataFrame(final[[i, 'yield_10yr']]) mdl = smf.ols(i + ' ~ yield_10yr', data=data).fit() print(i) print() print(mdl.summary()) print()
首先借由“list(final.columns)[1:5]”取得final表中各类型指数或基金的名称,接著套入回圈中,各别与美国10年期公债殖利率做适配,以下将逐一说明模型结果。
首先看到10年期债殖利率的解释变数栏位(红色匡格),在系数栏位可以知道两项数据为负相关;而透过P值为0.169可以很有信心地判断其对台股大盘的作用并没有显著性;此外,R²(蓝色匡格)为0.074也说明解释能力相当的不足。
在解释变数栏位(红色匡格),可以了解两项数据亦为负相关,透过P值为0.042可以判断美债殖利率对台湾电子股的表现具有显著性,然而并未达到最高标准的0.01,因此综合考量R²(蓝色匡格)为0.156,则推论该解释变数具有些微的解释强度。
在解释变数栏位(红色匡格),可以了解两项数据为正相关;而透过P值为0.357可以很有信心地判断其对台股大盘的作用并没有显著性;此外,R²(蓝色匡格)为0.034也说明解释能力相当的不足。
在解释变数栏位(红色匡格),可以了解两项数据为负相关;而透过P值为0.622可以很有信心地判断其对台股大盘的作用并没有显著性;此外,R²(蓝色匡格)为0.010也说明解释能力相当的不足。
透过上述模型结果,相信读者可以知道,除了电子相关类股以外,美债殖利率对于台湾大盘、金融股以及高股息标的解释能力并没有达到一定的程度;然而这并非说明台股投资者可以轻忽美国的总体经济或联准会的货币政策,毕竟作为世界经济龙头,其总经现况及央行态度还是会影响国际资金的流动,并且台湾当然也不例外,因为台湾产业发展主轴是科技电子股,从报表中也可以观察到美债殖利率对此族群的影响,这提醒我们在今年通膨与升息议题的环境下,作为台股投资者,更需要注意美国的产经动向;因此,欢迎持续关注本平台,后续会有更多文章说明总体经济对股票市场的影响;此外,也欢迎读者选购 TEJ E Shop中的方案,相信读者具有完整的资料库后,就能轻易地把握市场动向。