R で dtwclust パッケージを使用して時系列クラスタリングに取り組んでいます。S&P500 株の基本的なデータセットを使用しています。データ フレームの先頭は次のとおりです。
'>print(head(DFCleanPF))
ticker reportperiod price ebitusd epsusd pe marketcap gp
1 ADS 2019-06-29 140.13 1761800000 16.13 8.44 7340500696 3185200000
2 ADS 2019-03-30 174.98 1818600000 17.42 9.78 9273534921 3295100000
3 ADS 2018-12-30 150.08 1894300000 17.56 8.49 8175386182 3570300000
4 ADS 2018-09-29 236.16 1735100000 17.21 13.67 12975478451 3439600000
5 ADS 2018-06-29 233.20 1692000000 16.01 14.58 12919222400 3398900000
6 ADS 2018-03-30 212.86 1652700000 14.55 14.64 11805497214 3402700000
> '
したがって、ティッカーと日付で並べ替えられたいくつかの株式の四半期ごとのデータセットがいっぱいになりました。その後、正規化機能を実行し、前述のデータ フレームからクラスターを取得しようとします。
'DFCleanPF.norm <- BBmisc::normalize(DFCleanPF, method="standardize")
#show(DFCleanPF.norm)
missmap(DFCleanPF.norm)
mvc <- tsclust(DFCleanPF.norm, k = 4L, distance = "gak", seed = 390,
args = tsclust_args(dist = list(sigma = 100)))'
missmap(DFCleanPF.norm) は、欠損値がゼロの DF を返します。
ただし、データセットに欠損値がないのにエラーが発生します。エラーは次のとおりです。
'Error in FUN(X[[i]], ...) : There are missing values in the series
In addition: There were 50 or more warnings (use warnings() to see the first 50)
>'
私は時系列クラスタリングが初めてです。私の目標は、株式をクラスター化してリスクとリターンを決定するための理想的な方法を見つけることです(複数のレコードについて、経時的にキャプチャされた主要なパラメーターに基づいて)。 2. クラスターの最適な組み合わせを取得するための最適な K 値を使用した理想的な dtwclust 関数。
サンプルデータセットを見つけてください。目標を達成するのに役立つ他のクラスタリング モデルを検討できます。現在のデータ フレームが入力として扱われるかどうか、またはシンボルを数値変数として扱い、各シンボルに対して少数の行列を作成する必要があるかどうかは不明です。
サンプル データ セットは次のとおりです。