在回归方程中使用居中变量时,是否必须保持矩阵形式?
我使用scale
函数将几个变量与center=T
和scale=F
居中。然后我将这些变量转换为数字变量,以便我可以出于其他目的操纵数据框。然而,当我运行ANOVA时,我得到的F值略有不同,只是对于该变量,其他都是一样的。
编辑:
这两个有什么区别:
scale(df$A, center=TRUE, scale=FALSE)
它将在data.frame中嵌入矩阵
和
scale(df$A, center=TRUE, scale=FALSE)
df$A = as.numeric(df$A)
使变量A为数值,并删除变量中的矩阵符号?
我正在尝试做的示例,但示例不会导致我遇到的问题:
library(car)
library(MASS)
mtcars$wt_c <- scale(mtcars$wt, center=TRUE, scale=FALSE)
mtcars$gear <- as.factor(mtcars$gear)
mtcars1 <- as.data.frame(mtcars)
# Part 1
rlm.mpg <- rlm(mpg~wt_c+gear+wt_c*gear, data=mtcars1)
anova.mpg <- Anova(rlm.mpg, type="III")
# Part 2
# Make wt_c Numeric
mtcars1$wt_c <- as.numeric(mtcars1$wt_c)
rlm.mpg2 <- rlm(mpg~wt_c+gear+wt_c*gear, mtcars1)
anova.mpg2 <- Anova(rlm.mpg2, type="III")
1条答案
按热度按时间bkhjykvo1#
我会尽量回答你的两个问题
1.在回归方程中使用居中变量时,是否必须保持矩阵形式?
我不知道你是什么意思,但是你可以去掉从
scale()
得到的center和scale属性,如果这是你所指的。你可以在下面的例子中看到,无论它是否是“矩阵形式”,你都会得到相同的答案。1.这两个有什么区别:
它将在data.frame中嵌入矩阵
和
在
scale()
的帮助文件中,我们看到它返回:对于scale.default,表示居中的缩放矩阵。
你得到的是一个包含scaled和center属性的矩阵。
as.numeric(AA)
去掉了这些属性,这是你的第一个和第二个方法的区别。c(AA)
做同样的事情。我猜as.numeric()
要么调用c()
(通过as.double()
),要么使用相同的方法。lm()
似乎返回相同的内容,因此它们看起来是相同的。