환의 가격 변동은 비심 t분포에 따를 수 있습니까?PyMC2를 사용하여 확인
개시하다
이 보도
처음환의 가격 변동은 정말 정규 분포에 따릅니까?PyMC2를 사용하여 확인
두 번째환의 가격 변동은 코시의 분포를 따를 수 있습니까?PyMC2를 사용하여 확인
계속가능하면 보세요.
지난번에는 정규 분포, 지난번에는 코시 분포를 가정해 환율의 가격 변동을 추정한 매개 변수였다.
지난번 보도에서도 t분포는 긴 꼬리를 달았고, 이번에는 비심 t분포를 가정해 PyMC2로 파라미터를 추측했다.메모 감사합니다.
운영 환경
maxOS High Sierra
Anaconda Python3.5 가상 환경
Jupyter Notebook
PyMC2
사용된 환율 데이터는 USD-JPY의 15분 대비 2003.09.01~2017.11.17의 종가로 최신부터 10000구간을 사용하고 있다.
분포
t분포는 전체 전체의 평균, 방차가 불분명하고 표본의 사이즈가 시간에 전체 평균치나 t검정시에 사용되는 확률 분포를 추측하는 것을 말한다.
정태적으로 분포된 해안 코끼리는 같은 형식을 확대했다.
정상에 도달하면 이런 느낌.
자유도라는 매개 변수가 존재하는데 자유도=1의 시코시 분포, 자유도=8의 시정태 분포가 있다.
이번에는 비심 t분포를 사용합니다.비심 t분포는 t분포의 일반화이다.
환 데이터 보기
이전과 같은 물건을 사용하다.
이 직사각형과 관련해서는 비심t분포(Non-central Student's T)로 가정해 매개변수를 추정했다.
PyMC2로 비심t분포의 매개 변수를 추측하다
PyMC2에서 비심t분포를 사용하기 위해서.
Location parameter(유사 평균), Sccale parameter(유사 표준 편차), 자유도 3개가 필요합니다.
따라서 사전 분포로
Location parameter(mu): 평균 0 표준 편차 0.05의 정적 분포
Scole parameter(lam): 0~10의 균일한 분포
자유도(nu): 예측할 수 없기 때문에 0~1000의 고른 분포
결정했어.
Location parameter와 Scale parameter를 추정할 수 있기 때문에 이번에는 t분포가 아닌 비심t분포를 사용했다.
미리 분포된 도표와 정적 분포의 분포는 같기 때문에 기본적으로 이전과 같기 때문에 생략을 허락해 주십시오.
PyMC2 실행
qiita_mcmc.py
#非心t分布で近似
mu = pm.Normal("mu", 0, 1. / 0.5**2) #Location parameter
lam = 1. / pm.Uniform("lam", 0, 10)**2 #Scale parameter 色々試した所、正規分布の時と同じく精度になっている
nu = pm.Uniform("nu", 0, 1000) #自由度 検討がつかないので、0~1000までの一様分布
#データが非心t分布から得られたとする
obs_3 = pm.NoncentralT("obs_3", mu, lam, nu, value=sub_value, observed=True)
#モデルの作成
model_3 = pm.Model([obs_3, mu, lam, nu])
mcmc_3 = pm.MCMC(model_3)
mcmc_3.sample(100000, 70000, 3)
figsize(11, 6)
mu_samples = mcmc_3.trace("mu")[:]
lam_samples = mcmc_3.trace("lam")[:]
nu_samples = mcmc_3.trace("nu")[:]
plt.subplot(311)
plt.hist(mu_samples, bins=30, alpha=0.8, histtype="stepfilled",
color=colors[0], density=True)
plt.title("mu samples")
plt.grid()
plt.subplot(312)
plt.hist(lam_samples, bins=30, alpha=0.8, histtype="stepfilled",
color=colors[0], density=True)
plt.title("lam samples")
plt.grid()
plt.subplot(313)
plt.hist(nu_samples, bins=30, alpha=0.8, histtype="stepfilled",
color=colors[0], density=True)
plt.title("nu samples")
plt.grid()
plt.tight_layout()
※ 주의PyMC2 홈 페이지의 9.무조건 Probability distributionst_라이크가 있어서 Noncentral입니다.t에 쓸 수 있을 줄 알았는데 Noncentralt였다.왜 그런지 모르겠다.
후분포 결과
mu,lam,nu의 사후 분포는 이렇다.
끝난 것 같은데.아니오, MC가 너무 좋아요.
얻은 사후 분포에서 비심 t분포를 그려내다
매번 도표를 scipy로 그립니다. scipy의 비심 t분포nct는 4개의 파라미터가 필요합니다.nc는 잘못된 파라미터를 지정하지만 PyMC2는 존재하지 않습니다.아마도 PyMC2의비심t분포(noncentral t like 부분)는 t분포의 평균과 분산만 이동할 수 있을 것이다.
실제로 PyMC2의 비중심 T 분포에서 생성된 값도 변형되지 않습니다.
scipy에서 nct를 생성하는 다양한 직사각형을 실험했고, nc도 무가 되어 추구하고 싶은 것에 가까워졌기 때문에 이번에는 시도해 보겠습니다.
또한 nc를 0으로 설정하면 scipy의 t와 분포가 같습니다.
qiita_mcmc.py
figsize(11, 7)
mu_mean = mu_samples.mean() #muの平均
lam_mean = lam_samples.mean() #lamの平均
nu_mean = nu_samples.mean() #nuの平均
print("mu_mean", mu_mean)
print("lam_mean", lam_mean)
print("nu_mean", nu_mean)
x = np.linspace(-0.65, 0.6, 500)
#scipyの非心t分布(nct)には、パラメータが4つ必要
a_y = stats.nct.pdf(x, nu_mean, mu_mean, mu_mean, lam_mean)
#非心t分布を描く
plt.plot(x, a_y, lw=2, color=colors[0])
plt.fill_between(x, 0, a_y, color=colors[0], linewidth=2,
edgecolor=colors[0], alpha=0.6)
plt.hist(sub_value, bins=300, histtype="stepfilled", alpha=0.7,
density=True, color=colors[1], label="sub value")
plt.title("Non-central Student’s T sample")
plt.xlim(-0.65, 0.6)
plt.legend(loc="upper left")
plt.tight_layout()
plt.grid()
최종 결과
mu_mean 0.0007713048467022937
lam_mean 0.03549970342210986
nu_mean 3.2986686930281315
지난번, 지난번과 비교하면 상당히 믿을 만한 것 같다.
결과적으로 말할 수 있는 일
지난번 코시 분포와 비교하면 ±(0.05~0.1) 부근이 개선됐다.
다만, 극단치 근처를 넓혀보면
위의 그림에서 보듯이 0.3 이후의 값을 과소평가했다.
지난번 매개 변수로 추정된 정적 분포에 따르면 -0.5 이하의 값을 취한 하측 누적 확률은 1.57e-32이고 지난번 코시 분포에서 -0.5 이하의 값을 취한 하측 누적 확률은 1.22e-02이며 이번 비심 t분포에서 -0.5 이하의 값을 취한 하측 누적 확률은 9.79e-05이다.
이 결과로 볼 때 전체적인 접합도는 비심 t분포이고 극단적인 값을 고려하면 コ恥 분포라고 할 수 있다.(정정) 얻은 분포에서 가격 변동을 재현했고 코서 분포는 상상을 초월한 동작을 했다.자세한 내용은 마지막 페이지를 보십시오.
추가
얻은 분포에서 가격 변동을 재현하다
3000개의 구간을 생성하는 양
이것은 코시가 분포할 때와 달리 합리적인 변화가 있다.
또 간혹 일어나는 폭등·폭락도 저절로 재현되지 않을까?
총결산
이번에 우리는 비심 t분포를 가정하여 파라미터를 추측한다.
비심 t가 잘 분포된 곳은 평균, 분산을 계산할 수 있는 가능성이 있기 때문에 코시 분포보다 수학적으로 사용하기 쉽다.
수학 해석을 강행하면 어떤 총체에서 4.3개의 표본을 꺼낸다
$$T =\frac{(\bar{X_n} -\mu)\sqrt{n}}{U_n}$$
($n 달러 표본수 $\bar{X n} 달러 표본 평균 $U^{2] {n} 달러 편차 분산 없음)
당시 T의 분포는 환율의 가격 변동이었습니까?
이게 전체적으로 뭔지 아직 모르겠어요.
글쎄, 편입식에 들어갈 수 있겠어?
계속해서 어떤 좋은 확률의 분포를 알고 계신 분들은 댓글로 남겨주세요.
Reference
이 문제에 관하여(환의 가격 변동은 비심 t분포에 따를 수 있습니까?PyMC2를 사용하여 확인), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Q_Takka/items/b1edece8bf7e0bc6b3ea텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)