Я работаю над некоторыми синтетическими данными для модели Error In Variable для некоторых исследований. В настоящее время у меня есть одна независимая переменная, и я предполагаю, что знаю дисперсию для истинного значения зависимой переменной.
Таким образом, с помощью этой информации я могу получить объективную оценку для коэффициента зависимой переменной.
Модель:
у=0,5х-10+е2где:
е1~N(0,σ2)для некоторогоσе2~N(0,1)
Там , где значения известны только для каждого образца, а также стандартного отклонения реального значения х для образца известно: σ х .
Я получаю смещена ( β коэффициент) с помощью МНК, а затем внося коррективы с помощью:
Я вижу, что моя новая, несмещенная оценка для коэффициента намного лучше (ближе к реальному значению) с этой моделью, но 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
и bFixed
- я вижу, что bFixed
это действительно ближе к реальным значениям0.5,-10
чем смещенная оценка (как и ожидалось).
PS Результаты того, что непредвзятый результат хуже, чем предвзятый оценщик, являются статистически значимыми - тест для него в коде пропущен, поскольку он является упрощением кода «полной версии».
UPDTAE: Я добавил тест , который проверяет и Σ для каждого теста ( & beta ; ' - & beta ; ) 2 , и смещенной оценки действительно значительно хуже (большее значение) , чем несмещенный согласно одному этот показатель, хотя MSE смещенной оценки (на тестовом наборе) значительно лучше.
Там , где β = 0,5 является реальным коэффициентом зависимой переменной, β является смещенной оценкой для р , и является несмещенной оценкой для р
.
Я полагаю, это показывает, что причиной результатов является НЕ более высокая дисперсия непредвзятой оценки, поскольку она все еще ближе к реальной стоимости.
Предоставлено : Использование лекций Стива Пишке в качестве ресурса.
b
и bFixed
, но объяснил, что они показывают.