0

1 つの大きな DataFrame (Pair3) があります。

    DatetimeIndex: 4062 entries, 1997-06-06 00:00:00 to 2013-09-13 00:00:00
    Data columns (total 3 columns):
    A         4062  non-null values
    G         4062  non-null values
    S         4062  non-null values
    etc.

異なるペアの相関とローリング相関を計算したいと思います。したがって、私は作った:

   pairs = ([Pair3.A, Pair3.G], [Pair3.A, Pair3.S])

この関数を使用して、これらのペアの相関を計算しました。

   tresults = []
   def correlation(x):
       for i in pairs:
            tresults.append(np.corrcoef(i)[1][0])

取得:

   tresults
   Out[161]: [0.94756275037713467, 0.91061348701825506]
                   (Correlation AG , Correlation AS)

私の質問:

  1. Correlation という名前の DataFrame を作成したいと思います。Correlation AG、Correlation AS など、考慮されるペアに関して自動的に名前が付けられた列と、対応する tresult 値を使用します。

そのようなテーブル:

    Correlation AG     ,  Correlation AS
    0.94756275037713467,  0.91061348701825506

これを手作業で行う必要がありますか?

4

1 に答える 1

3

これは、ローリングを使用してすべてのペアを相互計算し、結果のパネルを返します。こちらのドキュメントをご覧ください

In [18]: df = DataFrame(randn(100,3),columns=list('ABC'),index=date_range('20130101',periods=100))

In [19]: pd.rolling_corr_pairwise(df,50,10)
Out[19]: 
<class 'pandas.core.panel.Panel'>
Dimensions: 100 (items) x 3 (major_axis) x 3 (minor_axis)
Items axis: 2013-01-01 00:00:00 to 2013-04-10 00:00:00
Major_axis axis: A to C
Minor_axis axis: A to C

In [20]: pd.rolling_corr_pairwise(df,50,10).loc[:,'A','C']
Out[20]: 
2013-01-01         NaN
2013-01-02         NaN
2013-01-03         NaN
2013-01-04         NaN
2013-01-05         NaN
2013-01-06         NaN
2013-01-07         NaN
2013-01-08         NaN
2013-01-09         NaN
2013-01-10   -0.380174
2013-01-11   -0.368027
2013-01-12   -0.256105
2013-01-13   -0.208781
2013-01-14   -0.209550
2013-01-15   -0.188442
...
2013-03-27   -0.147510
2013-03-28   -0.130810
2013-03-29   -0.139143
2013-03-30   -0.149664
2013-03-31   -0.117451
2013-04-01   -0.129279
2013-04-02   -0.119471
2013-04-03   -0.040025
2013-04-04   -0.045022
2013-04-05   -0.025215
2013-04-06   -0.048226
2013-04-07   -0.048213
2013-04-08   -0.046223
2013-04-09   -0.060886
2013-04-10   -0.032557
Freq: D, Name: C, Length: 100, dtype: float64
于 2013-10-02T13:00:59.933 に答える