R中的列表字段不匹配

时间:2017-09-27 21:19:59

标签: r

我不是一个伟大的R专家,但最近由于大学原因我不得不使用“ltm”包,我对某些特定功能没有问题,但是当我称之为应该返回一个列表然后我得到一个这些值与之前显示的不同。 如果我向你展示它会更简单。

install.packages("ltm")
library("ltm")
x <- rasch(LSAT)
coeff <- x$coefficients

x的内容

Call:
rasch(data = LSAT)

Coefficients:
Dffclt.Item 1  Dffclt.Item 2  Dffclt.Item 3  Dffclt.Item 4  Dffclt.Item 5  
   -3.615         -1.322         -0.318         -1.730         -2.780  
   Dscrmn  
    0.755  

Log.Lik: -2466.938

coeff的内容:

           beta.i   beta
Item 1  2.7300133   0.7551347
Item 2  0.9986059   0.7551347
Item 3  0.2398539   0.7551347
Item 4  1.3064513   0.7551347
Item 5  2.0994042   0.7551347

第二列“beta”是正确的,它只是重复表格长度的Dscrmn值,但为什么“beta.i”列中的元素与“Dffclt.Item 1 Dffclt.Item 2”不同Dffclt.Item 3 Dffclt.Item 4 Dffclt.Item 5“

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

根据文档,

coef(x)是类“rasch”对象的正确接口。您可以阅读函数coef.rasch,了解它与$coef之间的内部组件之间的区别:

> ltm::coef.rasch
function (object, prob = FALSE, order = FALSE, ...) 
{
    if (!inherits(object, "rasch")) 
        stop("Use only with 'rasch' objects.\n")
    cof <- if (object$IRT.param) {
        coefs <- IRT.parm(object)$parms
        p <- length(coefs)
        matrix(c(coefs[1:(p - 1)], rep(coefs[p], p - 1)), ncol = 2, 
            dimnames = list(colnames(object$X), c("Dffclt", "Dscrmn")))
    }
    else {
        object$coef
    }
    if (prob) 
        cof <- cbind(cof, `P(x=1|z=0)` = plogis(object$coef[, 
            1]))
    if (order) 
        cof <- cof[order(cof[, 1]), ]
    cof
}
<environment: namespace:ltm>

因此,切换键是否使用IRT参数(默认为TRUE)。关注文档...

  

如果IRT.param = TRUE,则参数估计值在通常的IRT参数化下报告,即

     

logit(π_i)= beta(z - beta_i ^ *)