문제

2017-03-11 5 views
0

최근에 내가 SciPy의 통계 패키지에서문제

sp.stats.entropy() 

를 사용하여 확률 변수 X의 엔트로피를 계산하는 방법을 알아 내기 위해 노력했습니다, 이 확률 변수 X는 1997 년부터 2012 년까지 특정 회사 주식 ("회사 1")에서 얻은 수익입니다 (재무 데이터/기계 학습 과제 용). 그러나, 인수 가능성을 입력하는

pk 

값 포함 지금까지 난 난 단지 확률 변수의 관찰을 가지고보고, 실제 경험적 확률을 계산과 사투를 벌인거야. 나는 확률의 배열을 얻기 위해 데이터를 정규화의 다른 방법을 시도했지만, 내 데이터 내가 시도 할 때 asset1이의 행 배열

asset1/np.sum(asset1) 

입니다 즉, 너무 음수 값을 포함 "Company 1"의 주식 반품, 나는 최대 1을 추가하는 새 배열을 얻을 수 있지만 분명히 일부 음수 값을 가지며, 우리 모두가 알다시피 부정적인 확률은 존재하지 않습니다. 그러므로, 파이썬에서 다시 발생하는 경험적 관측 확률을 계산하는 방법이 있습니까? (이상적으로는 특정 빈을 선택하거나 값의 범위를 선택하는 옵션이 이상적입니까?)

나는 또한 SciPy의 엔트로피 옵션에 대한 대안으로 무작위 가변 엔트로피, 공동 엔트로피, 상호 정보 등을 계산하는 데 전적으로 사용되는 수많은 시간 동안 파이썬 패키지를 찾고자했습니다.)하지만 대부분은 시대에 뒤 떨어진 것으로 보입니다 (현재 Python 3.5를 사용하고 있습니다), 따라서 현재 Python의 현재 버전과 호환되는 좋은 패키지를 아는 사람이 있습니까? 나는 R이 매우 컴팩트 한 것 같아요.

어떤 종류의 도움이라도 대단히 감사하겠습니다. 대단히 감사드립니다!

EDIT : 주식 수익은 프로세스 인 주가와 달리 RANDOM VARIABLES로 간주됩니다. 따라서 엔트로피는이 문맥에서 확실히 적용될 수 있습니다.

+0

'asset1' 값을 공유 할 수 있습니까? – kennytm

+0

예 확인, 정말 긴 (이것은 1로 4025입니다)하지만입니다 : 배열 ([0.0256895, -0.0054496, 0.00181982 ..., -0.0010976, -0.01294823, 0.00870327]) – Jayjay95

+0

'scipy.stats.엔트로피()'는 샘플의 엔트로피가 아니라 이산 분포의 엔트로피를 계산합니다. –

답변

0

연속 분포의 경우, 엔트로피 (K & L 1987)에 대한 Kozachenko-Leonenko k- 이웃 추정량과 상호 정보에 대한 해당 Kraskov, ..., Grassberger (2004) 추정량을 사용하는 것이 좋습니다. 이들은 확률 밀도 함수를 계산하는 중간 단계를 피하고 데이터 포인트의 거리에서 k- 가장 가까운 이웃까지의 엔트로피를 직접 추정합니다.

Kozachenko-Leonenko 견적서의 기본 아이디어는 이웃 데이터 포인트 간의 평균 거리를 (일부 기능으로) 조사하는 것입니다. 직관은 거리가 클 경우 데이터의 분산이 커서 엔트로피가 커진다는 것입니다. 실제로, 가장 가까운 이웃 거리를 취하는 대신에, k- 가장 가까운 이웃 거리를 취하는 경향이 있는데, 이는 추정치를보다 견고하게하는 경향이있다.

나는 내 GitHub의에서 모두 구현이 있습니다 https://github.com/paulbrodersen/entropy_estimators

코드는 파이썬 2.7을 사용하여 테스트되었습니다하지만 3.x에서 실행되지 않는 경우에 나는 놀랄 것입니다