{"action":"created","comment":{"url":"https://api.github.com/repos/stan-ja/stan-ja/pulls/comments/91828725","pull_request_review_id":12341939,"id":91828725,"diff_hunk":"@@ -0,0 +1,352 @@\n+## 21. 問題のある事後分布\n+\n+数学的に言うと、正則な事後分布であればベイズ推定はできていて、話はそこで終わりです。有限な分散さえも、あるいは有限な平均さえも必要ではありません。必要なのは有限な積分だけです。それにもかかわらず、モデリングは厄介な仕事で、経験を積んだモデル作成者でも非正則な事後分布（**原文はpriorsだが文脈からすると事後分布**）ができるようなモデルをコーディングしてしまうことがあります。さらに、数学的には正しいにも関わらず、実用的には挙動がおかしい事後分布もあります。この章では、問題のある事後分布を推定してしまうモデルについて、ベイズ推定一般として、あるいはStanでの実用面から議論します。\n+\n+### 21.1. 回帰での予測変数の共線性\n+\n+この節では、識別可能性に関する古典的な問題について議論します。この問題は、事後密度を尾根状にし、サンプリングと推定の両方を混乱させるというものです。\n+\n+#### 共線性の例\n+\n+##### 余分な切片\n+\n+共線性の最初の例は、余分な切片パラメータを含むという人工的なものです。^[この例は、Richard McElreathがStan users groupで提起しました。BUGSおよびJAGSで使われるギブズサンプリングと、Stanで使われるハミルトニアンモンテカルロ(HMC)およびno-U-turnサンプラー(NUTS)との挙動の違いについての質問の中でのことです。] $n \\in 1:N$についての観測値$y_n$、2つの切片パラメータ$\\lambda_1$と$\\lambda_2$、スケールパラメータ$\\sigma > 0$があり、サンプリング分布が以下のようであるとします。\n+\n+![$$ y_n \\sim \\mathsf{Normal}(\\lambda_1 + \\lambda_2, \\sigma) $$](fig/fig01.png)\n+\n+すべての定数$q$について、$q$を$\\lambda_1$に加え、$\\lambda_2$から引くならば、$y$のサンプリング密度は不変です。\n+\n+![$$ p(y \\mid \\lambda_1, \\lambda_2, \\sigma) = p(y \\mid \\lambda_1 + q, \\lambda_2 - q, \\sigma) $$](fig/fig02.png)\n+\n+その結果、非正則一様事前分布$p(\\mu, \\sigma) \\propto 1$からは非正則事後分布が導かれます。この非正則性が生じるのは、$\\lambda_1+q, \\lambda_2-q$（**訳注: 原文では、$\\lambda_1+q, \\lambda_1-q$だが、誤植と思われる。**）の近傍では、どんな$q$についても質量が同じになるからです。したがって、$\\lambda_1=1000000000$かつ$\\lambda_2=1000000000$の近傍でも、$\\lambda_1=0$かつ$\\lambda2=0$の近傍と同じ時間がサンプラーには必要になりますし、さらにもっと離れた値でも同様です。\n+\n+このモデルの周辺事後分布$p(\\lambda_1,\\lambda_2 \\mid y)$はしたがって非正則です。^[$\\sigma$の周辺事後分布$p(\\sigma \\mid y)$はこの場合、少なくとも異なる2つのデータ点がある限りは正則です。] この非正則性は、図21.1の左側に図示したように、視覚的には事後密度の尾根として表されます。このモデルの尾根は、$c$をある定数として、$\\lambda_2 = \\lambda_1 + c$という直線（**訳: 図では、$\\lambda_1 + \\lambda_2 = c$だが？**）に沿ってできます。\n+\n+このモデルを、単一の切片パラメータ$\\mu$をもち、以下のサンプリング分布をもつ単回帰と比較しましょう。\n+\n+![$$ y_n \\sim \\mathsf{Normal}(\\mu, \\sigma) $$](fig/fig03.png)\n+\n+非正則事前分布であっても、異なる値を持つ、少なくとも2つのデータ点$y_n$がある限り事後分布は正則となります。\n+\n+##### IRTモデルにおける能力と難易度\n+\n+項目反応理論（IRT）モデルで、生徒$j \\in 1:J$が能力$\\alpha_j$を持ち、試験項目$i \\in 1:I$が難易度$\\beta_i$を持つとします。観測データは$I \\times J$次元配列で、エントリー$y_{i,j} \\in \\{0,1\\}$は、$y_{i,j}=1$のとき生徒$j$が問題$i$に正答したことを示すとコード化します。このデータのサンプリング分布は以下のようになります。\n+\n+![$$ y_{i,j} \\sim \\mathsf{Bernoulli}(\\mathrm{logit}^{-1}(\\alpha_j - \\beta_i)) $$](fig/fig04.png)\n+\n+どんな定数$c$についても、定数$c$を能力すべてに加え、かつ難易度すべてから引くと、$y$の確率は変わりません。\n+\n+![$$ p(y \\mid \\alpha, \\beta) = p(y \\mid \\alpha + c, \\beta - c) $$](fig/fig05.png)\n+\n+このため、上で議論した2つの切片を持つ回帰の多変量版が出現することになります。\n+\n+##### 一般的な共線性のある回帰予測変数\n+\n+共線性の問題の一般型は、回帰の予測変数が共線であるときに発生します。例えば、直線回帰のサンプリング分布を考えます。\n+\n+![$$ y_n \\sim \\mathsf{Normal}(x_n \\beta, \\sigma) $$](fig/fig06.png)\n+\n+$y$は$N$次元の観測値ベクトル、$x$は$N \\times K$の予測変数行列、$\\beta$は$K$次元の係数ベクトルです。\n+\n+ここで、予測変数行列の列$k$が列$k'$の定数倍になっているとします。すなわち、すべての$n$について$x_{n,k}=cx_{n,k'}$となるような定数$c$が存在するとします。この場合、係数$\\beta_k$と$\\beta_{k'}$は予測値を変えずに共変動できます。そのため、任意の$d \\neq 0$について次式が成り立ちます。\n+\n+![$$ p(y \\mid \\dots,\\beta_k,\\dots,\\beta_{k'},\\dots,\\sigma) = p(y \\mid \\dots,d\\beta_k,\\dots,\\frac{d}{c}\\beta_{k'},\\dots,\\sigma) $$](fig/fig07.png)\n+\n+予測変数行列の列が、上の議論のような完全な共線ではなくとも、共線に近ければ推定に同じような問題が発生します。\n+\n+##### IRTでの乗数の問題\n+\n+IRTモデルで、すべての質問に識別力パラメータ$\\delta_i$を加えるとします。データをサンプリングするモデルは次式です。\n+\n+![$$ y_{i,j} \\sim \\mathsf{Bernoulli}(\\mathrm{logit}^{-1}(\\delta_i (\\alpha_j - \\beta_i))) $$](fig/fig08.png)\n+\n+任意の定数$c \\neq 0$について、$\\delta$を$c$倍し、$\\alpha$と$\\beta$を$c$で割っても、尤度は同じです。\n+\n+![$$ p(y \\mid \\delta, \\alpha, \\beta) = p(y \\mid c\\delta, \\frac{1}{c}\\alpha, \\frac{1}{c}\\beta) $$](fig/fig09.png)\n+\n+もし$c < 0$ならば、密度を変えずに、$\\alpha$および$\\beta$、$\\delta$のすべての成分の符号が反転します。\n+\n+##### SoftmaxでのK vs. K-1パラメータ\n+\n+$K$単体（すなわち、合計すると1になる、非負の値からなる$K$次元ベクトル）をパラメータ化するためには、$K-1$個のパラメータだけが必要です。なぜなら、$K$番目のパラメータは、最初から$K-1$番目までの合計を1から引いた値になるからです。したがって、$\\theta$を$K$単体とすると次式が成り立ちます。\n+\n+![$$ \\theta_K = 1 - \\sum_{k=1}^{K-1}\\theta_k $$](fig/fig10.png)\n+\n+softmax関数（35.11節参照）は、線形予測子の$K$次元ベクトル$\\alpha$を$K$単体$\\theta$にマッピングします。つまり$\\theta = \\mathrm{softmax}(\\alpha)$で、定義は次式です。\n+\n+![$$ \\theta_k = \\frac{\\exp(\\alpha_k)}{\\sum_{k'=1}^{K}\\exp(\\alpha'_k)} $$](fig/fig11.png)\n+\n+softmax関数は多対1関数です。パラメータ$\\alpha$に制約がないと、識別可能性が失われます。とくに、すべての$\\alpha_k$に定数を足したり引いたりしても、おなじ単体$\\theta$となります。\n+\n+#### 不変さを軽減する\n+\n+前の節で議論した例はすべて、データの確率密度を変えないままパラメータの平行移動や拡大縮小ができるというものです。この問題を軽減する方法はいくつかあります。\n+\n+##### 余分なパラメータや予測変数を取り除く\n+\n+複数の切片、$\\lambda_1$と$\\lambda_2$がある場合には、余分な切片を取り除くのが最も単純な解決法です。これによりモデルは、単一の切片パラメータ$\\mu$を持ち、サンプリング分布は$y_n \\sim \\mathsf{Normal}(\\mu, \\sigma)$となります。同じ解決法を、共線性の問題にも使えます。予測変数行列$x$から列を1つ取り除くだけです。\n+\n+##### ピン留めパラメータ\n+\n+識別力パラメータのないIRTモデルは、パラメータの1つを固定した値（普通は0）にピン留めすることで固定することができます。例えば、最初の生徒の能力$\\alpha_1$を0に固定することができます。このとき、その他の生徒すべての能力パラメータは生徒1に対する相対値と解釈できます。同様に難易度パラメータは、生徒1の解答能力に対する相対値と解釈されます。\n+\n+この解決法は、問題の識別力パラメータ$\\delta_i$を導入すると発生する、乗数による不変性を扱うには十分ではありません。この問題を解決するには、識別力（**訳注:原文はdifficultyだが、discriminationの誤りと思われる**）パラメータの1つ、たとえば$\\delta_1$にも制約をつけなくてはなりません。乗数による不変性は、加算とは異なり、非零の値に制約しなければなりません。都合が良いのは1とすることです。このとき、識別力パラメータはすべて、項目1の識別力に対する相対値として解釈されるでしょう。\n+\n+softmax($\\alpha$)の多対1の性質は、$\\alpha$の成分の1つをピン留めすることで軽減するのは普通です。例えば、$\\alpha_K = 0$と固定します。そうすると、$K-1$次元の制約のないパラメータから、$K$単体へ、1対1対応となります。これが、単体として制約されるパラメータをStanで定義するおおまかな方法です。正確な定義は58.6節を参照してください。$K-1$次元ベクトルから単体を生成するStanコードは以下のとおりです。\n+\n+```\n+vector softmax_id(vector alpha) {\n+  vector[num_elements(alpha) + 1] alphac1;\n+  for (k in 1:num_elements(alpha))\n+    alphac1[k] = alpha[k];\n+  alpha[num_elements(alphac)] = 0;\n+  return softmax(alphac);\n+}\n+```\n+（**訳注:上のコードで`alphac1`と`alphac`は同じ?, 5行目は `alphac[num...`?**）\n+\n+##### 事前分布を加える\n+\n+ここまで、パラメータの事前分布が非正則一様事前分布であるとしてモデルを議論してきました。\n+\n+こうした不変性の問題に対する、より一般的なベイジアンの解決法は、パラメータに正則な事前分布を与えることです。加法的でも、乗法的でも、どちらの不変性に由来する問題でも、この方法を使って解決できます。\n+\n+例として、複数の切片に正規事前分布を与えます。\n+\n+![$$ \\lambda_1,\\lambda_2 \\sim \\mathsf{Normal}(0, \\tau) $$](fig/fig12.png)\n+\n+$\\tau$を定数値のスケールとすると、事後最頻値が$\\lambda_1 = \\lambda_2$となる点に位置することが保証されます。なぜならこれにより、$\\log\\mathsf{Normal}(\\lambda_1 \\mid 0, \\tau) + \\log\\mathsf{Normal}(\\lambda_2 \\mid 0, \\tau)$が最小化されるからです。^[ラプラス事前分布（あるいは罰則付き最尤推定のL1正規化）は加法的な不変性を取り除くには十分ではありません。縮小はしますが、それ自体がパラメータを識別するというわけではありません。$\\lambda_1$に定数を加え、$\\lambda_2$からそれを引くことと、事前分布で同じ値となるからです。] 2つの切片を持つモデルに事前分布を加えたものを図21.1の中央に示します。図21.1の右側は、単一の切片を持つように再パラメータ化した結果です。\n+\n+<img src=\"fig/non-identified.png\" width=\"240\"><img src=\"fig/non-identified-plus-prior.png\" width=\"240\"><img src=\"fig/one-param-identified.png\" width=\"240\">\n+\n+図21.1: 事前分布なしの2切片パラメータ化、単位正規事前分布の2切片パラメータ化、事前分布なしの1切片再パラメータ化のそれぞれの事後分布。3つの場合とも、単位正規分布から抽出された100データ点について事後分布をプロットしています。左）2切片パラメータ化は、北西方向と南東方向とに無限に伸びる尾根状の非正則事後分布（**原文はpriorだが文脈からすると事後分布?**）となります。中）単位正規事前分布を切片に対して加えると正則事後分布になります。右）事前分布なしの単一切片パラメータ化も正則事後分布が得られます。\n+\n+$K$単体パラメータ化$\\theta = \\mathrm{softmax}(\\alpha)$を、制約なしの$K$次元ベクトル$\\alpha$について識別するための別の方法は、$\\alpha$の成分に、固定した位置パラメータの事前分布を置くことです（すなわち、位置が変わるような階層事前分はとくに避けるようにします）。$\\alpha_K = 0$とピン留めする方法とは異なり、事前分布に基づく方法では、$K$個の結果を釣り合いをとって（**symmetricallyの訳?**）モデリングします。$K$番目の結果への相対値として$K-1$個の結果をモデリングするのではありません。一方で、ピン留めのパラメータ化の方が通常は、（事前分布で制約された）振動幅に余分がないので、統計学的にはより効率的です。\n+\n+##### 漠然事前分布、強情報事前分布、弱情報事前分布\n+\n+不変性を解決するために事前分布を加える際には注意が必要です。事前分布の幅が広すぎると（すなわち漠然すぎると）、理論的には解決するとしても、実際にはサンプラーがやはり動くのに苦労するということになるでしょう。\n+\n+理想的には、モデリングする問題についての本質的な知識に基づいて、現実的な事前分布を定式化するのがよいでしょう。そのような事前分布なら、事前の知識に基づいた適切な強さを選択できます。強情報事前分布は、強い事前の情報があるときに意味があります。\n+\n+強い事前の情報がないときには弱情報事前分布を使って、事後分布中でデータを圧倒しないことと、推定の計算を制御することとの適切なバランスをとります。たいていの問題では、推定値がどのくらいのスケールになるか、少なくとも何らかの見解をモデル作成者は持っているでしょう。そして、データを圧倒しないような、しかし事後分布を十分に制御できるような、識別可能性の目的にあう事前分布を選ぶことができます。\n+\n+事前分布は、IRTモデルにおける加法的な不変性を制御するためにも同じように使えます。典型的には、スケールを制御する強い事前分布を生徒の能力パラメーター$\\alpha$に置くことで単純に、基本的なIRTモデルの加法的な不変性と、質問項目の識別力パラメータを含む拡張モデルの乗法的な不変性を制御します。そのような事前分布は、解決する問題についての事前知識を増やすものではありません。そして、質問項目の難易度についての事前分布は、問題の事前知識に基づく情報事前分布と、弱情報事前分布とのうちからいずれかを選ぶことができます。\n+\n+### 21.2. 混合分布モデルでのラベルスイッチング\n+\n+回帰モデルの共線性により、事後分布の最大値の個数が無限に多くなるときには、混合分布モデルの成分を入れ替えることにより、有限個の最大値とすることができます。\n+\n+#### 混合分布モデル\n+\n+2つの位置パラメータ$\\mu_1$と$\\mu_2$をもつ正規混合分布モデルを考えます。スケールはともに$\\sigma > 0$で、混合率を$\\theta \\in [0, 1]$とすると尤度は次式になります。\n+\n+![$$ p(y \\mid \\theta,\\mu_1,\\mu_2,\\sigma) = \\prod_{n=1}^{N}(\\theta\\mathsf{Normal}(y_n \\mid \\mu_1,\\sigma) + (1 - \\theta)\\mathsf{Normal}(y_n \\mid \\mu_2,\\sigma)) $$](fig/fig13.png)\n+\n+ここでの問題は、次式のように混合成分が入れ替わりうることです。\n+\n+![$$ p(\\theta,\\mu_1,\\mu_2,\\sigma \\mid y) = p((1 - \\theta), \\mu_2, \\mu_1, \\sigma \\mid y) $$](fig/fig14.png)\n+\n+この問題は、クラスタリングモデルのように、混合成分$K$の数が大きくなるにつれて悪化します。$K!$個の同一の事後最大値ができます。\n+\n+#### 収束モニタリングと有効サンプルサイズ\n+\n+事後分布の収束と有効サンプルサイズの分析も混合分布モデルでは難しい問題です。例えば、Stanが報告する$\\hat{R}$収束統計量も、有効サンプルサイズの計算も、ラベルスイッチングで不正確になります。問題は、これらの計算の鍵となる要素である事後平均がラベルスイッチングの影響を受けることにあります。$\\mu_1$の事後平均が$\\mu_2$の事後平均に等しくなり、$\\theta$の事後平均が、データによらず常に1/2になってしまいます。\n+\n+#### 不変の推定もある\n+\n+ある意味、混合成分のインデックス（あるいはラベル）は重要ではありません。事後予測推定は、混合成分が識別できなくとも可能です。例えば、新しい観測値の対数確率は、混合成分が識別されるかに依存しません。そのようなモデルについても正しいベイズ推定値とは、ラベルスイッチングが起きても不変なものだけです。パラメータの事後平均は、ラベルスイッチングに対して不変ではないので意味がありません。例えば、2成分の混合分布モデルにおける$\\theta$の事後平均は常に1/2となるでしょう。\n+\n+#### 非常に多峰な事後分布\n+\n+理論的には、事後予測推測に含まれる積分はすべてうまくいくでしょうから、推定の問題はないはずです。実用上の問題は計算にあります。","path":"part02/chap21/chap21.md","position":158,"original_position":162,"commit_id":"df415c50f1f13365ce257a00e4fbb104ca921e27","original_commit_id":"df415c50f1f13365ce257a00e4fbb104ca921e27","user":{"login":"MatsuuraKentaro","id":11885625,"avatar_url":"https://avatars.githubusercontent.com/u/11885625?v=3","gravatar_id":"","url":"https://api.github.com/users/MatsuuraKentaro","html_url":"https://github.com/MatsuuraKentaro","followers_url":"https://api.github.com/users/MatsuuraKentaro/followers","following_url":"https://api.github.com/users/MatsuuraKentaro/following{/other_user}","gists_url":"https://api.github.com/users/MatsuuraKentaro/gists{/gist_id}","starred_url":"https://api.github.com/users/MatsuuraKentaro/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MatsuuraKentaro/subscriptions","organizations_url":"https://api.github.com/users/MatsuuraKentaro/orgs","repos_url":"https://api.github.com/users/MatsuuraKentaro/repos","events_url":"https://api.github.com/users/MatsuuraKentaro/events{/privacy}","received_events_url":"https://api.github.com/users/MatsuuraKentaro/received_events","type":"User","site_admin":false},"body":"文頭に「この場合には」があると読みやすいように思いました。","created_at":"2016-12-10T04:34:26Z","updated_at":"2016-12-10T04:34:26Z","html_url":"https://github.com/stan-ja/stan-ja/pull/65#discussion_r91828725","pull_request_url":"https://api.github.com/repos/stan-ja/stan-ja/pulls/65","_links":{"self":{"href":"https://api.github.com/repos/stan-ja/stan-ja/pulls/comments/91828725"},"html":{"href":"https://github.com/stan-ja/stan-ja/pull/65#discussion_r91828725"},"pull_request":{"href":"https://api.github.com/repos/stan-ja/stan-ja/pulls/65"}}},"pull_request":{"url":"https://api.github.com/repos/stan-ja/stan-ja/pulls/65","id":96413488,"html_url":"https://github.com/stan-ja/stan-ja/pull/65","diff_url":"https://github.com/stan-ja/stan-ja/pull/65.diff","patch_url":"https://github.com/stan-ja/stan-ja/pull/65.patch","issue_url":"https://api.github.com/repos/stan-ja/stan-ja/issues/65","number":65,"state":"open","locked":false,"title":"21章を訳しました","user":{"login":"ito4303","id":13703977,"avatar_url":"https://avatars.githubusercontent.com/u/13703977?v=3","gravatar_id":"","url":"https://api.github.com/users/ito4303","html_url":"https://github.com/ito4303","followers_url":"https://api.github.com/users/ito4303/followers","following_url":"https://api.github.com/users/ito4303/following{/other_user}","gists_url":"https://api.github.com/users/ito4303/gists{/gist_id}","starred_url":"https://api.github.com/users/ito4303/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ito4303/subscriptions","organizations_url":"https://api.github.com/users/ito4303/orgs","repos_url":"https://api.github.com/users/ito4303/repos","events_url":"https://api.github.com/users/ito4303/events{/privacy}","received_events_url":"https://api.github.com/users/ito4303/received_events","type":"User","site_admin":false},"body":"レビューをお願いいたします。","created_at":"2016-12-03T22:44:39Z","updated_at":"2016-12-10T04:34:26Z","closed_at":null,"merged_at":null,"merge_commit_sha":"66fc4611420235d9bc0cd67113a4f83640e6c990","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/stan-ja/stan-ja/pulls/65/commits","review_comments_url":"https://api.github.com/repos/stan-ja/stan-ja/pulls/65/comments","review_comment_url":"https://api.github.com/repos/stan-ja/stan-ja/pulls/comments{/number}","comments_url":"https://api.github.com/repos/stan-ja/stan-ja/issues/65/comments","statuses_url":"https://api.github.com/repos/stan-ja/stan-ja/statuses/df415c50f1f13365ce257a00e4fbb104ca921e27","head":{"label":"stan-ja:create/part02/chap21","ref":"create/part02/chap21","sha":"df415c50f1f13365ce257a00e4fbb104ca921e27","user":{"login":"stan-ja","id":16357636,"avatar_url":"https://avatars.githubusercontent.com/u/16357636?v=3","gravatar_id":"","url":"https://api.github.com/users/stan-ja","html_url":"https://github.com/stan-ja","followers_url":"https://api.github.com/users/stan-ja/followers","following_url":"https://api.github.com/users/stan-ja/following{/other_user}","gists_url":"https://api.github.com/users/stan-ja/gists{/gist_id}","starred_url":"https://api.github.com/users/stan-ja/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stan-ja/subscriptions","organizations_url":"https://api.github.com/users/stan-ja/orgs","repos_url":"https://api.github.com/users/stan-ja/repos","events_url":"https://api.github.com/users/stan-ja/events{/privacy}","received_events_url":"https://api.github.com/users/stan-ja/received_events","type":"Organization","site_admin":false},"repo":{"id":48265007,"name":"stan-ja","full_name":"stan-ja/stan-ja","owner":{"login":"stan-ja","id":16357636,"avatar_url":"https://avatars.githubusercontent.com/u/16357636?v=3","gravatar_id":"","url":"https://api.github.com/users/stan-ja","html_url":"https://github.com/stan-ja","followers_url":"https://api.github.com/users/stan-ja/followers","following_url":"https://api.github.com/users/stan-ja/following{/other_user}","gists_url":"https://api.github.com/users/stan-ja/gists{/gist_id}","starred_url":"https://api.github.com/users/stan-ja/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stan-ja/subscriptions","organizations_url":"https://api.github.com/users/stan-ja/orgs","repos_url":"https://api.github.com/users/stan-ja/repos","events_url":"https://api.github.com/users/stan-ja/events{/privacy}","received_events_url":"https://api.github.com/users/stan-ja/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/stan-ja/stan-ja","description":null,"fork":false,"url":"https://api.github.com/repos/stan-ja/stan-ja","forks_url":"https://api.github.com/repos/stan-ja/stan-ja/forks","keys_url":"https://api.github.com/repos/stan-ja/stan-ja/keys{/key_id}","collaborators_url":"https://api.github.com/repos/stan-ja/stan-ja/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/stan-ja/stan-ja/teams","hooks_url":"https://api.github.com/repos/stan-ja/stan-ja/hooks","issue_events_url":"https://api.github.com/repos/stan-ja/stan-ja/issues/events{/number}","events_url":"https://api.github.com/repos/stan-ja/stan-ja/events","assignees_url":"https://api.github.com/repos/stan-ja/stan-ja/assignees{/user}","branches_url":"https://api.github.com/repos/stan-ja/stan-ja/branches{/branch}","tags_url":"https://api.github.com/repos/stan-ja/stan-ja/tags","blobs_url":"https://api.github.com/repos/stan-ja/stan-ja/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/stan-ja/stan-ja/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/stan-ja/stan-ja/git/refs{/sha}","trees_url":"https://api.github.com/repos/stan-ja/stan-ja/git/trees{/sha}","statuses_url":"https://api.github.com/repos/stan-ja/stan-ja/statuses/{sha}","languages_url":"https://api.github.com/repos/stan-ja/stan-ja/languages","stargazers_url":"https://api.github.com/repos/stan-ja/stan-ja/stargazers","contributors_url":"https://api.github.com/repos/stan-ja/stan-ja/contributors","subscribers_url":"https://api.github.com/repos/stan-ja/stan-ja/subscribers","subscription_url":"https://api.github.com/repos/stan-ja/stan-ja/subscription","commits_url":"https://api.github.com/repos/stan-ja/stan-ja/commits{/sha}","git_commits_url":"https://api.github.com/repos/stan-ja/stan-ja/git/commits{/sha}","comments_url":"https://api.github.com/repos/stan-ja/stan-ja/comments{/number}","issue_comment_url":"https://api.github.com/repos/stan-ja/stan-ja/issues/comments{/number}","contents_url":"https://api.github.com/repos/stan-ja/stan-ja/contents/{+path}","compare_url":"https://api.github.com/repos/stan-ja/stan-ja/compare/{base}...{head}","merges_url":"https://api.github.com/repos/stan-ja/stan-ja/merges","archive_url":"https://api.github.com/repos/stan-ja/stan-ja/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/stan-ja/stan-ja/downloads","issues_url":"https://api.github.com/repos/stan-ja/stan-ja/issues{/number}","pulls_url":"https://api.github.com/repos/stan-ja/stan-ja/pulls{/number}","milestones_url":"https://api.github.com/repos/stan-ja/stan-ja/milestones{/number}","notifications_url":"https://api.github.com/repos/stan-ja/stan-ja/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/stan-ja/stan-ja/labels{/name}","releases_url":"https://api.github.com/repos/stan-ja/stan-ja/releases{/id}","deployments_url":"https://api.github.com/repos/stan-ja/stan-ja/deployments","created_at":"2015-12-19T02:08:26Z","updated_at":"2016-11-09T07:05:12Z","pushed_at":"2016-12-04T10:49:54Z","git_url":"git://github.com/stan-ja/stan-ja.git","ssh_url":"git@github.com:stan-ja/stan-ja.git","clone_url":"https://github.com/stan-ja/stan-ja.git","svn_url":"https://github.com/stan-ja/stan-ja","homepage":null,"size":4785,"stargazers_count":17,"watchers_count":17,"language":"Shell","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"open_issues_count":12,"forks":1,"open_issues":12,"watchers":17,"default_branch":"master"}},"base":{"label":"stan-ja:master","ref":"master","sha":"6a1ebf4ed4d4a590ebeb9b86cbbf581024cc25ac","user":{"login":"stan-ja","id":16357636,"avatar_url":"https://avatars.githubusercontent.com/u/16357636?v=3","gravatar_id":"","url":"https://api.github.com/users/stan-ja","html_url":"https://github.com/stan-ja","followers_url":"https://api.github.com/users/stan-ja/followers","following_url":"https://api.github.com/users/stan-ja/following{/other_user}","gists_url":"https://api.github.com/users/stan-ja/gists{/gist_id}","starred_url":"https://api.github.com/users/stan-ja/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stan-ja/subscriptions","organizations_url":"https://api.github.com/users/stan-ja/orgs","repos_url":"https://api.github.com/users/stan-ja/repos","events_url":"https://api.github.com/users/stan-ja/events{/privacy}","received_events_url":"https://api.github.com/users/stan-ja/received_events","type":"Organization","site_admin":false},"repo":{"id":48265007,"name":"stan-ja","full_name":"stan-ja/stan-ja","owner":{"login":"stan-ja","id":16357636,"avatar_url":"https://avatars.githubusercontent.com/u/16357636?v=3","gravatar_id":"","url":"https://api.github.com/users/stan-ja","html_url":"https://github.com/stan-ja","followers_url":"https://api.github.com/users/stan-ja/followers","following_url":"https://api.github.com/users/stan-ja/following{/other_user}","gists_url":"https://api.github.com/users/stan-ja/gists{/gist_id}","starred_url":"https://api.github.com/users/stan-ja/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stan-ja/subscriptions","organizations_url":"https://api.github.com/users/stan-ja/orgs","repos_url":"https://api.github.com/users/stan-ja/repos","events_url":"https://api.github.com/users/stan-ja/events{/privacy}","received_events_url":"https://api.github.com/users/stan-ja/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/stan-ja/stan-ja","description":null,"fork":false,"url":"https://api.github.com/repos/stan-ja/stan-ja","forks_url":"https://api.github.com/repos/stan-ja/stan-ja/forks","keys_url":"https://api.github.com/repos/stan-ja/stan-ja/keys{/key_id}","collaborators_url":"https://api.github.com/repos/stan-ja/stan-ja/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/stan-ja/stan-ja/teams","hooks_url":"https://api.github.com/repos/stan-ja/stan-ja/hooks","issue_events_url":"https://api.github.com/repos/stan-ja/stan-ja/issues/events{/number}","events_url":"https://api.github.com/repos/stan-ja/stan-ja/events","assignees_url":"https://api.github.com/repos/stan-ja/stan-ja/assignees{/user}","branches_url":"https://api.github.com/repos/stan-ja/stan-ja/branches{/branch}","tags_url":"https://api.github.com/repos/stan-ja/stan-ja/tags","blobs_url":"https://api.github.com/repos/stan-ja/stan-ja/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/stan-ja/stan-ja/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/stan-ja/stan-ja/git/refs{/sha}","trees_url":"https://api.github.com/repos/stan-ja/stan-ja/git/trees{/sha}","statuses_url":"https://api.github.com/repos/stan-ja/stan-ja/statuses/{sha}","languages_url":"https://api.github.com/repos/stan-ja/stan-ja/languages","stargazers_url":"https://api.github.com/repos/stan-ja/stan-ja/stargazers","contributors_url":"https://api.github.com/repos/stan-ja/stan-ja/contributors","subscribers_url":"https://api.github.com/repos/stan-ja/stan-ja/subscribers","subscription_url":"https://api.github.com/repos/stan-ja/stan-ja/subscription","commits_url":"https://api.github.com/repos/stan-ja/stan-ja/commits{/sha}","git_commits_url":"https://api.github.com/repos/stan-ja/stan-ja/git/commits{/sha}","comments_url":"https://api.github.com/repos/stan-ja/stan-ja/comments{/number}","issue_comment_url":"https://api.github.com/repos/stan-ja/stan-ja/issues/comments{/number}","contents_url":"https://api.github.com/repos/stan-ja/stan-ja/contents/{+path}","compare_url":"https://api.github.com/repos/stan-ja/stan-ja/compare/{base}...{head}","merges_url":"https://api.github.com/repos/stan-ja/stan-ja/merges","archive_url":"https://api.github.com/repos/stan-ja/stan-ja/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/stan-ja/stan-ja/downloads","issues_url":"https://api.github.com/repos/stan-ja/stan-ja/issues{/number}","pulls_url":"https://api.github.com/repos/stan-ja/stan-ja/pulls{/number}","milestones_url":"https://api.github.com/repos/stan-ja/stan-ja/milestones{/number}","notifications_url":"https://api.github.com/repos/stan-ja/stan-ja/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/stan-ja/stan-ja/labels{/name}","releases_url":"https://api.github.com/repos/stan-ja/stan-ja/releases{/id}","deployments_url":"https://api.github.com/repos/stan-ja/stan-ja/deployments","created_at":"2015-12-19T02:08:26Z","updated_at":"2016-11-09T07:05:12Z","pushed_at":"2016-12-04T10:49:54Z","git_url":"git://github.com/stan-ja/stan-ja.git","ssh_url":"git@github.com:stan-ja/stan-ja.git","clone_url":"https://github.com/stan-ja/stan-ja.git","svn_url":"https://github.com/stan-ja/stan-ja","homepage":null,"size":4785,"stargazers_count":17,"watchers_count":17,"language":"Shell","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"open_issues_count":12,"forks":1,"open_issues":12,"watchers":17,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/stan-ja/stan-ja/pulls/65"},"html":{"href":"https://github.com/stan-ja/stan-ja/pull/65"},"issue":{"href":"https://api.github.com/repos/stan-ja/stan-ja/issues/65"},"comments":{"href":"https://api.github.com/repos/stan-ja/stan-ja/issues/65/comments"},"review_comments":{"href":"https://api.github.com/repos/stan-ja/stan-ja/pulls/65/comments"},"review_comment":{"href":"https://api.github.com/repos/stan-ja/stan-ja/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/stan-ja/stan-ja/pulls/65/commits"},"statuses":{"href":"https://api.github.com/repos/stan-ja/stan-ja/statuses/df415c50f1f13365ce257a00e4fbb104ca921e27"}}}}
{"actor":{"display_login":"MatsuuraKentaro"}}