Tôi đang làm việc trên một số dữ liệu tổng hợp cho mô hình Error In Var biến cho một số nghiên cứu. Hiện tại tôi có một biến độc lập duy nhất và tôi giả sử tôi biết phương sai cho giá trị thực của biến phụ thuộc.
Vì vậy, với thông tin này, tôi có thể đạt được một công cụ ước tính không thiên vị cho hệ số của biến phụ thuộc.
Ngươi mâu:
y=0,5x-10+e2
Trong đó:
đối với một số \ sigma e_2 \ text {~} N (0,1)
σ e 2 ~ N ( 0 , 1 )
Trong đó các giá trị của chỉ được biết cho mỗi mẫu và độ lệch chuẩn của giá trị thực của cho mẫu được biết: .
Tôi nhận được hệ số thiên vị ( ) bằng OLS và sau đó thực hiện điều chỉnh bằng cách sử dụng:
Tôi thấy rằng công cụ ước tính mới, không thiên vị cho hệ số của tôi tốt hơn nhiều (gần với giá trị thực) với mô hình này, nhưng MSE đang trở nên tồi tệ hơn so với việc sử dụng công cụ ước tính sai lệch.
Chuyện gì đang xảy ra vậy? Tôi mong đợi một công cụ ước tính có mặt để mang lại kết quả tốt hơn so với ước tính sai lệch.
Mã 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)
Các kết quả:
MSE ước tính thiên vị:
ans =
Columns 1 through 7
1.2171 1.6513 1.9989 2.3914 2.5766 2.6712 2.5997
Column 8
2.8346
MSE ước tính không thiên vị:
ans =
Columns 1 through 7
1.2308 2.0001 2.9555 4.9727 7.6757 11.3106 14.4283
Column 8
11.5653
Ngoài ra, in các giá trị của b
và bFixed
- tôi thấy điều đó bFixed
thực sự gần với các giá trị thực 0.5,-10
hơn so với công cụ ước tính sai lệch (như mong đợi).
PS Kết quả của việc không thiên vị là tồi tệ hơn công cụ ước tính sai lệch có ý nghĩa thống kê - thử nghiệm cho nó được bỏ qua từ mã, vì nó là đơn giản hóa mã "phiên bản đầy đủ".
CẬP NHẬT: Tôi đã thêm một thử nghiệm kiểm tra và và công cụ ước tính sai lệch thực sự kém hơn đáng kể (giá trị lớn hơn) so với giá trị không thiên vị theo số liệu này, mặc dù MSE của công cụ ước tính thiên vị (trên bộ kiểm tra) tốt hơn đáng kể.
Trong đó là hệ số thực của biến phụ thuộc, là công cụ ước tính thiên vị cho và là công cụ ước tính không thiên vị cho . Σ cho mỗi bài kiểm tra ( β ' - β ) 2 β = 0,5 β β β ' β
Điều này tôi tin rằng cho thấy lý do cho kết quả KHÔNG phải là phương sai cao hơn của công cụ ước lượng không thiên vị, vì nó vẫn gần với giá trị thực hơn.
Tín dụng: Sử dụng các ghi chú bài giảng của Steve Pischke làm tài nguyên
b
và bFixed
, nhưng giải thích những gì chúng hiển thị.