एक साल के बाद स्नातक स्तर की पढ़ाई स्कूल में, "भारित कम से कम वर्गों" की मेरी समझ निम्नलिखित है: , कुछ डिजाइन मैट्रिक्स, \ " boldsymbol \ beta \ in \ mathbb {R} ^ p एक पैरामीटर वेक्टर, \ boldsymbol \ epsilon \ in \ mathbb {R} ^ n एक त्रुटि वेक्टर हो सकता है जैसे कि \ boldsymbol \ e \ eililon \ sim \ mathcal {N} (\ mathbf) {0}, \ sigma ^ 2 \ mathbf {V}) , जहां \ mathbf {V} = \ text {diag} (v_1, v_2, \ dots, v_n) और \ sigma ^ 2 } 0 । फिर मॉडल \ mathbf {y} = \ mathbf {X} \ boldsymbol \ beta + \ boldsymbol \ epsilon ε ~ एन ( 0 , σ 2 वी ) वी = निदान ( v 1 , वी 2 , ... , वी एन ) σ 2 > 0 y = एक्स बीटा + ε
मैं इस बारे में विशेष रूप से उत्सुक हूं कि कैसे फ़ंक्शन को R
वज़न संभालता है lm()
जब वज़न पूर्णांक के लिए सौंपा जाता है। उपयोग करने से ?lm
:
गैर-
NULL
वज़न का उपयोग यह दर्शाने के लिए किया जा सकता है कि विभिन्न अवलोकनों के भिन्न भिन्न रूप होते हैं (भार में मान भिन्नता के विपरीत होते हैं); या समतुल्य जब वजन के तत्वों धनात्मक पूर्णांक होते हैं , कि प्रत्येक प्रतिक्रिया का मध्यमान है इकाई वजन टिप्पणियों (मामले देखते हैं कि सहित टिप्पणियों के बराबर और डेटा संक्षेप गया है)।
मैंने इस पैराग्राफ को कई बार फिर से पढ़ा है, और इससे मुझे कोई मतलब नहीं है। मेरे द्वारा विकसित किए गए ढांचे का उपयोग करते हुए, मान लीजिए कि मेरे पास निम्नलिखित सिम्युलेटेड मूल्य हैं:
x <- c(0, 1, 2)
y <- c(0.25, 0.75, 0.85)
weights <- c(50, 85, 75)
lm(y~x, weights = weights)
Call:
lm(formula = y ~ x, weights = weights)
Coefficients:
(Intercept) x
0.3495 0.2834
ऊपर मैंने जो फ्रेमवर्क विकसित किया है, उसका उपयोग करके ये पैरामीटर कैसे निकाले जाते हैं? यहाँ हाथ से ऐसा करने का मेरा प्रयास है: , हमारे पास और यह करने में देता है (ध्यान दें कि इस मामले में invertibility काम नहीं करती है, इसलिए मैंने सामान्यीकृत व्युत्क्रम का उपयोग किया):
R
X <- matrix(rep(1, times = 6), byrow = T, nrow = 3, ncol = 2)
V_inv <- diag(c(1/50, 1/85, 1/75))
y <- c(0.25, 0.75, 0.85)
library(MASS)
ginv(t(X) %*% V_inv %*% X) %*% t(X) %*% V_inv %*% y
[,1]
[1,] 0.278913
[2,] 0.278913
ये lm()
आउटपुट से मानों से मेल नहीं खाते । मैं क्या गलत कर रहा हूं?