【发布时间】:2022-01-11 23:44:21
【问题描述】:
我正在尝试编写与 var.test() 非常相似的自己的函数。我希望我的输出看起来类似于 var.test() 的输出,并且似乎 var.test() 将输出列表分配给类 htest。我想做类似的事情,但在输出列表中添加一个附加组件,即级别 alpha。
testvar <- function(x1, x2, level = 0.95) {
df1 <- length(x1) - 1
df2 <- length(x2) - 1
alpha = 1 - level
s1 <- var(x1)
s2 <- var(x2)
dataname <- paste(deparse(substitute(x1)), "and", deparse(substitute(x2)))
if(s1 > s2) {
ts = s1/s2
pval = 2 * (1 - pf(ts, df1, df2))
conf = c(s1/(s2*qf(1-alpha/2, df1, df2)), s1/(s2*qf(alpha/2, df1,df2)))
}
else if(s2 >= s1) {
ts = s2/s1
pval = 2 * (1 - pf(ts, df2, df1))
conf = c(s2/(s1*qf(1-alpha/2, df2, df1)), s2/(s1*qf(alpha/2, df2,df1)))
}
names(ts) = "F"
attr(conf, "conf.level") <- level
output <- list(statistic = ts, p.value = pval, conf.int = conf, data.name = dataname)
attr(output, "class") <- "htest"
return(output)
}
如果我尝试将变量 alpha 添加到我的输出中,则函数返回的输出没有任何差异。所以,例如
output <- list(statistic = ts, p.value = pval, conf.int = conf, data.name = dataname, level)
【问题讨论】:
标签: r c function hypothesis-test