SIGNATEの日本証券取引所(JPX)主催のコンペ第二弾が開催されております。(詳細はこちら)
第一弾は株価や財務諸表から20営業日中の最高値と最安値を予測するものでした。
第二弾は、1週間の収益が高くなるポートフォリオを組成するものとなっております。
原資が100万円なので、現実的にはポートフォリオに組み込める銘柄数はごくわずかとなってしまいます。しかし、本コンペでは単元株数を1としているため、複数銘柄の分散投資が可能となっております。
他にもポートフォリオ組成に関して以下のルールが設定されております。
- (要件1)原資100万円のうち、50万円以上株の購入に充てられていること
- (要件2)購入銘柄数が5銘柄以上であること
今回のコンペにおいて第一弾との大きな違いは、タイトルにもある通りニュース情報を利用できることにあると思います。
しかし、ポートフォリオの組成にニュース情報は必ずしも利用する必要はありません。
実際にチュートリアルでは、ニュース情報を利用しない方法として、トレンドフォロー・逆張り手法に基づく方法や第一弾のモデルを利用した方法が紹介されておりました。
本コンペで上位に入賞するには、タイトルを度外視してニュース情報を利用しないポートフォリオを組成したほうが良いのかもしれません。
ただ、今回は自然言語処理(NLP)の学習を第一目的とし、ニュース情報を利用したポートフォリオの構築と提出を最終目標として本コンペに取り組みたいと思います。
今回の記事では、まず最初にニュースの定量データとリターンの関係について調べてみたのでそれについて簡単にまとめています。
調べた内容とその結果は以下の通りです。
- 写真の有無とリターンの関係性について ⇒ 関係あり
- 記事の文字数とリターンの関係性について ⇒ あまり関係ない
- ニュースの公表とリターンの関係性について(イベントスタディ分析を実施) ⇒ 関係あり
写真の有無について
まずはニュースにおける写真の有無の分布を調べてみます。(0: 無, 1:有)
上図を見ると、写真が無いデータに偏りがあるのがわかります(感覚的にも当たり前ですが)。
写真があるニュースは2万件弱あるので比較検証においては問題なさそうです。
そこで、記事の公表後(1営業日, 5営業日, 20営業日)に両群でリターンに差があるかを検証してみます。
本来は、記事の内容の極性(ポジティブ・ネガティブ)に基づきリターンの正負において差があるか見てみたいところです。
しかし、今回は極性が不明なので市場度合(プラス, マイナス, 絶対値)で差があるかを見てみました。
ニュース公表後のリターンを算出
上記の分析をするために、まずはニュース公表後のリターンを計算します。
ただし、時間外取引を除けば、一般的な取引時間は9:00~15:00である為、終値とニュースの関連付けは注意が必要です。
つまり、15:00以降に公表されたニュースと当日中の終値を関連付けてはいけないです。
今回は15:00以降に公表されたニュースは翌日の終値と関連付けることにします。
本来は取引との兼ね合いから14:30~14:55?位を境にすべきかもしれません。
ニュースの時間別の公表数の分布は以下の通りです。
感覚的に既知の事実ではあるもしれないが、15時以降に記事に公表されてることが多いのがわかります。公表時間毎で市場へのインパクトに差があるかも見てみると面白いのかもしれないです。(今回は時間の都合上、検証しないせん。)
結果
1営業日, 5営業日, 20営業日後のリターンと写真の有無による散布図は以下の通りです。
写真が無い方が裾が広いように見えます。
下図の一番左はニュース公表後の市場へのインパクトを比較する為に両群の絶対値リターンの平均をプロットした結果です。
残り二つの図は、リターンをプラス・マイナスに分け、両群の平均を比較した結果です。
上図を見ると、写真の有無でリターンに差があるように見えます。
そこで平均の差の検定を行ってみました。結果は以下の通りです。
全期間において絶対値・プラス・マイナスでp値≒0となっており、帰無仮説は棄却され、統計的に写真の有無はリターンに差がある可能性があることがわかります。
写真があるニュースはその日の出来事の中で特に注目される(影響の大きい)記事であることが多い為、上記のような結果となったのかもしれません。
ここまでの結果を踏まえると、予測モデルの特徴量に写真の有無を利用してみるとよいかもしれません。
記事の文字数について
ニュース記事の文字数が多いほど市場への影響が大きいニュースの可能性が高いかもしれません。
そこで記事の文字数でユニバースを5分位に分け、第1分位と第5分位でリターンの差が見られるか検証してみました。
まずは、各ニュース記事の文字数の分布を見てみます。
全体的に文字数が少ない記事が多いことがわかります。
次に各期間におけるリターンと文字数の散布図を見てみます。
全体的にリターンはプラスに若干偏っているように見えます。
また、記事が長くなるとリターンは0近辺に集中している様子がうかがえます。
これは長い記事であるほど市場ではすでに既知となっており、すでに価格に織り込まれているのかもしれないです。
また、短い記事では即効性があるため、その分市場へのインパクトも大きく、リターンにばらつきが見られるのかもしれません。
(話はそれますが・・・)
このグラフはJane Street Market Prediction(Kaggleのコンペ)のデータと非常に似ているなと思いました。
ちなみにKaggleのデータをもとに作成した散布図は以下です。
縦軸がリターン、横軸がWeightとなっております。まったく同じわけではないと思いますが、間接的に共通している要因があるのかもしれません。
結果
以下の図は、文字数でユニバースを分割し、各期間におけるリターンをプロットしたものです。
この結果から以下のことがわかります。
- 文字数によるリターンの差はない
- 文字数が一番少ないport_1はリターンがマイナスになりやすい傾向がある?
- port_5はリターンがプラスの傾向があるが、port_4ではリターンがマイナスの傾向があるため、文字数が多い場合にプラスの傾向があるとは言えない
以上から文字数を活用するのは難しい気がしました。
ただ、記事が長くなるとリターンは0近辺に集中する様子が見られたので安定した(リスクの少ない)ポートフォリオを構築する際には活用できるのかもしれません。
ニュース公表後の影響について
そもそも各銘柄のニュースが公表されると各銘柄の株価に影響があるのか確認しておく必要があります。
その手法としてイベントスタディ分析があります。
イベントスタディ分析については、以下のサイトを参考にしました。
詳細は割愛しますが簡単に言うと、過去の推定期間で回帰モデルを推定し、イベント前後の実測値が推定値に対して異常かを検定します。
イベントスタディ分析
推定モデルには以下のモデル(資本資産評価モデル:CAPM)を利用しました。
$$E[R_i] = R_f + \beta_i[E(R_m) – R_f]$$
\(R_f\)には無担保コール翌日物金利、\(R_m\)にはTOPIXのリターンを使用しました。
それぞれのデータはpanas-datareaderから取得しました。(pandas-datareaderについては過去の記事にまとめてます。)
また、\(R_f\)は月次データとなっていたため、日次換算した(1ヶ月間同じ値にした)ものを利用しております。
公表日を0としてその直後の二日間のアブノーマルリターン(AR)とアブノーマルリターンの累積(CAR)を集計した結果が以下の通りです。
R2は推定したモデルの決定係数を表しております。
イベントスタディ分析に則り、累積アブノーマルリターンの平均がゼロか検定をします。
結果は、t値:2.61(p値:0.00)となりました。
したがって有意水準1%で帰無仮説は棄却され、ニュースの公表は株価にインパクトがある可能性があることがわかりました。
次にニュース公表直後の約20日間のARの推移を見てみます。
公表直後は市場へインパクトがあるが、20日も立つと影響は無くなっていく様子が見られました。
したがって、今回のコンペの予測対象である1週間であればニュース情報は利用できる可能性がありそうです。
また、ニュース公表後に変化率がマイナスに大きい場合は、平均への回帰を利用したトレーディング手法を構築することができるかもしれません。
今回のコンペでは5営業日後のリターンが成績となるため、この戦略を利用するには期間が短いと思いますが…。
ここまで、ニュースの内容にかかわらず公表直後の影響について見ました。
ニュースの内容をポジティブ/ネガティブに分類し、各グループで公表直後の影響について見てみると新たな知見が得られるかもしれません。
ニュースの内容を識別アプローチとしては以下が考えられます。
- ニュース内容を確認し、ラベルを付与する(今回のコンペでは厳しい)
- 将来のリターンと紐づける
2点目について、個別銘柄のニュースから将来の株価を予測モデルになります。
チュートリアルには「各週の数千個のニュースを利用して、次の週に値上がりする銘柄を予測するには、ニュース数と銘柄のバランスから難しい」と記載有りがありました。
有識者の方が言っていることなので今回のコンペにはそぐわないかもしれません。
ただ、興味はあるので次回の記事にまとめてみたいと思います。
まとめ
今回は、ニュースの定量データとリターンの関係について調べてみました。
結果は最初にも述べましたが、写真の有無はリターンに影響する可能性があることやニュースそのものは個別銘柄のリターンに影響を与える可能性があることがわかりました。
また、ニュースは公表後、20日前後でニュース公表のイベント効果が無くなる様子も見られました。
次回は、ニュース記事から個別銘柄の予測モデルの構築をしてみた結果についてまとめます。
(⇒次の記事)
ご参考
今回の記事に関するプログラムはGithub(こちら)に公開ております。
【ipynb】
- Analysis_Text_data_public.ipynb: ニュースデータのEDAとAPIのお試し利用
コメント