Amazon Web Services ブログ
AWSローコード-ノーコードサービスによる投資プロセスの高速化
このブログ記事は Accelerate the investment process with AWS Low Code-No Code services を翻訳したものです。
ここ数年、機関投資家を顧客とする資産運用会社では、様々なデータソースから入手したデータをもとに運用するプロセスにおいて大きなパラダイムシフトが起きています。リスク相関の頻繁な変化、予期せぬボラティリティの増大、パッシブ戦略との競争の増加などに伴い、資産運用会社は競争力を高め最終的な損益向上のために、より幅広いサードパーティのデータソースを利用しています。しかし、複数のデータソースから利益を引き出すプロセスは大きな困難を伴います。資産運用会社のデータエンジニアリングチームはデータの取得と前処理に追われ、データサイエンスチームは投資に関するインサイトを得るためにデータをマイニングしています。
サードパーティまたは代替データとは、従来の市場データのプロバイダー以外から入手した、投資プロセスで使用されるデータのことを指します。機関投資家は投資プロセスで優位に立つために、従来のデータソースをサードパーティや代替データで補強することがよくあります。典型的な例としては、衛星画像・クレジットカードのデータ・ソーシャルメディアのセンチメントなどが挙げられますが、これらに限定されるものではありません。ファンドマネージャーは年間30億ドル近くを外部のデータセットに投資しており、その投資額は年20~30%の成長率で増加しています。
利用可能なサードパーティや代替データセットが急激に増加しているため、新しいデータセットによって新しいインサイトを得られるかどうかを迅速に分析する能力は、投資管理業界における競争上の差別化要因となっています。AWSのローコード・ノーコード(以下LCNCと表記)のデータおよびAIサービスは、非技術系チームが初期のデータスクリーニング・データオンボーディングの優先順位付け・インサイトを得るまでの時間の短縮・貴重な技術リソースの解放を行うことで、持続的な競争優位性を生み出すことを可能にするものです。
このブログでは、機関投資家向け資産運用会社としてAWS LCNCのデータおよびAIサービスを活用することで、技術系チームを超えた初期のデータ分析および優先順位付けのプロセスを拡張し、意思決定を加速させる方法について説明します。AWS LCNCサービスを利用することで、多様なサードパーティのデータセットへのサブスクライブと評価・データの前処理・機械学習(ML)モデルによる予測能力の確認を、コードを一行も書かずに迅速に行えるようになります。
ソリューション概要
ここで取り上げるユースケースは、外部のデータセットの株価予測能力を分析し、その特徴量の重要度(どのフィールドが最も株価のパフォーマンスに影響を与えるか)を特定することです。これは、データセットの複数フィールドのうち、どのフィールドを従来の定量的手法でより詳細に評価し投資プロセスに適用すべきかを特定するためのファーストパステストとして機能します。このようなファーストパステストはアナリストが迅速に行うことができるので、時間の節約とより迅速なデータセットのオンボーディングにつながります。また、ここでは株価を例としていますが、収益性、評価比率、取引量など他の指標も使用できます。このユースケースで使用する全てのデータセットは、AWS Data Exchangeで公開されています。
以下の図では、エンドツーエンドのアーキテクチャと、意思決定を加速するために利用されるAWS LCNCのサービスを説明しています。
私たちのソリューションは、以下のステップとソリューションで構成されています。
- データインジェスト:AWS Data Exchangeにより公開された代替データセットをサブスクライブし、Amazon Simple Storage Service (Amazon S3)のバケットにダウンロードします。
- データエンジニアリング:AWS Glue DataBrewで、Amazon S3に保存されたデータのデータエンジニアリングと変換を行います。
- 機械学習:Amazon SageMaker Canvasを利用して、時系列予測モデルの構築と、予測に対するデータの影響を特定します。
- ビジネスインテリジェンス:Amazon QuickSight または Amazon SageMaker Canvas を利用して、意思決定のための各特徴量の重要度を確認します。
データインジェスト
AWS Data Exchangeによって、クラウド上でサードパーティのデータを簡単に見つけ、サブスクライブし、使用することができます。AWS Data Exchangeのカタログを閲覧してビジネスに関連するデータを見つけ、プロバイダーからデータをサブスクライブすれば、それ以上の処理は必要なくETLプロセスも不要です。なお、多くのプロバイダーは初期サブスクリプションを無料で提供しているので、最初の初期費用なしでそれらのデータを分析することができます。
このユースケースでは、AWS Data Exchangeで以下のデータセットを検索し、サブスクライブします。
- Alpha Vantageが提供する20 Years of End-of-Day Stock Data for Top 10 US Companies by Market Capというデータです。この無料データセットには、2020年9月5日時点での過去20年間における米国の株価時価総額上位10社のデータが含まれています。このデータセットには、以下の10銘柄が含まれています— AAPL: Apple Inc.; AMZN: Amazon.com, Inc.; BRK-A: Berkshire Hathaway Inc. (Class A); FB: Facebook, Inc.; GOOG: Alphabet Inc.; JNJ: Johnson & Johnson; MA: Mastercard Incorporated; MSFT: Microsoft Corporation V: Visa Inc.; and WMT: Walmart Inc.
- 主なデータ項目は以下の通りです。
- Open:当日の始値
- High:当日の高値
- Low:当日の安値
- Close:当日の終値
- Volume: 当日の出来高
- Adjusted Close:当日の分割・配当調整後株価
- Split Ratio:効力発生日の新株式数と旧株式数の比率
- Dividend:権利落ち金額幅
- S3 Short Interest and Securities Finance Data という S3 partnersによって公開されたデータも利用します。このデータセットには、以下のフィールドが含まれています。
Field | Description |
Business Date | レートの有効期限 |
Security IDs | Sedol, ISIN, FIGI, Ticker, Bloomberg IDを含む証券コード |
Name | 証券名 |
Offer Rate | 既存のショートポジションに支払った市場のコンポジットファイナンス料 |
Bid Rate | 長期保有者による既存株式の貸出に対する市場コンポジット貸出料 |
Last Rate | 当日に貸し出された株式の増加分に対して得られる市場コンポジット貸出料(スポットレート) |
Crowding | 市場浮動株に対する日々の空売りやカバーイベントを測定したモメンタム指標 |
Short Interest | リアルタイムの空売り残高を株式数で表した値 |
ShortInterestNotional | Short Interest × 価格 (USD) |
ShortInterestPct | リアルタイムの空売り残高を浮動株に対する比率で表した値 |
S3Float | 空売りによるシンセティック・ロングを含む取引可能株式数 |
S3SIPctFloat | リアルタイムの空売り予想値をS3Floatで割った値 |
IndicativeAvailability | S3が予測した貸出可能量 |
Utilization | リアルタイムの空売り残高 ÷ 貸出可能な総供給量 |
DaystoCover10Day | 流動性指標=空売り残高/10日平均 一日平均出来高 |
DaystoCover30Day | 流動性指標=空売り残高/30日平均 一日平均出来高 |
DaystoCover90Day | 流動性指標=空売り残高/90日平均 一日平均出来高 |
Original SI | ある時点での空売り残高 |
データを取得するには、まずAWS Data Exchangeでデータセットを検索し、そのデータセットをサブスクライブします。
データセットの発行元があなたのサブスクライブリクエストを承認すると、データセットがあなたのS3バケットにダウンロードできるようになります。
Add auto-export job destinationを選択し、S3バケットの詳細を入力してデータセットをダウンロードします。
Alpha Vantageのデータセットを取得する際も、この手順と同様にします。完了すると、あなたのS3バケットに両方のデータセットが格納されます。
データエンジニアリング
データセットがS3バケットに格納されたら、AWS Glue DataBrewを使ってデータを変換することができます。AWS Glue DataBrewは350以上のビルド済み変換処理を提供しており、通常なら数日から数週間かけて変換処理を自らコーディングしなければならないデータ準備タスク(異常値のフィルタリング、書式の標準化、無効な値の修正など)を自動化します。
予測用の統合されたキュレーションデータセットをAWS DataBrewで作成するには、以下のステップを実行します。詳細については、こちらのブログをご参照ください。
- DataBrewのデータセットを作成する。
- DataBrewデータセットをDataBrewプロジェクトに読み込む。
- DataBrewのレシピをビルドする。
- DataBrewのジョブを実行する。
DataBrewデータセットを作成する:AWS Glue DataBrewでは、データセットとはS3バケットからアップロードされるデータのことを指します。今回は、2つのDataBrewデータセット(終値とS3 partnersデータの空売り残高の両方)を作成します。データセットを作成する際、S3接続の詳細は一度だけ入力します。その時点から、DataBrewはあなたに代わって基本的なデータにアクセスすることができるようになります。
DataBrewデータセットをDataBrewプロジェクトに読み込む:AWS Glue DataBrewでは、プロジェクトがデータ分析・変換の中心的な役割を担います。DataBrewプロジェクトでは、DataBrewデータセットをまとめ、データ変換(DataBrewレシピ)を開発することができます。ここでも、終値とS3 partnersデータの空売り残高の2つのDataBrewプロジェクトを作成します。
DataBrewのレシピをビルドする:DataBrewでは、レシピはデータ変換のステップの集合です。これらのステップをデータセットに適用することができます。今回のユースケースでは、2つの変換を構築します。1つ目の変換ではデータセットをS3 partnersデータの空売り残高で結合できるように、終値のタイムスタンプ列の書式を変更します。
2つ目の変換ではデータをキュレーションし、最後のステップではデータセットを結合して1つのキュレーションされたデータセットにします。データ変換レシピのビルド詳細については、こちらのブログを参照してください。
DataBrewのジョブ:DataBrewレシピの作成後、まず終値ジョブを実行し、次にS3 partnersデータに対する空売り残高ジョブを実行することができます。こちらのブログを参照して、1つの統合データセットを作成してください。最終的にキュレーションされたデータセットをS3バケットに保存します。
エンドツーエンドのデータエンジニアリングワークフローは次のようになります。
機械学習
データエンジニアリングによって作成されたキュレーションデータセットを使って、予測モデルを構築し特徴量が予測に与える影響を分析するためにAmazon SageMaker Canvasを利用いただけます。Amazon SageMaker Canvasはビジネスユーザーに視覚的なポイント&クリックインターフェースを提供し、ご自身でモデルを構築して正確な ML 予測を生成することができるようにします。ML の経験やコードの実装は必要ありません。
Amazon SageMaker Canvasで時系列予測モデルを構築するには、以下のステップに従います。詳細については、こちらのブログをご参照ください。
- SageMaker Canvasでキュレーションデータセットを選択します。
- 時系列予測モデルを構築します。
- 結果と特徴量の重要度を分析します。
時系列予測モデルの構築:データセットを選択したら、予測対象の列を選択します。今回の場合、銘柄の終値になります。SageMaker Canvasは、これが時系列予測の問題であることを自動的に検出します。
時系列予測のために、以下のようにモデル構成を設定する必要があります。Item ID には、銘柄を選択します。このデータセットには上位10件の銘柄があることを思い出してください。Time stamp columnにはTimestamp列を選択し、最後に将来的に予測したい日数(Forecast Horizon)を入力します。
これで、モデルを構築する準備が整いました。SageMaker Canvasには、モデルを構築するための2つのオプションがあります。クイックビルドとスタンダードビルドです。今回は「スタンダードビルド」を使用します。
スタンダードビルドは、予測エンジンとしてMLによる時系列予測サービスAmazon Forecastを利用し、約3時間でモデルを構築します。ForecastはMLの経験を必要とせず、伝統的なモデルとディープラーニングモデルのアンサンブルにより、精度の高い予測を作成します。
モデルが構築されると、モデルのパフォーマンス(予測正解率)と特徴量の重要度を確認することができます。下図からわかるように、このモデルではCrowdingとDaysToCover10Dayを予測値を算出するための上位2つの特徴量として認識しています。これは市場の直感と一致しています。Crowdingは日々の空売りやカバーイベントを測定するモメンタム指標であり、短期空売りは流動性指標で投資家が株式にどのようなポジションをとっているかを示しているからです。モメンタムと流動性は両方とも価格変動に寄与する可能性があります。
この結果は、この2つの特徴量(もしくはフィールド)が株価の動きと密接な関係があり、データオンボーディングや今後の分析においてより高い優先順位となることを示唆しています。
ビジネスインテリジェンス
時系列予測の文脈においてバックテストという概念は、既存の履歴データを使って予測手法の精度を評価するプロセスのことを指します。このプロセスは通常反復的なもので、履歴データに存在する複数の日付にわたって繰り返されます。
すでに説明したように、SageMaker Canvasは時系列予測のためのエンジンとしてAmazon Forecastを使用しています。Forecastはモデル構築プロセスの一部としてバックテストを作成します。Amazon Forecastにサインインすることで、予測器の詳細を確認することができます。モデルの説明可能性についてより深く理解するためには、こちらのブログを参照してください。
Amazon Forecastは、重み付き絶対誤差率(WAPE)、二乗平均平方根誤差(RMSE)、平均絶対パーセント誤差(MAPE)、平均絶対スケーリング誤差(MASE)などの予測器メトリクスの詳細を提供します。Amazon Forecastから予測器の品質スコアをエクスポートすることができます。
Amazon Forecastは提供された時系列データセットに対して1つのバックテストを実行します。バックテストの結果は、Export backtest resultsボタンからダウンロードすることができます。エクスポートされたバックテスト結果は、S3バケットにダウンロードされます。
Amazon QuickSightでバックテスト結果をプロットしてみます。Amazon QuickSightでバックテスト結果を可視化するためには、QuickSightからAmazon S3内のデータセットに接続し可視化の作成を実行します。
クリーンアップ
このソリューションで活用されるAWSサービスは、マネージドでサーバーレスの性質を持っています。SageMaker Canvas は長時間稼働する ML トレーニングを実行するために設計されており、その間は常に起動している状態になります。SageMaker Canvas から明示的にログオフするようにしてください。詳しくはドキュメントを参照してください。
まとめ
このブログ記事では、機関投資家の資産運用担当者を想定し、AWSのローコード・ノーコード(LCNC)データおよびAIサービスを活用して、最初のデータセットスクリーニングを非技術者にオフロードすることで外部データセットの評価を加速させる方法について説明しました。このファーストパス分析を迅速に行うことで、どのデータセットを優先的にオンボーディングし、さらに分析を進めるべきかを決定することができます。
データアナリストがAWS Data Exchangeを通じて新しいサードパーティのデータを取得し、AWS Glue DataBrewノーコードETLサービスを使ってデータの前処理を行い、データセットのどの特徴量がモデルの予測に最も影響するかを評価する方法を段階的にデモしました。
データが分析可能な状態になったら、アナリストは SageMaker Canvas を使用して予測モデルを構築し、その適合性を評価し、重要な特徴量を特定できます。この例では、モデルの MAPE (.05) と WAPE (.045) が良好な結果を示し、予測に最も影響を与えるデータセットの特徴量として“Crowding”と“DaysToCover10Day”が示されました。この分析によってどのデータが最もモデルに影響を与えたかが定量化され、さらなる調査やアルファシグナルの発見、リスク管理のプロセスに組み込む可能性のあるデータへの優先順位付けが可能となりました。また同様に重要なこととして、説明性スコアによって予測に対して相対的に影響力が低いデータが分かり、そのようなデータに対する調査の優先度を下げることなどが可能です。
投資プロセスをサポートするサードパーティの金融データの能力をより迅速に評価するために、AWS Data Exchangeで利用可能な金融サービスデータソースを確認し、DataBrewとCanvasを試してみてください。
翻訳はプロフェッショナルサービスの小杉が担当しました。原文はこちらです。