2018年5月15日火曜日

Analytics系の学びについて

Class of 2018のY.Y.です。春学期後半、最後のハーフセメスターでは、アナリティクス関係の授業を2つ履修しました。これらはいずれも”Experimental Course”(実験的に開講する、新しい授業)で、最先端のトレンドを取り入れた意欲的な授業です。Experimental Courseは過去の評判が参照できないため、授業の良し悪しが事前にわからないのですが、これまでいくつか受講した感想としては、そもそも教授自身が高いモチベーションを持って新しいことに取り組んでいるため、総じて良い授業が多いと感じました。

今回受けた2つの授業も、一部準備不足に感じる部分等はあったものの、やはり教授のモチベーションが非常に高く、また受講する学生側も特にテーマに強く興味を持っている学生が多かったこともあり、極めて満足度の高い授業となりました。

いずれもかなりSpecificなテーマで、マニアックな授業でしたが、アナリティクスに興味がある方には参考になるかもしれないので、以下に報告させて頂きます。アナリティクスにそれほど興味がない方はおそらくあまり面白くないと思いますので、読み飛ばしていただければ幸いです。(一つ目の方はファイナンスに興味がある方の参考にはなるかもしれません。)

Financial Data Analytics II


現在非常に人気が高いプログラミング言語であるPythonを使って、ファイナンスに関するデータ分析を学ぶ授業です。データ分析といえばR言語が最も有名ですが、近年ツールが充実してきたこともあり、データ分析におけるPythonの人気が高まっています。また、人工知能においてよく使われていることからも、近年特に注目されている言語であり(Googleが開発したディープラーニングのライブラリTensorFlowもPythonで利用ができる)、今後データ分析や人工知能のビジネス活用を検討する上で習得しておいて損はないと考えました。併せて、これまであまり多く履修してこなかったファイナンスについての知識についても深められることを期待し、今回受講しました。実際に受講してみてこれらの期待は十分以上に満たされたと感じています。なお、この授業は前後半に分かれており、春学期前半のFinancial Data Analytics IでPythonそのものを基本から学び、今回のFinancial Data Analytics IIで実際にPythonを活用してデータ分析を実践するという構成になっていました。
 実際に授業で学んだ内容は非常に盛り沢山で充実しており、以下にその一部を記載させていただきます。

  • AAII (American Association of Individual Investors)の集計データを元にした、株価に関するセンチメント分析
    • 市場のセンチメントは、過去の株式リターンと強く相関する(センチメントが強気であっても、実際には将来のリターンは約束されない)ことが確認できた
    • 市場が強気な場合、むしろ将来のリターンはネガティブ、弱気な場合はほぼリターンゼロ、ニュートラルな場合はポジティブ、ということが統計的優位に示された。これは直感と反していて面白い。
  • S&P500企業の過去の株価データを元に、モメンタムに基づく投資(勢いのある銘柄に投資)をシミュレーション
    • 短期的にはモメンタムは継続する傾向があることが確認された
    • この戦略をとった場合のリターンそのものは、単純にS&P500株を一定して保有し続けた場合よりも低かった
    • しかしながら、この戦略をとった場合のシャープレシオ(リスクに対するリターンの高さを測る指標)は、単純にS&P500株を一定して保有し続ける場合よりも高く、リスクに対するリターンが改善していた。つまり戦略としては有効だった。
  • シミュレーションによる最適なポートフォリオの決定
    • Apple, Amazon, Microsoft, Facebook, Googleの5社の株によって構成するポートフォリオを組むことを想定し、そのシャープレシオが最大となるポートフォリオの構成比率をシミュレーションにより決定する
    • シミュレーションの結果は以下の通り。ランダムに与えた様々な構成比率により作成した多数のポートフォリオの成績をグラフにプロットしたもの。色が黄色に近いほどシャープレシオが高く、青(紫)に近いほどシャープレシオが低い。赤い星はシャープレシオが最大となるポートフォリオ、黄色い星はボラティリティ最小となるポートフォリオ、×印は効率的フロンティア(あるリスク量に対しリターンが最大となるポートフォリオ)を示している。

最適ポートフォリオのシミュレーショングラフ

    • このように、Pythonを使うことで複雑な情報をわかりやすく視覚化することも非常に容易にできるというのが印象的だった。
  • Google Trendsに基づく株価変動予測
    • Google Trendsを用いて市場のセンチメントを計測する指標 ”FEARS” が提唱されている。例えば、市場が弱気になる時は “debt” という単語が多く検索されるようになる。FEARSは、これらの市場のセンチメントを反映する単語の検索頻度を総合した指標。
    • これを参考に、例えば“debt” という単語の頻度が急に増えた場合には株を売り、急に減った場合には株を買うという戦略を、過去のダウ平均株価を用いて検証した結果、有効であることが確認できた
  • ペアトレード戦略の有効性検証
    • ペアトレードとは、互いに株価が連動する2つの株を見付け出し、それらの株価の動きが乖離した場合には将来的に元に戻ると予想されるため、割安の株を買い割高の株を売ることにより、株価が戻った際に利益をあげることができるという戦略。
    • 1980年代のデータを用い、様々な株式の組み合わせのうち、最もよく相関しているペアを特定した上で、戦略の有効性を検証。非常に良いリターンを得られることが確認できた。
    • ただし現在ではすでに広く知られすぎており、この戦略だけで利益を上げることは難しい。
  • 自然言語処理ライブラリを利用したセンチメント分析
  • SEC.govのフォーム4の情報を分析することにより、インサイダー取引を統計的に把握する
以上のように、授業で実際にプログラムを作りながら学んだ内容は多岐にわたっており、特にファイナンスに関する様々な概念や理論は初めて知るものが多く大変勉強になりました。今回はファイナンスが得意な友人とチームを組み、プログラミングについて教える代わりにファイナンスの関連知識を教えてもらうということができたため、お互いにWin-Winで授業外でも色々と学ぶことができました。
 また、自由にファイナンス関連のテーマを選びPythonを使ってそのテーマに取り組む、という課題がファイナルプロジェクトとして課されたのですが、私たちのチームでは「小型株効果 」に着目し、ニューヨーク証券取引所及びNASDAQにおける2012〜2016年の全ての小型株のデータと過去の株価の実績データをもとに回帰分析を行い、小型株の中かから収益率の高い銘柄を見つけ出すために有効な指標を特定するプロジェクトに取り組みました。最終的に様々な指標を試行した結果、以下のような興味深い結果が得られました。

  • 自社株買い戻しがあった場合は、その2年後に有意に高い(自社買い戻しのない会社と比べ、2年間で20%程度向上)収益率が得られている。
  • モメンタムは小さくはあるが、1年程度の長期にわたって継続している。(つまり、上昇傾向にある株式はその後1年程度はさらに継続して上昇する可能性が高い)
  • 想定と反し、売り上げの増加は株式のリターンへの影響がほとんどなかった
  • 直感とは逆に、自己資本比率(一般的に自己資本比率が高い場合会社の倒産リスクが低い)が低い会社の方が、リターンが大きかった。自己資本比率30%以下の会社は、30%より大きい会社に比べ2年間で14%収益率が高かった。
  • 直感とは逆に、配当のあった会社は、配当のなかった会社と比べ、その後1年程度リターンがやや小さかった。(約3%の差)


Business Application of Machine Learning


Predictive Analytics & Data Mining (K513)の知識を前提に、さらに進んだMachine Learning(機械学習)のテクニックやビジネスへの応用について学ぶ授業です。特に、以前のPredictive Analytics & Data Miningではデータマイニングに必要なビジネスそのものへの理解や、得られたインサイトをビジネスに活かすためのビジュアライゼーションの重要性を強調しており、分析の手法そのものについてはあまり深く学ばなかったのに対し、今回の授業では様々な分析の手法と実務への活かし方を深く学ぶことができました。

 具体的には、引き続きIBM SPSS Modelerというソフトウェアを使いながら、分析のアルゴリズムやツールとして、前回も学んだ「決定木モデル」の更に詳しいアルゴリズム(CART/C5.0/Random Forest etc.)や、PCA(主成分分析)、k-NN(k近傍法)、ニューラルネットワーク(中間層2層までの比較的「浅い」ディープラーニングの応用)、テキスト分析等を実践的に学びました。また、分析結果の解釈方法についてもかなり重点的に学び、ROCカーブやリフトチャート等といった機械学習の性能を示すグラフの読み取り方や、Accuracy、Sensitivity、Selectivity、PPV、NPV、AUC、Giniといった指標の定義・解釈方法などを身につけることができました。

 番外編として、IBMのWatson Analyticsという、最近話題の人工知能Watsonを使った機械学習の体験も行いました。これは、データをIBMのサーバーにアップロードするだけで、ほぼ自動的に人工知能が様々な分析を行い、意思決定上役に立ちそうな分析結果を提示してくれるというもので、その簡単さとスピードは驚異的でした。「人間の仕事が人工知能によって奪われる」という言説をよく耳にしますが、こういう技術を見せつけられると、確かにそういう可能性をつい考えてしまいます。ただ教授の意見としては(私も同意見ですが)、こういった高度なツールの登場によってデータ分析ができる人の仕事がなくなるのではなく、むしろデータ分析をする人がもっと重要なタスク(どういうデータを集め、得られた結果からどう意思決定に影響を与えるか)に集中することができるようになり、より高度なデータ活用が可能になるのだ、ということでした。いずれにしても、人工知能の活用は不可逆的な時代の流れであり、どんな企業においても今後は必要不可欠だということを実感する、衝撃的な経験でした。

 この授業全体を通じて、データマイニングや機械学習の様々なテクニックに触れることができたため、ビジネスにおけるアナリティクスがかなり見通しよく俯瞰できるようになったとともに、機械学習は必ずしも、これまでイメージしていたほど難解で高度な専門性を要するものではないということが分かり、ビジネスの中での活かし方が考えやすくなりました。もちろん、非常に高度な分析や特殊な分析のためには依然として専門的な知識のあるデータアナリストやプログラマが必要になりますが、ビジネスにおけるかなりの部分のニーズは既に手軽なツールで満たせるようになってきていますし、また、仮に専門的な技術者が必要になるような分析を行うとしても、彼らとコミュニケーションを取るために必要な基本的な知識・概念は十分に学ぶことができたと思います。

分析ツール (SPSS Modeler) によって生成されたニューラルネットワークの例
プログラミングをしなくても、このような簡単な構造のニューラルネットワークであれば半自動的に生成できる。

以上のように、Kelleyでも最新のトレンドを取り入れた様々な取り組みを随時行なっていますので、皆さんのニーズや興味を満たせる機会が色々とあるのではないかと思います。

0 件のコメント:

コメントを投稿