Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
^R lm()中的符号_R_Lm - Fatal编程技术网

^R lm()中的符号

^R lm()中的符号,r,lm,R,Lm,在R中运行回归: fit = lm(y ~ x + log(x) + z + log(z) + (z-1)^2, data=data) 我得到了高得离谱的R^2值。我用一个变量替换了(z-1)^2,我称之为q,它被定义为(z-1)^2,我得到了一个更低的R^2值 现在我很清楚,^在lm()中不作为指数,但它做什么呢?我看了看这里,但我没有真正理解。术语(z-1)^2与交互作用(z-1)*(z-1)相同,而不是(z-1)的平方幂。 如果您希望公式按字面意思理解,则应使用I()。 您可以查看?I和

在R中运行回归:

fit = lm(y ~ x + log(x) + z + log(z) + (z-1)^2, data=data)
我得到了高得离谱的R^2值。我用一个变量替换了(z-1)^2,我称之为q,它被定义为(z-1)^2,我得到了一个更低的R^2值

现在我很清楚,^在lm()中不作为指数,但它做什么呢?我看了看这里,但我没有真正理解。

术语
(z-1)^2
与交互作用
(z-1)*(z-1)
相同,而不是(z-1)的平方幂。 如果您希望公式按字面意思理解,则应使用
I()

您可以查看
?I
?公式
以供进一步参考,

建立在上一个答案的基础上,没有
I()
运算符,
lm()
不允许数学运算符进行数学运算。因此,如果没有
I()
,“
-1
”对
lm()
的影响与使用“
+0
”类似,即不使用“
(截取)
”术语。因此,
R平方
值更高(),因为
R平方
计算中的分母变为
(yi^2)
,而不是
(yi-y\u bar)^2
。下面的代码显示了如何lm()compute的异同

# Create sample dataframe
x <- 10 + rnorm(100)
y <- 11 + rnorm(100)
z <- 12 + rnorm(100)
df <- data.frame(x,y,z)

#(2)使用术语“(z-1)^2” 注意:在这里,如果没有“
I”((z-1)^2)
”中的“
I
”,
lm()
函数不会将“
-
^
”视为arthmetic运算符

lm.fit <- lm(y ~ x + log(x) + z + log(z) + (z-1)^2, data=df)
summary(lm.fit)

(4a)不使用
I()
(3)交互项可以分解如下:
 lm.fit <- lm(y ~ x + log(x) + z + log(z) + (z-1) + (z-1) + (z-1):(z-1), data=df)
 summary(lm.fit)

(4d)的工作原理与(4c)相同

(7)在
lm()
函数中使用
I()
它允许它解释数学运算符来进行数学运算。这里,interecept包含在
lm()


lm.fit是的,那么这到底是做什么的呢?我不完全理解交互部分,以及为什么它会使r^2膨胀。谢谢。这对于堆栈交换来说是一个很好的问题:交互在回归中意味着什么。不过,恐怕我不是最有资格回答这个问题的人。很抱歉
lm.fit <- lm(y ~ x + log(x) + z + log(z) + (z-1)*(z-1), data=df)
summary(lm.fit)
 lm.fit <- lm(y ~ x + log(x) + z + log(z) + (z-1) + (z-1) + (z-1):(z-1), data=df)
 summary(lm.fit)
 lm.fit <- lm(y ~ x + log(x) + z + log(z) + z-1 + z-1 + (z-1):(z-1), data=df)
 summary(lm.fit)
 lm.fit <- lm(y ~ x + log(x) + z + log(z) + z:-1, data=df)
 summary(lm.fit)
 lm.fit <- lm(y ~ x + log(x) + z + log(z) + z-1, data=df)
 summary(lm.fit)
 lm.fit <- lm(y ~ x + log(x) + z + log(z) + z + z + z:z, data=df)
 summary(lm.fit)
var_z <- (z-1)^2
lm.fit <- lm(y ~ x + log(x) + z + log(z) + var_z, data=df)
summary(lm.fit)
 lm.fit <- lm(y ~ x + log(x) + z + log(z) + I((z-1)^2), data=df)
 summary(lm.fit)