R中add1()命令的作用域

R中add1()命令的作用域,r,linear-regression,anova,R,Linear Regression,Anova,我不知道如何使用add1命令。假设我有一个模型 y=b0+b1*x1 我想知道增加更多的自变量是否更合适。现在我将测试所有模型 y=b0+b1*x1+b2*x2 使用不同的x2(我的不同自变量)。 add1命令需要一个“范围”。我不确定那是什么。 我找不到如何使用add1命令。如果我这样做: add1(fittedmodel) 我得到一个错误,所以我想我需要指定手动使用哪个变量。 这很好,这正是我想要的,但我不确定是否是这样。如果我这样做 add1(fittedmodel, scope=x

我不知道如何使用add1命令。假设我有一个模型

y=b0+b1*x1
我想知道增加更多的自变量是否更合适。现在我将测试所有模型

y=b0+b1*x1+b2*x2
使用不同的x2(我的不同自变量)。 add1命令需要一个“范围”。我不确定那是什么。 我找不到如何使用add1命令。如果我这样做:

add1(fittedmodel)
我得到一个错误,所以我想我需要指定手动使用哪个变量。 这很好,这正是我想要的,但我不确定是否是这样。如果我这样做

add1(fittedmodel, scope=x1+x2, test="F")
插入x2的特定变量, 我得到以下输出:

单项加法

型号:

sl ~ le
       Df  Sum of Sq     RSS     AIC F value Pr(>F)
<none>               0.51211 -523.44               
ky      1 0.00097796 0.51113 -521.63  0.1856 0.6676
sl~le
平方RSS AIC F值Pr(>F)的Df和
0.51211 -523.44               
ky 1 0.00097796 0.51113-521.63 0.1856 0.6676
我不确定这是否是我想要的。它描述的模型不是我想要的(
sl~le+ky
),但这可能就是它开始时的模型? 那么我不知道
是什么意思。 这是否意味着将模型
sl~le
与模型
sl~le
进行比较的F-Test值为0.1856?还是我对输出的解释有误

那么,即使这是正确的,如果我确实有一个交互,我如何为一个模型‘sl~le+ky+le:ky’做到这一点?
我似乎不理解add1()命令中的scope参数,但我需要它,因为没有它,add1()就不能工作

以下是如何使用范围和解释
add1
结果的示例

所有这些都可以通过阅读
?add1
并查看示例轻松找到

# create some data
set.seed(1)
DF <- data.frame(x1 = sample(letters[1:2], 50, replace = TRUE), x2 = sample(letters[3:4], 
    50, replace = TRUE))

library(plyr)

DF <- ddply(DF, .(x1, x2), mutate, y = sample(1:10, 1))
DF <- ddply(DF, .(x1, x2), mutate, y = y + rnorm(length(y), 0, 2))

# a simple model with just y~x1
simple <- lm(y ~ x1, data = DF)


# add a single term

add1(simple, scope = ~x1 + x2, test = "F")

## Single term additions
## 
## Model:
## y ~ x1
##        Df Sum of Sq RSS AIC F value Pr(>F)   
## <none>              565 125                  
## x2      1      93.9 471 118    9.37 0.0036 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

在这种情况下,您可以使用
drop1()
函数<代码>drop1(fittedmodel)在我们进行反向选择时使用。它从完整模型开始,并在删除一个预测值时为每种情况返回p值。因此,如果您只有两个预测值要比较,
drop1()
函数会做得更好。

如果您制作了一个可复制的示例,这一点会更清楚。
simple_2 <- lm(y ~ x1 + x2, data = DF)
add1(simple_2, scope = ~x1 * x2, test = "F")

## Single term additions
## 
## Model:
## y ~ x1 + x2
##        Df Sum of Sq RSS   AIC F value  Pr(>F)    
## <none>              471 118.2                    
## x1:x2   1       289 182  72.6      73 4.7e-11 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1