原则上,您可以仅使用因子作为解释变量进行回归。考虑这个例子(在 R 中):
df = data.frame(c(100,200,500,100,300), c(1,0,1,0,1), c("True", "False", "False", "False", "True"), c("A", "B", "B", "A", "A"))
colnames(df) = c("sales", "v1", "v2", "v3")
head(df)
reg = lm(sales~as.factor(v1)+as.factor(v2)+as.factor(v3), data=df)
summary(reg)
数据如下:
sales v1 v2 v3
1 100 1 True A
2 200 0 False B
3 500 1 False B
4 100 0 False A
5 300 1 True A
结果将是:
Call:
lm(formula = sales ~ as.factor(v1) + as.factor(v2) + as.factor(v3),
data = df)
Residuals:
1 2 3 4 5
-1.000e+02 2.842e-14 -2.132e-14 -7.105e-15 1.000e+02
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 100.0 141.4 0.707 0.608
as.factor(v1)1 300.0 200.0 1.500 0.374
as.factor(v2)True -200.0 264.6 -0.756 0.588
as.factor(v3)B 100.0 200.0 0.500 0.705
Residual standard error: 141.4 on 1 degrees of freedom
Multiple R-squared: 0.8214, Adjusted R-squared: 0.2857
F-statistic: 1.533 on 3 and 1 DF, p-value: 0.5216
所以在这里你测量与截距的差异,以防万一v1=1或者v2=True或者v3=B.
具有很多(!)因素的模型已被用于预测,但它们通常是高维度的(列多于行)。在这种情况下,您可以使用Lasso来“缩小”对预测“无用”的参数(因此每个级别为一列的因子级别)。
当您有一个连续的左侧变量(回归)或当您有一个离散变量(Logit、Multinominal Logit)时,您可以这样做。
有关更多背景信息(包括 R 或Python示例) ,请参阅统计学习简介(第 6 章)。