R AICc如何处理线性模型中的标称变量与数值变量?

R AICc如何处理线性模型中的标称变量与数值变量?,r,statistics,linear-regression,R,Statistics,Linear Regression,今天,我有一个关于线性模型中数值变量和标称变量处理的问题,我的目的是用二阶Akaike信息标准(AICc,package:'MuMIn')对小n进行比较 以下是一些组成数据和准备代码: library(MASS) library(MuMIn) set.seed(123) treatments <- c(rep(paste0('t', 1:6), each = 3)) # nominal variable x <- abs(rnorm(mean = 9500,n = 18,sd =

今天,我有一个关于线性模型中数值变量和标称变量处理的问题,我的目的是用二阶Akaike信息标准(
AICc
,package:'MuMIn')对小n进行比较

以下是一些组成数据和准备代码:

library(MASS)
library(MuMIn)

set.seed(123)
treatments <- c(rep(paste0('t', 1:6), each = 3)) # nominal variable
x <- abs(rnorm(mean = 9500,n = 18,sd = 20000)) # observation
var3 <- runif(n=18, min = 100, max=1000)
var2 <- rnorm(n = 18, mean = 50)
var1 <- c(runif(n=3, min = 80, max=100), # numerical dummy variable for t1
      runif(n=3, min = 65, max=85),  # t2
      runif(n=3, min = 75, max=90), # t3
      runif(n=3, min = 15, max=50), # t4
      runif(n=3, min = 0, max=20), # t5
      runif(n=3, min = 30, max=60)) #t6
boxplot(var1~treatments) # well-separated for each treatment: use as dummy
dat <- data.frame(x, var1, var2, var3, treatments)
库(MASS)
图书馆(MuMIn)
种子集(123)

治疗
lm
在内部进行虚拟编码。如果手动执行,则会得到完全相同的结果:

fit1 <- lm(Sepal.Length ~ Species, iris)
fit2 <- lm(Sepal.Length ~ model.matrix(fit1), iris)
AIC(fit1, fit2)
#  df     AIC
#fit1  4 231.452
#fit2  4 231.452

fit1这很快,给出了一个更好(更短)的例子!您手头是否有任何可以引用的资料来源?
help(“lm”)
references Chambers(1992),但我无法立即获得副本。我未选中,原因如下:“此外,AICc不能用于比较数据在一种情况下被解组(模型U)和分组(例如,分组到直方图类)的模型。”在另一个(模型G)中(Burnham和Anderson,2003:模型选择和多模态推理),我只是不明白,这是否有区别?有人可能会说观察结果是分组的(在治疗中),但如果“lm”以前进行过虚拟编码,我不知道。当你的问题是关于因子的虚拟编码时,为什么突然提到binning?这些是相互正交的问题。
AICc.nominals <- AICc(lm.nominal.1.log, lm.nominal.2.log, lm.nominal.3.log)
AICc.nominals

AICc.numerics <- AICc(lm.numeric.1.log, lm.numeric.2.log, lm.numeric.3.log)
AICc.numerics

AICc.all <- AICc(lm.nominal.1.log, lm.nominal.2.log, lm.nominal.3.log,
             lm.numeric.1.log, lm.numeric.2.log, lm.numeric.3.log)    
# Now further model / likelihood analysis:
AICc.all$Deltai <- AICc.all$AICc - min(AICc.all$AICc)
AICc.all$Weights <- Weights(AICc(lm.nominal.1.log, lm.nominal.2.log, 
lm.nominal.3.log,lm.numeric.1.log, lm.numeric.2.log, lm.numeric.3.log)) 
fit1 <- lm(Sepal.Length ~ Species, iris)
fit2 <- lm(Sepal.Length ~ model.matrix(fit1), iris)
AIC(fit1, fit2)
#  df     AIC
#fit1  4 231.452
#fit2  4 231.452