मैं लगभग 60 भविष्यवक्ता चर और 30 टिप्पणियों के साथ एक बहुभिन्नरूपी रैखिक प्रतिगमन मॉडल को फिट करने की कोशिश कर रहा हूं, इसलिए मैं नियमित प्रतिगमन के लिए glmnet पैकेज का उपयोग कर रहा हूं क्योंकि p> n।
मैं दस्तावेज़ीकरण और अन्य प्रश्नों से गुजर रहा हूं, लेकिन मैं अभी भी परिणामों की व्याख्या नहीं कर सकता, यहां एक नमूना कोड (20 भविष्यवक्ताओं और सरल बनाने के लिए 10 टिप्पणियों के साथ):
मैं संख्या पंक्तियों के साथ एक मैट्रिक्स x बनाता हूं = संख्या अवलोकन और संख्या कॉल = संख्या पूर्वसूचक और एक वेक्टर y जो प्रतिक्रिया चर का प्रतिनिधित्व करता है
> x=matrix(rnorm(10*20),10,20)
> y=rnorm(10)
मैं एक glmnet मॉडल को डिफ़ॉल्ट के रूप में अल्फा छोड़ रहा हूं (lasso पेनल्टी के लिए = 1)
> fit1=glmnet(x,y)
> print(fit1)
मैं समझता हूं कि लैंबडा के घटते मूल्यों (यानी जुर्माना) के साथ मुझे अलग-अलग भविष्यवाणियां मिलती हैं
Call: glmnet(x = x, y = y)
Df %Dev Lambda
[1,] 0 0.00000 0.890700
[2,] 1 0.06159 0.850200
[3,] 1 0.11770 0.811500
[4,] 1 0.16880 0.774600
.
.
.
[96,] 10 0.99740 0.010730
[97,] 10 0.99760 0.010240
[98,] 10 0.99780 0.009775
[99,] 10 0.99800 0.009331
[100,] 10 0.99820 0.008907
अब मैं अपने बीटा मानों को चुनने की भविष्यवाणी करता हूं, उदाहरण के लिए, दिए गए सबसे छोटे लैंबडा मूल्य glmnet
> predict(fit1,type="coef", s = 0.008907)
21 x 1 sparse Matrix of class "dgCMatrix"
1
(Intercept) -0.08872364
V1 0.23734885
V2 -0.35472137
V3 -0.08088463
V4 .
V5 .
V6 .
V7 0.31127123
V8 .
V9 .
V10 .
V11 0.10636867
V12 .
V13 -0.20328200
V14 -0.77717745
V15 .
V16 -0.25924281
V17 .
V18 .
V19 -0.57989929
V20 -0.22522859
अगर इसके बजाय मैं लैम्ब्डा को चुनता हूं
cv <- cv.glmnet(x,y)
model=glmnet(x,y,lambda=cv$lambda.min)
सभी चर (।) होंगे।
संदेह और सवाल:
- मुझे नहीं पता कि लैम्ब्डा कैसे चुनें।
- क्या मुझे किसी अन्य मॉडल को फिट करने के लिए गैर (?) चर का उपयोग करना चाहिए? मेरे मामले में मैं यथासंभव अधिक से अधिक चर रखना चाहूंगा।
- मैं पी-वैल्यू को कैसे जान सकता हूं, अर्थात कौन सा चर काफी प्रतिक्रिया की भविष्यवाणी करता है?
मैं अपने खराब सांख्यिकीय ज्ञान के लिए माफी माँगता हूँ! और किसी भी मदद के लिए धन्यवाद।