我有以下普通最小二乘模型(OLS)交互模型,我想为三重交互提取离散边际效应(即,在离散的速度和外国制造汽车类别中重量的平均边际效应)weight* speed*foreign
:
mpg ~ cost + foreign + weight + speed + foreign + cost*foreign + weight*speed + weight*speed*foreign
可以看出,模型中有三个交互。变量指定如下:
cost
是一个以市场上所有汽车的平均值为中心的连续变量,负值表示低于平均值的程度,正值表示更昂贵的汽车。
foreign
是一个二进制变量,1 国外/0 国内
weight
是一个连续变量
speed
是一个因子变量,表示汽车在三个类别中行驶的速度,低-中-高。低是基线类别(省略类别)。
感兴趣的数量是模型中的三重交互:weight*speed*foreign
。我使用以下代码来估计模型并提取相关系数和方差协方差矩阵。我想使用 Berry 等人的以下程序。(2016 年)文章:“改进假设相互作用的理论测试”,使用以下图表:边际效应公式
我使用以下代码提取了导出边际效应和方差-协方差矩阵所需的相关系数:
m <- lm(mpg ~ cost + foreign + weight + speed + foreign + cost*foreign + weight*speed + weight*speed*foreign, data=x)
beta.hat <- coef(m)
cov <- vcov(m)
最终,我想要一个包含&weight
的不同离散类别的平均边际效应的数据框,最终目标是显示离散边际效应的点图。根据图像,我知道如何推导因子变量 ( ) 的两个未省略类别的边际效应。例如,我认为这对于“高速”是正确的:speed
foreign
speed
z0 <- seq(0,1,1) #This captures the two-categories of the Z conditioning variable of foreign
dy.dx <- beta.hat["weight"] + beta.hat["weight*speed=High"] + beta.hat["weight*foreign*speed=High"]*z0 # Discrete Marginal Effect
se.dy.dx <- sqrt(cov["weight", "weight"] + z0^2*cov["weight * speed=High", "weight * speed=High"] + z0^2*cov["foreign * weight", "foreign * weight"] + z0^2*z0^2*cov["foreign * weight * speed=High", "foreign * weight * speed=High"] + 2*z0*cov["weight","weight * speed=High"] + 2*z0*cov["weight","foreign * weight"] + 2*z0*z0*cov["weight","foreign * weight * speed=High"] + 2*z0*z0*cov["weight * speed=High","foreign * weight"] + 2*z0*z0^2*cov["weight * speed=High","foreign * weight * speed=High"] + 2*z0*z0^2*cov["foreign * weight","foreign * weight * speed=High"]) #Compute Standard Errors for MEs of foreign and domestic cars
我的主要问题是我如何推导出被忽略的速度类别的重量的平均边际效应?我知道这是由weight*speed
构成项捕获的,但是在计算估计值的标准误差时,我是否需要考虑三重交互作用dy.dx
?考虑到 Berry 等人在第 3 行的表格,这是一个适当的解决方案吗?