ฉันกำลังทำงานกับข้อมูล syntatic สำหรับข้อผิดพลาดในตัวแปรแบบจำลองสำหรับการวิจัยบางอย่าง ขณะนี้ฉันมีตัวแปรอิสระเดี่ยวและฉันคาดว่าฉันรู้ถึงความแปรปรวนสำหรับมูลค่าที่แท้จริงของตัวแปรตาม
ดังนั้นด้วยข้อมูลนี้ฉันสามารถบรรลุตัวประมาณค่าแบบไม่เอนเอียงสำหรับค่าสัมประสิทธิ์ของตัวแปรตาม
นางแบบ:
โดยที่:
สำหรับบาง
e 1 ~ N ( 0 , σ 2 ) σ e 2 ~ N ( 0 , 1 )
ไหนค่าของเป็นที่รู้จักสำหรับแต่ละตัวอย่างเท่านั้นและยังเบี่ยงเบนมาตรฐานของมูลค่าที่แท้จริงของตัวอย่างเป็นที่รู้จักกัน: \ x σ x
ฉันได้รับค่าความเอนเอียง ( ) โดยใช้ OLS แล้วทำการปรับโดยใช้:
ฉันเห็นว่าตัวประมาณค่าใหม่ที่ไม่เอนเอียงสำหรับค่าสัมประสิทธิ์ดีกว่ามาก (ใกล้เคียงกับมูลค่าที่แท้จริง) ของรุ่นนี้ แต่ MSE แย่ลงกว่าการใช้ตัวประมาณแบบเอนเอียง
เกิดอะไรขึ้น? ฉันคาดว่าตัวประมาณ ubiased จะให้ผลลัพธ์ที่ดีกว่าตัวเอนเอียง
รหัส 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
กว่าตัวประมาณค่าเอนเอียง (ตามที่คาดไว้)
ป.ล. ผลที่ได้จากการเป็นกลางที่เลวร้ายยิ่งกว่าตัวประมาณค่าเอนเอียงนั้นมีนัยสำคัญทางสถิติ - การทดสอบสำหรับการละเว้นจากโค้ดเนื่องจากเป็นการทำให้เข้าใจง่ายของโค้ด "เวอร์ชันเต็ม"
UPDTAE:ฉันเพิ่มการทดสอบที่ตรวจสอบและและตัวประมาณค่าแบบเอนเอียงนั้นแย่กว่าค่าที่ไม่เอนเอียงอย่างมีนัยสำคัญตามตัวชี้วัดนี้ถึงแม้ว่าค่า MSE ของตัวประมาณแบบลำเอียง (บนชุดทดสอบ) จะดีกว่าอย่างมาก
ที่ไหนเป็นค่าสัมประสิทธิ์ที่แท้จริงของตัวแปรตามเป็นประมาณการลำเอียงสำหรับและเป็นประมาณการที่เป็นกลางสำหรับ\
ฉันเชื่อว่านี่แสดงให้เห็นว่าเหตุผลสำหรับผลลัพธ์ไม่ใช่ความแปรปรวนที่สูงขึ้นของตัวประมาณที่ไม่เอนเอียงเนื่องจากยังใกล้เคียงกับมูลค่าที่แท้จริง
เครดิต: การใช้บันทึกการบรรยายของ Steve Pischkeเป็นทรัพยากร
b
และbFixed
แต่อธิบายสิ่งที่แสดง