0
点赞
收藏
分享

微信扫一扫

R语言与虚拟变量模型

学习笔记
参考书籍:《计量经济学》-李子奈;《统计学:从数据到结论》-吴喜之;

虚拟变量模型

许多变量是可以定量度量的,如需求量、价格等,但也有一些因素无法定量度量,如职业、性别。为了能够在模型中反映这些因素的影响,并提高模型的精度,需要将它们’量化’,这种’量化’通常是通过引入虚拟变量来完成的。根据这些因素的属性类型,构造取’0’或’1’的人工变量。通常称为虚拟变量,记为D。

例如:反映性别的虚拟变量可取为:
R语言与虚拟变量模型_取值
一般地,在虚拟变量的设置中,基础类型和肯定类型取值为1; 比较类型和否定类型取值为0。同时含有一般解释变量与虚拟变量的模型称为虚拟变量模型



  • 加法模型

若我们以员工薪金R语言与虚拟变量模型_R语言_02作为因变量,工龄R语言与虚拟变量模型_虚拟变量模型_03作为一般解释变量,性别R语言与虚拟变量模型_R语言_04作为虚拟变量构造虚拟变量模型,则在模型中可以将虚拟变量R语言与虚拟变量模型_R语言_04以相加的形式引入模型,则该加法模型为:
R语言与虚拟变量模型_2d_06

  • 乘法模型

若在模型中将虚拟变量R语言与虚拟变量模型_R语言_04以相乘的形式引入模型,则该乘法模型为:
R语言与虚拟变量模型_虚拟变量模型_08



  • 混合模型(自己起的名字)

我们也可以将虚拟变量R语言与虚拟变量模型_R语言_04同时以相加和相乘的形式引入模型:

R语言与虚拟变量模型_数据_10

R语言实现

在个例子中,我们模拟一系列数据,再用虚拟变量模型去拟合。



模拟数据:

set.seed(1234)
x <- c(-19:20)
y1 <- 2*x + rnorm(40, 0, 2)
y2 <- -x +rnorm(40, 3, 2)

df1 <- data.frame(x = x, y = y1, c = rep('A', 40))
df2 <- data.frame(x = x, y = y2, c = rep('B', 40))
df <- rbind(df1, df2)

plot(df$x, df$y, col = df$c, main = "散点图", xlab = 'x', ylab = 'y')

图像:
R语言与虚拟变量模型_R语言_11

回归:

lm01 <- lm(y ~ x*c, data = df)
summary(lm01)

控制台输出:

Call:
lm(formula = y ~ x * c, data = df)

Residuals:
Min 1Q Median 3Q Max
-4.3410 -1.2588 -0.3353 0.8964 5.6449

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.81327 0.31223 -2.605 0.0111 *
x 1.97107 0.02702 72.941 < 2e-16 ***
cB 3.63159 0.44156 8.225 4.09e-12 ***
x:cB -2.92208 0.03822 -76.462 < 2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 1.973 on 76 degrees of freedom
Multiple R-squared: 0.9886, Adjusted R-squared: 0.9881
F-statistic: 2194 on 3 and 76 DF, p-value: < 2.2e-16

此时,各个回归系数均通过显著性检验,则被估计的虚拟变量模型为:
R语言与虚拟变量模型_取值_12
注意!此时的虚拟变量R语言与虚拟变量模型_R语言_04取为:
R语言与虚拟变量模型_取值_14

举报

相关推荐

0 条评论