我已经读过有关使用chisq.test
从$p.value
和使用类似调用从二项式检验中获取p值的知识。但是,这对于independence_test
包中的coin
无效。
> i1 = independence_test(Response ~ Type)
> i1
Asymptotic General Independence Test
data: Response by Type (A, B, C)
maxT = 0.95091, p-value = 0.9265
alternative hypothesis: two.sided
> i1$p.value
Error in i1$p.value : $ operator not defined for this S4 class
> names(i1)
NULL
也无法为其编制索引:
> i1[1]
Error in i1[1] : object of type 'S4' is not subsettable
> i1[[1]]
Error in i1[[1]] : this S4 class is not subsettable
如何获取p值?
答案 0 :(得分:5)
看来coin
提供了一个特殊的功能来从测试功能返回的对象中检索p值:
> result <- independence_test(c(1,2,3) ~ c(4,5,6))
> pvalue(result)
[1] 0.1572992
>
答案 1 :(得分:2)
K。答:布尔给出了正确的答案。这是我正在写作的过程;希望它会添加一些有用的信息:
打印i1
时,它会打印一个p值。因此,打印方法必须知道如何找到它。
这是一个S4函数,因此它使用show()
进行打印。要查看您show(i1)
时发生的情况,请使用
trace(show, browser, signature = class(i1))
然后打印i1
,您会看到类似以下内容:
debug: {
distname <- switch(class(object@distribution), AsymptNullDistribution = "Asymptotic",
ApproxNullDistribution = "Approximative", ExactNullDistribution = "Exact")
RET <- list(statistic = setNames(object@statistic@teststatistic,
nm = "chi-squared"), p.value = object@distribution@pvalue(object@statistic@teststatistic),
data.name = varnames(object@statistic), method = paste(distname,
object@method))
if (length(object@distribution@parameters) == 1 && names(object@distribution@parameters) ==
"df")
RET$parameter <- setNames(object@distribution@parameters[[1]],
nm = "df")
if (length(object@estimates) > 0)
RET <- c(RET, object@estimates)
class(RET) <- "htest"
print(RET)
invisible(RET)
}
由此您可以看到另一种获取p值的方法,使用
object@distribution@pvalue(object@statistic@teststatistic)
(除了将object
替换为i1
)。