मेरे पास एक डेटा तालिका T1 है, जिसमें लगभग एक हजार चर (V1) और लगभग 200 मिलियन डेटा बिंदु हैं। डेटा विरल है और अधिकांश प्रविष्टियां NA हैं। प्रत्येक डेटा पॉइंट्स में दूसरे से अलग होने के लिए एक अद्वितीय आईडी और डेट जोड़ी होती है।
मेरे पास एक और टेबल T2 है, जिसमें चर (V2) का एक अलग सेट है। इस तालिका में आईडी और तिथि जोड़ी भी है जो विशिष्ट रूप से T2 में प्रविष्टियों की पहचान करती है।
हमें संदेह है कि T1 में डेटा का उपयोग T2 में चर के मूल्यों की भविष्यवाणी करने के लिए किया जा सकता है।
इसे साबित करने के लिए, मैंने R में 'glm' मॉडल लागू करने और यह जांचने के लिए सोचा कि क्या हम वास्तव में T2 में कुछ चर पा सकते हैं जो T1 में चर पर निर्भर हैं।
T2 में प्रत्येक चर के लिए, मैंने T1 में एक ही आईडी और दिनांक जोड़ी वाले सभी डेटा को निकालना शुरू कर दिया, जिसके परिणामस्वरूप कुछ परीक्षण चर के लिए बहुत छोटे ~ 50K डेटा बिंदु थे।
अब मैं glm के अनुप्रयोग से जो समस्याएँ आ रही हूँ वह इस प्रकार है।
कुछ मामलों में, यह मुझे 'फिट नहीं पाया गया' और 'glm.fit: एल्गोरिथ्म में अभिसरण नहीं' की चेतावनी दिखाता है। मुझे यकीन नहीं है कि यह क्यों दिखाया गया है?
चमक में NA का इलाज कैसे किया जाता है? क्या यह पहले 'NA' से जुड़े सभी रिकॉर्ड को हटा देता है और फिर फिटिंग करता है?
क्या पहले सभी NAs को निकालना एक अच्छी रणनीति है और फिर 'glm' को कॉल करें। मुझे डर है कि यह डेटा पॉइंट्स को काफी कम कर सकता है क्योंकि उनमें से ज्यादातर एनए हैं।
गुणांक की गणना करने के लिए किस विधि का उपयोग किया जाता है। मैं किसी भी वेबसाइट या पेपर या पुस्तक को नहीं खोज सका जो यह चर्चा करे कि आउटपुट की गणना कैसे की जाती है।
मैंने 'NA' के साथ और बिना glm का परीक्षण किया और अलग-अलग उत्तर पाए जो बताते हैं कि NAs को डेटा फिटिंग करते समय माना जाता है:
उदाहरण 1:
> tmpData
x1 x2 x3 Y
1 1 1 1 3
2 1 0 4 5
3 1 2 3 6
4 0 3 1 4
Call: glm(formula = as.formula(paste(dep, " ~ ", paste(xn, collapse = "+"))),
na.action = na.exclude)
Coefficients:
(Intercept) as.numeric(unlist(tmpData["x1"])) as.numeric(unlist(tmpData["x2"]))
5.551e-16 1.000e+00 1.000e+00
as.numeric(unlist(tmpData["x3"]))
1.000e+00
Degrees of Freedom: 3 Total (i.e. Null); 0 Residual
Null Deviance: 5
Residual Deviance: 9.861e-31 AIC: -260.6
उदाहरण 2:
'x1' 'x2' 'x3' 'Y'
100000 1 NA 2
1 1 1 3
1 NA -1124 2
1 0 4 5
1 2 3 6
0 3 1 4
Coefficients:
(Intercept) as.numeric(unlist(tmpData["x1"])) as.numeric(unlist(tmpData["x2"])) as.numeric(unlist(tmpData["x3"]))
-2.3749044 -0.0000625 0.6249899 1.8749937
Degrees of Freedom: 5 Total (i.e. Null); 2 Residual
Null Deviance: 13.33
Residual Deviance: 1.875 AIC: 20.05