나는 Value at Risk를 포함한 재무 리스크 분석을 계산하기 위해 팬더를 사용하고 있습니다. 요약하면, VaR (Value At Risk)을 계산하기 위해 시뮬레이션 된 포트폴리오 변화 값을 시계열로 취한 다음 특정 테일 백분율 손실을 계산합니다. 예를 들어, 95 % VaR은 해당 시계열에서 5 번째 백분위 수입니다.Excel의 PERCENTILE.EXC와 동일한 Python
나는 팬더 데이터 프레임에 내 시계열을 가지고 있으며 현재 pd.quantile() 함수를 사용하여 백분위 수를 계산하고 있습니다. 내 질문에, VaR에 대한 전형적인 시장 컨벤션은 배제 백분위 수를 사용합니다 (예 : 95 % VaR은 다음과 같이 해석됩니다 : 95 %의 확률로 포트폴리오가 계산 된 수보다 많아지지 않음) - MS Excel PERECENTILE.EXC() 작품. Pandas quantile()은 Excel의 PERCENTILE.INC()가 작동하는 방식과 유사하게 작동합니다. 지정된 백분위 수를 포함합니다. 필자는 행운과 함께 Excel에서 PERCENTILE.EXC()와 동일한 방법론을 사용하는 Python 솔루션을위한이 포럼뿐만 아니라 여러 개의 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 백분위 수와 팬더 분위수 모두 동일한 방법론을 사용합니다. 원래 예제에 새 예제가 추가되었습니다. Excel에서이 배열은 PERCENTILE.INC를 통해 -72를, PERCENTILE.EXC를 사용하여 -77.4를 반환합니다. -77.4 – ryanr377