1

私は2008年以来、ユーロストックス50インデックスの毎日のOHLCデータセットを持っています。これは次のようになります。

              Open    High     Low   Close Volume Adjusted
2008-01-02 4393.53 4411.59 4330.73 4339.23      0  4339.23
2008-01-03 4335.91 4344.36 4312.34 4333.42      0  4333.42
2008-01-04 4331.25 4343.46 4253.69 4270.53      0  4270.53
2008-01-07 4268.43 4294.45 4257.22 4283.37      0  4283.37
2008-01-08 4292.40 4330.56 4292.40 4295.23      0  4295.23
2008-01-09 4285.34 4285.34 4246.92 4258.32      0  4258.32

TTRパッケージを使用していくつかの技術ルールを計算しました。したがって、私はそのようなより大きなデータセットを取得します:

               RSI2     RSI3     RSI4     RSI5    RSI10    RSI20     SMA5    SMA20    SMA60     EMA5    EMA20    EMA60      atr      SMI
2009-01-07 97.964071 92.62210 87.21605 82.40040 66.95642 55.19221 19720.64 18655.29 17758.68 2556.777 2556.777 2556.777 82.06602 27.52145
2009-01-08 43.766573 58.62387 62.97794 64.03382 60.23197 52.99739 19756.44 18666.60 17754.07 2566.499 2566.499 2566.499 80.33416 29.12141
2009-01-09 27.182247 44.97072 52.29336 55.50633 56.74068 51.80171 19776.92 18674.31 17750.34 2523.372 2523.372 2523.372 78.65886 29.37878
2009-01-12 13.371347 30.46561 39.97055 45.24210 52.16207 50.17764 19788.02 18683.05 17748.76 2524.466 2524.466 2524.466 78.58966 28.17871
2009-01-13  6.141462 19.52298 29.30404 35.68593 47.25383 48.32987 19772.25 18693.01 17749.35 2488.165 2488.165 2488.165 76.08326 25.34705
2009-01-14  2.712386 11.97834 20.69541 27.26891 42.10718 46.23469 19747.87 18694.16 17742.88 2449.353 2449.353 2449.353 75.42231 20.65686

各作業四半期について、最も重要な技術的ルールを知りたいと思います。パッケージにコード化されているランダムフォレスト-RIアルゴリズムをrandomForest使用し、ブレイマンの重要度の尺度を計算し(関数のおかげでimportance)、四半期ごとのサンプルの平均よりも重要度の尺度が可変である技術ルールを選択することにしました。 。最終的には、統計などを計算するために、全期間中の技術ルールの削減されたデータセットを取得したいと思います。

重要な技術的ルールの数は時間の経過とともに変化する可能性があることを考えると、最も重要な技術的ルールを含むアレイの次元は、四半期ごとに同じではありません。結果として、すべての値を1つのオブジェクトに入れることはできません。

すべての四半期データセットを保存する便利な方法はありますか?

ありがとう。

4

1 に答える 1

1

データフレームまたはxtsオブジェクトを使用します。どちらも、さまざまな数の列にうまく対応します。あなたの場合、すべてのデータ列が数値型であるため、xtsオブジェクトを使用できます。

あなたはあなたのタイトルで「ローリング」と言いました。90日間の重複期間を分析したいということですか?例:2008-01-02から2008-04-02、次に2008-01-03から2008-04-03など。もしそうなら、rollapply(data,width=90,FUN)使用することができます。四半期を一度に1つずつ処理したい場合は、quarters <- split(data,'quarters')(xtsオブジェクトのリストが表示されます)lapply(quarters,FUN)

単一のデータ構造を使用する場合の問題は、SMA5が2008年1月8日から利用可能であるが、SMA200は年末まで利用できないことだと思います。つまり、最初の4分の3で、SMA200列にはNAしか含まれません。これで結構です。データをRandomForestに渡す直前に、NAを保持して処理します。

FUNでは、次のようにNAを含む列を削除します(ここで、xqは4分の1のデータを含むxtsオブジェクトです)。

xq = xq[,!apply(is.na(x),2,any)]

更新:あなたの質問とあなたのフォローアップの質問を読み直した後、私は上記があなたが持っていなかった質問に答えると思います!問題はTTRテーブルにNAが含まれていることであり、RandomForestはNAを気に入らないと思いました。

振り返ってみると、あなたの実際の質問は、「ランダムフォレストは、四半期ごとの分析からさまざまな数の優れた指標を提供してくれますが、どのように対処すればよいですか?」だったと思います。答えは、不規則なデータ構造、リストです。四半期ごとに1つのリストエントリ。リストエントリ自体は、xtsオブジェクトでも何でもかまいませんが、この場合、インジケータ名の単純な文字ベクトルは完璧のようです。これは、他の質問に対するザックの回答にうまく示されています。

于 2012-09-25T23:49:19.107 に答える