【问题标题】:How to check if an anova test excludes zero values如何检查方差分析是否排除零值
【发布时间】:2014-01-05 13:32:23
【问题描述】:

我想知道是否有一种简单的方法可以检查我的数据中的零值是否被排除在我的方差分析中。

我首先用

将我所有的零值更改为 NA
BFL$logDecomposers[which(BFL$logDecomposers==0)] = NA

我不确定 'na.action=na.exclude' 是否确保我的值被忽略(就像我希望的那样)??

standard<-lm(logDecomposers~1, data=BFL) #null model
ANOVAlnDeco.lm<-lm(logDecomposers~Species_Number,data=BFL,na.action=na.exclude)
anova(standard,ANOVAlnDeco.lm)

P.S.:我刚刚使用 R 有几个星期了,这个网站对我帮助很大:)

【问题讨论】:

  • 如果我对您的理解正确,lm 中的 subset 参数可能与您有关。例如。 subset = logDecomposers != 0

标签: r anova


【解决方案1】:

你没有给出一个可重复的例子,但我会编一个。

set.seed(101)
mydata <- data.frame(x=rnorm(100),y=rlnorm(100))
## add some zeros
mydata$y[1:5] <- 0

正如@Henrik 所指出的,您可以使用subset 参数来排除这些值:

nullmodel <- lm(y~1,data=mydata,subset=y>0)
fullmodel <- update(nullmodel,.~x)

这有点令人困惑,但 na.excludena.omit(默认值)实际上导致 相同 拟合模型 - 不同之处在于您询问时是否包含 NA 值对于残差或预测值。你可以试试看:

mydata2 <- within(mydata,y[y==0] <- NA)
fullmodel2 <- update(fullmodel,subset=TRUE,data=mydata2)

subset=TRUE 关闭之前的 subset 参数,通过指定应包含所有数据)。

您可以比较拟合(系数等)。一种快捷方式是使用nobs 方法,该方法计算模型中使用的观察次数:

nrow(mydata)  ## 100
nobs(nullmodel)  ## 95
nobs(fullmodel)  ## 95
nobs(fullmodel2)  ## 95
nobs(update(fullmodel,subset=TRUE))  ## 100

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-11
    • 2011-04-13
    • 2014-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多