@Jeromyが提供するリンクで縦断的データを分析するためのいくつかの方向性が議論されたので、特に機能的データ分析に関するものを注意深く読むことをお勧めします。「縦断的データの機能的クラスタリング」、または不規則にサンプリングされた軌跡のモデルベースのクラスタリングに特に関係するPACE Matlabツールボックス(PengとMüller、まばらに観測された確率過程の距離ベースのクラスタリング、オンラインオークションへの適用)応用統計 2008年2月2日:1056)。財務の時系列には良い統計的枠組みがあるかもしれないと想像できますが、それについては知りません。
このkml
パッケージは基本的にk-meansに依存しており、個体で観測された測定値間のユークリッド距離に(デフォルトで)作用します。軌道と呼ばれるものは、個々の一連の観測値、、およびn i y i = (y i 1、y i 2、… 、y i t)d (y i、y j)= √tniyi=(yi1,yi2,…,yit)d(yi,yj)=t−1∑tk=1(yik−yjk)2−−−−−−−−−−−−−−−−√。欠損データは、(カリンスキー基準を計算するための)最近傍のような代入スキームに関連付けられた先行距離測定(ガワー調整)をわずかに変更することで処理されます。実際のデータがどのように見えるかを自分では表明していないので、うまくいくかどうかはわかりません。少なくとも、縦方向の成長曲線、「多項式」形状で動作しますが、非常に特定のパターン(クラスター間で異なる時点での特定の時点での極小/最大など)を変換することで検出できるとは思えません例)。おそらく不整合の曲線をクラスタリングすることに興味があるなら、あなたは間違いなく他の解決策を見なければなりません。Sangalli et al。からの機能的なクラスタリングとアライメント、およびその中の参照は、良い出発点を提供するかもしれません。
以下に、それを試すのに役立つかもしれないいくつかのコードを示します(結果を再現したい場合、私のシードは通常101に設定されます)。基本的に、使用kml
するためにはclusterizLongData
オブジェクト(id
最初の列の数と次の列の測定値)を作成するだけです。t
library(lattice)
xyplot(var0 ~ date, data=test.data, groups=store, type=c("l","g"))
tw <- reshape(test.data, timevar="date", idvar="store", direction="wide")
parallel(tw[,-1], horizontal.axis=F,
scales=list(x=list(rot=45,
at=seq(1,ncol(tw)-1,by=2),
labels=substr(names(tw[,-1])[seq(1,ncol(tw)-1,by=2)],6,100),
cex=.5)))
library(kml)
names(tw) <- c("id", paste("t", 1:(ncol(tw)-1)))
tw.cld <- as.cld(tw)
cld.res <- kml(tw.cld,nbRedrawing=5)
plot(tw.cld)
次の2つの図は、シミュレートされた生データと5クラスターのソリューションです(Calinski基準に従って、fpcパッケージでも使用されます)。私は縮尺版を見せません。