私はいくつかの研究のために、Error In Variableモデルのいくつかの合成データに取り組んでいます。現在、単一の独立変数があり、従属変数の真の値の分散を知っていると仮定しています。
したがって、この情報を使用して、従属変数の係数の不偏推定量を実現できます。
モデル:
ここで、
のためのいくつかの
値はここで唯一各サンプル、またの真の値の標準偏差のために知られているのサンプルのために知られている:。
私は偏っ(取得β OLSを使用して)係数をした後、使用して調整を行います。
このモデルでは、係数の新しい不偏推定量がはるかに優れている(実際の値に近い)ことがわかりますが、バイアス推定量を使用するよりもMSEが悪化しています。
何が起こっている?偏った推定器よりも、偏った推定器よりも良い結果が得られると期待していました。
Matlabコード:
reg_mse_agg = [];
fixed_mse_agg = [];
varMult = 1;
numTests = 60;
for dataNumber=1:8
reg_mses = [];
fixed_mses = [];
X = rand(1000,1);
X(:,1) = X(:,1) * 10;
X(:,1) = X(:,1) + 5;
varX = var(X);
y = 0.5 * X(:,1) -10;
y = y + normrnd(0,1,size(y));
origX = X;
X = X + normrnd(0,dataNumber * varMult ,size(X));
train_size = floor(0.5 * length(y));
for t=1:numTests,
idx = randperm(length(y));
train_idx = idx(1:train_size);
test_idx = idx(train_size+1:end);
Xtrain = X(train_idx,:);
ytrain = y(train_idx);
Xtest = X(test_idx,:);
ytest = y(test_idx);
b = OLS_solver(Xtrain, ytrain);
%first arg of evaluate returns MSE, working correctly.
[ reg_mse, ~ ] = evaluate( b,Xtest,ytest);
reg_mses = [reg_mses ; reg_mse];
varInd = var(Xtrain);
varNoise = varInd - varX;
bFixed = [0 0]';
bFixed(1) = b(1) * varInd / varX;
bFixed(2) = mean(ytrain - bFixed(1)*Xtrain);
[fixed_mse,~ ] = evaluate( bFixed,Xtest,ytest);
fixed_mses = [fixed_mses ; fixed_mse];
dataNumber * varMult
b
bFixed
end
reg_mse_agg = [reg_mse_agg , reg_mses];
fixed_mse_agg = [fixed_mse_agg , fixed_mses];
end
mean(reg_mse_agg)
mean(fixed_mse_agg)
結果:
バイアス推定器のMSE:
ans =
Columns 1 through 7
1.2171 1.6513 1.9989 2.3914 2.5766 2.6712 2.5997
Column 8
2.8346
不偏推定量のMSE:
ans =
Columns 1 through 7
1.2308 2.0001 2.9555 4.9727 7.6757 11.3106 14.4283
Column 8
11.5653
さらに、b
and の値を印刷すると、バイアスされた推定器よりも実際の値に実際に近いbFixed
ことbFixed
がわかります0.5,-10
(予想どおり)。
PS偏りのない推定器がバイアス付き推定器よりも悪い結果は統計的に有意です-「完全版」コードの簡略化であるため、コードのテストは省略されています。
UPDTAE:私はチェックすることをテストして加えとΣ 各試験用(β ' - β )2公正なものよりも、及びバイアス推定が実際に有意に悪い(大きい値が)に従ってこのメトリックは、バイアス付き推定器のMSE(テストセット上)が大幅に改善されていますが。
ここで、β = 0.5従属変数の実際の係数であり、βは付勢するための推定であるβ、及びβ '
は、の不偏推定量です。
これは、結果の理由が不偏推定量のより高い分散ではなく、実際の値により近いことを示していると考えています。
クレジット:リソースとしてSteve Pischkeの講義ノートを使用
b
とbFixed
、彼らが示すものを説明しました。