gpt4 book ai didi

R - 包含大量虚拟变量的模型

转载 作者:行者123 更新时间:2023-12-04 22:33:44 24 4
gpt4 key购买 nike

如果我在数据集中有一列有多个变量,我将如何创建这些虚拟变量。

例子:
假设我有一个名为 color 的列,它有:Red、Green、Yellow、Blue、Pink 和 Gray 作为汽车颜色的选项。

将这些变量转化为因子的最佳方法是什么?无需手动创建一堆虚拟变量?

编辑:
所以我做了格雷格推荐的,这就是我所拥有的。我想知道 NA 输出,但不确定它为什么在那里。

 > data$Trim<-factor(data$Trim)
> data$Model<-factor(data$Model)
> data$Type<-factor(data$Type)
> data=cbind(Price,Mileage,Buick,Cadillac,Chevrolet,Pontiac,SAAB,Saturn,Model,Trim,Type,Cylinder,Liter,Doors,Cruise,Sound,Leather)
> fit <- lm( Price ~ Mileage+Buick+Cadillac+Chevrolet+Pontiac+SAAB+Saturn+Model+Trim+Type+Cylinder+Liter+Doors+Cruise+Sound+Leather, x=TRUE )
> summary(fit)

然后我收到一条消息“系数:(21 未定义,因为奇点)”并且对于某些变量,输出为 NA。

最佳答案

R 会自动为你创建虚拟变量,这是一个基本的例子:

> mycars <- mtcars
> mycars$cyl <- factor(mycars$cyl)
> fit <- lm( mpg ~ wt+cyl, data=mycars, x=TRUE )
> summary(fit)

Call:
lm(formula = mpg ~ wt + cyl, data = mycars, x = TRUE)

Residuals:
Min 1Q Median 3Q Max
-4.5890 -1.2357 -0.5159 1.3845 5.7915

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 33.9908 1.8878 18.006 < 2e-16 ***
wt -3.2056 0.7539 -4.252 0.000213 ***
cyl6 -4.2556 1.3861 -3.070 0.004718 **
cyl8 -6.0709 1.6523 -3.674 0.000999 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 2.557 on 28 degrees of freedom
Multiple R-squared: 0.8374, Adjusted R-squared: 0.82
F-statistic: 48.08 on 3 and 28 DF, p-value: 3.594e-11

> head(fit$x)
(Intercept) wt cyl6 cyl8
Mazda RX4 1 2.620 1 0
Mazda RX4 Wag 1 2.875 1 0
Datsun 710 1 2.320 0 0
Hornet 4 Drive 1 3.215 1 0
Hornet Sportabout 1 3.440 0 1
Valiant 1 3.460 1 0
>
x=TRUE 调用中的 lm 告诉它返回实际使用的 x 矩阵,其中包括虚拟变量。如果您不想查看创建的虚拟变量,则可以将其省略。如果要设置虚拟变量的创建方式,请参阅 ?contrasts 以获取更多详细信息。

关于R - 包含大量虚拟变量的模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13460598/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com