akaike_info_criterion_lsq¶
- astropy.stats.akaike_info_criterion_lsq(ssr, n_params, n_samples)[ソース]¶
観測値をガウス分布と仮定し,Akaike情報尺度を計算する.
本例では、AICは、
\[\mathm{aic}=n\ln\Left(\dfrac{\mathm{ssr}{n}\right)+2 k\]サンプルサイズが十分でない場合には、補正が適用される、すなわち
\[\mathm{aic}=n\ln\Left(\dfrac{\mathm{ssr}{n}\right)+2 k+ \dfrac{2 k(k+1)}{n-k-1}\]そのうち \(n\) サンプルの大きさです \(k\) アイドルパラメータの数です \(\mathrm{{SSR}}\) モデルとデータ間の残差二乗和を表す.
たとえば,最小二乗統計量を用いてモデルのパラメータを推定する場合には,これが適用される.
- パラメータ
- ssr浮いている.
モデルとデータ間の残差二乗和(SSR).
- n_params集積する.
モデルの自由変数の個数,すなわちパラメータ空間の次元である.
- n_samples集積する.
回数を観察する。
- 返品
- aic浮いている.
Akaike情報標準社(Akaike Information Criteria)。
参考文献
- 1
Akaike情報標準社(Akaike Information Criteria)。<https://en.wikipedia.org/wiki/Akaike_information_criteria>
- 2
起源実験室です。2つのフィッティング関数を比較する。<https://www.OriginLab.com/doc/Origin-Help/PostFit-CompareFitFunc>
実例.
この例は,Astropyモデリングページの複合モデル部分に基づく.
>>> import numpy as np >>> from astropy.modeling import models, fitting >>> from astropy.stats.info_theory import akaike_info_criterion_lsq >>> np.random.seed(42) >>> # Generate fake data >>> g1 = models.Gaussian1D(.1, 0, 0.2) # changed this to noise level >>> g2 = models.Gaussian1D(.1, 0.3, 0.2) # and added another Gaussian >>> g3 = models.Gaussian1D(2.5, 0.5, 0.1) >>> x = np.linspace(-1, 1, 200) >>> y = g1(x) + g2(x) + g3(x) + np.random.normal(0., 0.2, x.shape) >>> # Fit with three Gaussians >>> g3_init = (models.Gaussian1D(.1, 0, 0.1) ... + models.Gaussian1D(.1, 0.2, 0.15) ... + models.Gaussian1D(2.4, .4, 0.1)) >>> fitter = fitting.LevMarLSQFitter() >>> g3_fit = fitter(g3_init, x, y) >>> # Fit with two Gaussians >>> g2_init = (models.Gaussian1D(.1, 0, 0.1) + ... models.Gaussian1D(2, 0.5, 0.1)) >>> g2_fit = fitter(g2_init, x, y) >>> # Fit with only one Gaussian >>> g1_init = models.Gaussian1D(amplitude=2., mean=0.3, stddev=.5) >>> g1_fit = fitter(g1_init, x, y) >>> # Compute the mean squared errors >>> ssr_g3 = np.sum((g3_fit(x) - y)**2.0) >>> ssr_g2 = np.sum((g2_fit(x) - y)**2.0) >>> ssr_g1 = np.sum((g1_fit(x) - y)**2.0) >>> akaike_info_criterion_lsq(ssr_g3, 9, x.shape[0]) -634.5257517810961 >>> akaike_info_criterion_lsq(ssr_g2, 6, x.shape[0]) -662.83834510232043 >>> akaike_info_criterion_lsq(ssr_g1, 3, x.shape[0]) -647.47312032659499
したがって,AIC値の中から,モデルG 2_FITを選択したい.しかしながら、AICの違いは約2.4であるため、G 3_FITモデルをかなりサポートすることができる。私たちはモデルG 1_FITを拒否しなければならない。