2016-08-21 48 views
3

是否有人知道sjp.Int是否適用於強大的迴歸?基本的繪圖工作,但置信區間不起作用? 錯誤=sjPlot穩健迴歸?

Error in seq.default(from = best$lmin, to = best$lmax, by = best$lstep) : 
'from' must be of length 1 
In addition: Warning messages: 
    1: In min(intdf$conf.low, na.rm = T) : 
    no non-missing arguments to min; returning Inf 
    2: In max(intdf$conf.high, na.rm = T) : 
    no non-missing arguments to max; returning -Inf 

命令我使用的是:

fname = rlm(Y ~ X1+X2+X3+X4*X5, data=mydata) 
sjp.int(fname, type="eff", show.ci=TRUE) 

用於type = 「電導率」,置信區間做工作

回答

1

我認爲這是不可能的。 sjp.int(type="eff")使用effects::allEffects()來計算CI等,但該函數不計算rlm.model的CI(返回NAs),所以sjp.int(rlm.model, type="eff", show.ci=TRUE)不起作用。 (參考代碼; summary(effects::allEffects(fname, KR=F)))。

將帖子

(sjp.int(fname, type="eff"))返回data.list,它具有大約se信息。但我不認爲這個價值是可信的。如果你想畫一個像sjp.int這樣的圖表,我認爲你最好使用predict(rlm.model),因爲predict有一個處理rlm.model的方法。

我的例子;

library(ggplot2) 

df <- with(iris, data.frame(Y = Petal.Length,  # example data 
          X1 = Sepal.Length, X2 = Sepal.Width, X3 = Petal.Width)) 

fname <- rlm(Y ~ X1 + X2 * X3, df) 
pred.df <- with(df, data.frame(X1 = mean(X1), 
           X2 = c(min(X2), max(X2)), 
           X3 = rep(seq(min(X3), max(X3), 0.1), each=2))) 

pred.df <- cbind(pred.df, predict(fname, pred.df, interval="confidence")) 
pred.df$X2 <- as.factor(pred.df$X2) 

ggplot(pred.df, aes(x=X3, y=fit, group=X2, colour=X2, fill=X2)) + geom_line() + 
    geom_ribbon(aes(ymin = lwr, ymax = upr, colour=NULL), alpha=0.2) 

enter image description here

+0

Aamzing!非常感謝!它的工作原理:) – user6121484

+0

我已經檢查並比較了'predict.rlm()'和'effects :: allEffects()'的結果,並且您提到的效果包中返回的標準錯誤確實與預測函數略有不同。預測函數的置信區間不是效應包的標準誤差的1.96倍,而是〜1.79倍......(因此,rlm估計的標準誤差應該與效應返回的標準誤差略有不同 - 包) – Daniel