2014-12-19 3 views
11

टी एल में असंगत आयाम त्रुटि vglm समारोह; डॉआर: VGAM


मैं आर में VGAM पैकेज के साथ Tobit प्रतिगमन चला रहा हूँ - यहाँ एक खिलौना डाटासेट कि है लगातार मुझे एक त्रुटि दे रही है कि मैं निदान करने के लिए नहीं कर पाए हैं:

library(data.table) 
library(VGAM) 

> sessionInfo()$otherPkgs 
$VGAM 
Package: VGAM 
Version: 0.9-7 
Date: 2015-03-06 
... <ommitted> ... 

reg_data <- structure(list(S = c(1.83271488441825, 0.75411550370994, 0.904938604451928, 
           0.75411550370994, 0.75411550370994), H = c(0.6429, 0.7788, 
                      0.6292, 0.8892, 0.2035), W= c(1.52497, 1.1391, 1.59722, 
                              1.8406, 1.01865)), .Names = c("S", "H", "W"), class = c("data.table", 
                                            "data.frame"), row.names = c(NA, -5L)) 

minS <- 0.75411550370994 
maxS <- 1.83271488441825 

m <- vglm(S ~ H, tobit(Upper = maxS, Lower = minS), weights = W, data = reg_data) 
Error in lm.wfit(x = cbind(x[!use.i11, ]), y = y[!use.i11, ii], w = w[!use.i11, : 
    incompatible dimensions 

प्रयास का निदान करने के

01,235,

ट्रैस बैक के साथ:

> traceback() 
6: stop("incompatible dimensions") 
5: lm.wfit(x = cbind(x[!use.i11, ]), y = y[!use.i11, ii], w = w[!use.i11, 
     ii]) 
4: eval(expr, envir, enclos) 
3: eval(slot(family, "initialize")) 
2: vglm.fitter(x = x, y = y, w = w, offset = offset, Xm2 = Xm2, 
     Ym2 = Ym2, etastart = etastart, mustart = mustart, coefstart = coefstart, 
     family = family, control = control, constraints = constraints, 
     criterion = control$criterion, extra = extra, qr.arg = qr.arg, 
     Terms = mt, function.name = function.name, ...) 
1: vglm(y ~ x, tobit(Upper = maxy, Lower = miny), weights = w, data = X) 

मैं lm.wfit के लिए स्रोत कोड देखी और त्रुटि के स्रोत को खोजने की है: vglm के लिए स्रोत कोड में निम्नलिखित

function (x, y, w, offset = NULL, method = "qr", tol = 1e-07, 
    singular.ok = TRUE, ...) 
{ 
    <ommitted...> 
    if (NROW(y) != n | length(w) != n) 
     stop("incompatible dimensions") 
    <ommitted...> 
    } 

मैं पाया है:

vglm.fitter <- get(method) 
    fit <- vglm.fitter(x = x, y = y, w = w, offset = offset, 
     Xm2 = Xm2, Ym2 = Ym2, etastart = etastart, mustart = mustart, 
     coefstart = coefstart, family = family, control = control, 
     constraints = constraints, criterion = control$criterion, 
     extra = extra, qr.arg = qr.arg, Terms = mt, function.name = function.name, 
     ...) 

जहां विधि vglm.fit पर डिफ़ॉल्ट है।

मैं अभी भी यह पता लगाने में सक्षम नहीं हूं कि बहिष्करण मानदंड use.i11 बनाया गया है, यह क्या कर रहा है और इसका वजन वजन, प्रतिद्वंद्वी और regressand के बीच विरोधाभासी आयामों में क्यों होता है।

मैं देखा है कि minS और maxS दस या उससे कम एक सफल समय में स्थानों परिणाम के लिए गोलाई, लेकिन इस वजह maxS बढ़ जाती है तो 1 अवलोकन अब सही सेंसर है और minS तो 2, 4 वृद्धि हुई है और कर रहा है 5 वें अवलोकन अब सेंसर नहीं छोड़े गए हैं। दोनों अवलोकन के उपचार को अधिकतम संभावना कार्य में बदलते हैं, इसलिए मुझे संदेह है कि मैं झूठे परिणामों के साथ प्रतिगमन को दूषित कर दूंगा।

क्या कोई कृपया निदान करने में सहायता कर सकता है कि इस प्रकार की त्रुटि क्यों होती है?

+0

क्या आपने इस 'minS = 0.75 जैसे मानों को गोल किया था; Maxs = 1.83'? –

उत्तर

5

मुझे पैकेज के डेवलपर से शब्द प्राप्त हुआ कि यह वास्तव में एक बग था और इसे पूर्व-रिलीज पैकेज here में तय किया गया है, जिसे संभावित रूप से अगले पुनरावृत्ति में सीआरएएन में अपग्रेड किया जाएगा - या जब उसकी पुस्तक का विमोचन किया।