मैं कुछ शोध के लिए एरर इन वैरिएबल मॉडल के लिए कुछ सिंटैटिक डेटा पर काम कर रहा हूं। वर्तमान में मेरे पास एक एकल स्वतंत्र चर है, और मैं मान रहा हूं कि मैं आश्रित चर के सही मूल्य के लिए विचरण जानता हूं।
इसलिए, इस जानकारी के साथ, मैं आश्रित चर के गुणांक के लिए एक निष्पक्ष अनुमानक प्राप्त कर सकता हूं।
आदर्श:
जहाँ:
लिए कुछ
जहां प्रत्येक नमूने के लिए के मूल्यों को जाना जाता है, और नमूने के लिए के वास्तविक मान का मानक विचलन भी ज्ञात है: ।
मुझे ओएलएस का उपयोग करके पक्षपाती ( ) गुणांक प्राप्त होता है, और फिर समायोजन का उपयोग करके:
मैं देखता हूं कि इस मॉडल के साथ गुणांक के लिए मेरा नया, निष्पक्ष अनुमानक बेहतर (वास्तविक मूल्य के करीब) है, लेकिन एमएसई पक्षपाती अनुमानक का उपयोग करने से भी बदतर हो रहा है।
क्या हो रहा है? मुझे उम्मीद थी कि एक पक्षपाती अनुमानक पक्षपाती की तुलना में बेहतर परिणाम देगा।
मतलाब कोड:
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: मैंने एक परीक्षण जोड़ा है जिसमें और , और पक्षपाती अनुमानक इस मीट्रिक के अनुसार निष्पक्ष एक की तुलना में वास्तव में काफी बदतर (बड़ा मूल्य) है, भले ही पक्षपाती अनुमानक (परीक्षण-सेट पर) का एमएसई काफी बेहतर है।
कहाँ आश्रित चर के असली गुणांक है, के लिए पक्षपाती आकलनकर्ता है , और के लिए निष्पक्ष आकलनकर्ता है ।
यह मेरा मानना है कि परिणामों का कारण निष्पक्ष अनुमानक का उच्चतर संस्करण नहीं है, क्योंकि यह अभी भी वास्तविक मूल्य के करीब है।
क्रेडिट: संसाधन के रूप में स्टीव पिसके के व्याख्यान नोट्स का उपयोग करना
b
और bFixed
बताया कि वे क्या दिखाते हैं।