R中的P值问题

3

我有一个关于p值的问题。我一直在使用R中的以下函数比较不同的线性模型,以确定一个模型是否比另一个更好。

 anova(model1,model2)

不幸的是,有时它无法计算F值或p值。这里是一个未给出p值的ANOVA摘要示例。

 Analysis of Variance Table

 Model 1: Influence ~ SortedSums[, Combos2[1, A]] + SortedSums[, Combos2[2,A]]
 Model 2: Influence ~ SortedSums[, B]
    Res.Df   RSS Df Sum of Sq F Pr(>F)
 1    127 3090.9                      
 2    128 2655.2 -1    435.74 

为了对称起见,这里也有一个ANOVA总结,它确实得出了p值。

 Analysis of Variance Table

 Model 1: Influence ~ SortedSums[, Combos2[1, A]] + SortedSums[, Combos2[2,A]]
 Model 2: Influence ~ SortedSums[, B]
    Res.Df    RSS Df Sum of Sq      F Pr(>F)
  1    127 3090.9                           
  2    128 3157.6 -1   -66.652 2.7386 0.1004

你知道为什么会出现这个问题吗?

4
请问您自己,如果没有您的代码,是否应该能够回答这个问题。如果答案是“不行”(我认为目前应该是这样),那么请提供足够的信息以达到“可以”。 - IRTFM
你没有给我们足够的信息。尽管如此,这里有一些随机的想法:(1)在anova调用中首先列出更简单的模型,(2)在模型表达式之外对数据进行子集处理;那只会让事情变得混乱和凌乱,(3)检查这个问题(来自?anova):“仅当两个或多个模型适合于相同的数据集时,它们之间的比较才是有效的。如果存在缺失值并且使用R的默认na.action = na.omit,则可能会出现问题。” - bdemarest
2个回答

11

并不是所有问题都需要代码示例。作为新手,你不应该被嘲讽,我很抱歉有人这样做了。以下是答案:

这两个模型之间的差异并不显著。

以下是你可以采取的措施:

  • 检查一个模型对象的术语是否是另一个模型对象的超集。否则,默认的ANOVA测试就无效了(你可以使用AIC比较这些非嵌套模型,但这属于另一个问题)。我真的很想看到一对嵌套模型,它们成功地变得如此不显著,但是再次强调,回答这个问题并不需要这个信息。
  • 如果你已经检查过,并且这些模型是嵌套的,并且这是你手动进行的分析,请在报告中写上p=1.0,然后结束分析。
  • 如果这些模型是嵌套的,并且上述方法感觉像舞弊,那么以下是更麻烦的方法。你实际上正在询问anova这个函数,它会告诉你它们之间的一个变量是否对拟合产生了显著贡献。使用“较大”的模型并执行summary(BAR)。与BAR中存在但在FOO中缺失的变量对应的p值就是你需要的p值!而且它可能等于1。t统计量的平方是F值。
  • 如果这些模型是嵌套的,并且这是你以编程方式进行的分析,如果没有p值会破坏脚本中的其他内容,请执行anova(FOO,BAR)[,5:6]以获取NA而不是空白...但是如果你已经以编程方式进行了分析,你应该已经尝试过这个方法。

祝你好运!


0

最近,我在比较一个带有一个拐点的分段线性模型(使用分段包)和一个没有拐点的线性模型时,也遇到了这个问题。简单的线性模型是一个嵌套模型,因为拐点之前的部分可以跨越整个数据集。

然而,我使用宽松的收敛容限来调用分段拟合(出于性能原因),报告了一个拟合,其中更复杂的分段模型的残差和略大于简单线性模型。当然,更复杂的嵌套模型的最佳拟合不应该具有更大的残差方差,而且ANOVA函数报告了NA的p值。

在这种情况下,显然,更复杂的模型并没有显著地更好,p > alpha,例如p = 1。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接