1
ベストフィット線形パラメータAおよびB(y = Ax + b)は、これらのパラメータに対するカイ二乗関数の最小値に対応します。私はグローバルな最小値(2パラメータ線形カイ2乗が放物線であるため保証)をブルートフォースグリッドで検索し、3つのネストループ(以下)で実現しましたが、ループを避けたい(配列プロパティを使用してベクトル化する) )。ベクトル化2dカイ二乗グリッド検索
カイ二乗(加重最小二乗)は(擬似コード)のように定義される:
カイ二乗(K、J)=和(Y [I] - ([K] * X [I] + B [j]))/ yerr [i])^ 2である。
以下は、A
およびB
のパラメータ値(それぞれ100個の値)の10,000の組み合わせに対してカイ二乗値を100×100グリッドで満たすMatlabコードです。データアレイは、x
,y
、yerr
の3つです。
2つのパラメータを持つ直線的なカイ2乗グリッドの無限のバージョンへの助けをありがとう!
キース
% create parameter grid
a = linspace(85,110,100);
b = linspace(10,35,100);
[A,B] = meshgrid(a,b);
% calculate chi-square over parameter grid
chi2(100,100) = zeros;
for k = 1:100;
for j = 1:100;
for i = 1:length(y)
chi2a = ((y(i)-a(k)*x(i)-b(j))/yerr(i)).^2;
chi2(k,j) = chi2(k,j)+chi2a;
end
end
end
ありがとうございました - これはとても便利です! – Carey