私はPandasを使用して、バリューアットリスクを含むいくつかの財務リスク分析を計算しています。要するに、バリュー・アット・リスク(VaR)を計算するには、一連のシミュレーションされたポートフォリオの変化をシミュレーションし、特定のテール・パーセンタイル・ロスを計算します。たとえば、95%VaRは、その時系列の5パーセンタイル値です。ExcelのPERCENTILE.EXCに相当するPython
パンダのデータフレームに私の時系列があり、現在はpd.quantile()関数を使用してパーセンタイルを計算しています。私の質問は、VaRの典型的な市場慣行は排他的なパーセンタイルを使用していることです(95%のVaRは、ポートフォリオが計算された数値よりも多くを失う可能性は95%です) - MS Excel PERECENTILE.EXC ()が働きます。 Pandas quantile()は、ExcelのPERCENTILE.INC()がどのように動作するかに似ています。指定されたパーセンタイルを含みます。私はいくつかのpythonの数学パッケージだけでなく、運のないExcelでPERCENTILE.EXC()と同じ方法論を使用するpythonソリューションのためのこのフォーラムを精査しました。私はここに誰かが示唆を持っていることを望んでいた?
サンプルコードです。
import pandas as pd
import numpy as np
test_pd = pd.Series([15,14,18,-2,6,-78,31,21,98,-54,-2,-36,5,2,46,-72,3,-2,7,9,34])
test_np = np.array([15,14,18,-2,6,-78,31,21,98,-54,-2,-36,5,2,46,-72,3,-2,7,9,34])
print 'pandas: ' + str(test_pd.quantile(.05))
print 'numpy: '+ str(np.percentile(test_np,5))
私が探しています答えは-77.4
おかげで、
ライアン
作業している入力データの小さな例、現在は 'pd.quantile'で出力しているもの、入手したい出力の例を提供できますか? 'numpy.percentile'はあなたが探していることをするように思えますが、私はデータがどのように見えるのかを知らずに答えを投稿することを躊躇します。 – johnchase
確かに - 私は実際にそれを試しましたが、numpyパーセンタイルとpandas quantileは同じ方法論を使用しています - 元の投稿に新しい例が追加されています。 Excelでは、この配列はPERCENTILE.INCを介して-72を返し、PERCENTILE.EXCを使用して-77.4を返します。私は-77.4 – ryanr377