检验分位数回归模型中的系数是否显着不同
test whether coefficients in quantile regression model differ from each other significantly
我有一个分位数回归模型,我对估计 .25、.5 和 .875 分位数的影响感兴趣。我的模型中的系数在某种程度上与我模型背后的实质性理论相一致。
下一步是测试一个分位数的特定解释变量的系数是否与另一个分位数的估计系数有显着差异。我该如何测试?
此外,我还想测试给定分位数的该变量的系数是否与 OLS 模型中的估计值有显着差异。我该怎么做?
我对任何答案都感兴趣,尽管我更喜欢涉及 R 的答案。
这是一些测试代码:(注意:这不是我的实际模型或数据,而是一个简单的示例,因为数据在 R 安装中可用)
data(airquality)
library(quantreg)
summary(rq(Ozone ~ Solar.R + Wind + Temp, tau = c(.25, .5, .75), data = airquality, method = "br"), se = "nid")
tau: [1] 0.25
Coefficients:
Value Std. Error t value Pr(>|t|)
(Intercept) -69.92874 12.18362 -5.73957 0.00000
Solar.R 0.06220 0.00917 6.77995 0.00000
Wind -2.63528 0.59364 -4.43918 0.00002
Temp 1.43521 0.14363 9.99260 0.00000
Call: rq(formula = Ozone ~ Solar.R + Wind + Temp, tau = c(0.25, 0.5,
0.75), data = airquality, method = "br")
tau: [1] 0.5
Coefficients:
Value Std. Error t value Pr(>|t|)
(Intercept) -75.60305 23.27658 -3.24803 0.00155
Solar.R 0.03354 0.02301 1.45806 0.14775
Wind -3.08913 0.68670 -4.49853 0.00002
Temp 1.78244 0.26067 6.83793 0.00000
Call: rq(formula = Ozone ~ Solar.R + Wind + Temp, tau = c(0.25, 0.5,
0.75), data = airquality, method = "br")
tau: [1] 0.75
Coefficients:
Value Std. Error t value Pr(>|t|)
(Intercept) -91.56585 41.86552 -2.18714 0.03091
Solar.R 0.03945 0.04217 0.93556 0.35161
Wind -2.95452 1.17821 -2.50764 0.01366
Temp 2.11604 0.45693 4.63103 0.00001
和 OLS 模型:
summary(lm(Ozone ~ Solar.R + Wind + Temp, data = airquality))
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -64.34208 23.05472 -2.791 0.00623 **
Solar.R 0.05982 0.02319 2.580 0.01124 *
Wind -3.33359 0.65441 -5.094 1.52e-06 ***
Temp 1.65209 0.25353 6.516 2.42e-09 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 21.18 on 107 degrees of freedom
(42 observations deleted due to missingness)
Multiple R-squared: 0.6059, Adjusted R-squared: 0.5948
F-statistic: 54.83 on 3 and 107 DF, p-value: < 2.2e-16
(不用担心上面估计的实际模型,这只是为了说明目的)
例如,现在如何测试 Temp 的系数在分位数 .25 和 .75 之间是否在统计上有显着差异(在某些给定水平),以及 Temp 的 .25 分位数处的系数是否与 Temp 的 OLS 系数有显着差异?
欢迎使用 R 或侧重于统计方法的答案。
对于分位数回归,我通常更喜欢目视检查。
data(airquality)
library(quantreg)
q <- rq(Ozone ~ Solar.R + Wind + Temp, tau = 1:9/10, data = airquality)
plot(summary(q, se = "nid"), level = 0.95)
红色虚线是线性回归的 95% 置信区间,灰色阴影区域是每个 quantreg 估计值的 95% 置信区间。
在下图中,我们可以看到 quantreg 估计值在线性回归估计值的范围内,这表明可能没有统计显着差异。
您可以使用方差分析进一步检验系数的差异是否具有统计显着性。有关详细信息,请参阅 ?anova.rq
。
q50 <- rq(Ozone ~ Solar.R + Wind + Temp, tau = 0.5, data = airquality)
q90 <- rq(Ozone ~ Solar.R + Wind + Temp, tau = 0.9, data = airquality)
anova(q50, q90)
我有一个分位数回归模型,我对估计 .25、.5 和 .875 分位数的影响感兴趣。我的模型中的系数在某种程度上与我模型背后的实质性理论相一致。
下一步是测试一个分位数的特定解释变量的系数是否与另一个分位数的估计系数有显着差异。我该如何测试? 此外,我还想测试给定分位数的该变量的系数是否与 OLS 模型中的估计值有显着差异。我该怎么做?
我对任何答案都感兴趣,尽管我更喜欢涉及 R 的答案。 这是一些测试代码:(注意:这不是我的实际模型或数据,而是一个简单的示例,因为数据在 R 安装中可用)
data(airquality)
library(quantreg)
summary(rq(Ozone ~ Solar.R + Wind + Temp, tau = c(.25, .5, .75), data = airquality, method = "br"), se = "nid")
tau: [1] 0.25
Coefficients:
Value Std. Error t value Pr(>|t|)
(Intercept) -69.92874 12.18362 -5.73957 0.00000
Solar.R 0.06220 0.00917 6.77995 0.00000
Wind -2.63528 0.59364 -4.43918 0.00002
Temp 1.43521 0.14363 9.99260 0.00000
Call: rq(formula = Ozone ~ Solar.R + Wind + Temp, tau = c(0.25, 0.5,
0.75), data = airquality, method = "br")
tau: [1] 0.5
Coefficients:
Value Std. Error t value Pr(>|t|)
(Intercept) -75.60305 23.27658 -3.24803 0.00155
Solar.R 0.03354 0.02301 1.45806 0.14775
Wind -3.08913 0.68670 -4.49853 0.00002
Temp 1.78244 0.26067 6.83793 0.00000
Call: rq(formula = Ozone ~ Solar.R + Wind + Temp, tau = c(0.25, 0.5,
0.75), data = airquality, method = "br")
tau: [1] 0.75
Coefficients:
Value Std. Error t value Pr(>|t|)
(Intercept) -91.56585 41.86552 -2.18714 0.03091
Solar.R 0.03945 0.04217 0.93556 0.35161
Wind -2.95452 1.17821 -2.50764 0.01366
Temp 2.11604 0.45693 4.63103 0.00001
和 OLS 模型:
summary(lm(Ozone ~ Solar.R + Wind + Temp, data = airquality))
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -64.34208 23.05472 -2.791 0.00623 **
Solar.R 0.05982 0.02319 2.580 0.01124 *
Wind -3.33359 0.65441 -5.094 1.52e-06 ***
Temp 1.65209 0.25353 6.516 2.42e-09 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 21.18 on 107 degrees of freedom
(42 observations deleted due to missingness)
Multiple R-squared: 0.6059, Adjusted R-squared: 0.5948
F-statistic: 54.83 on 3 and 107 DF, p-value: < 2.2e-16
(不用担心上面估计的实际模型,这只是为了说明目的) 例如,现在如何测试 Temp 的系数在分位数 .25 和 .75 之间是否在统计上有显着差异(在某些给定水平),以及 Temp 的 .25 分位数处的系数是否与 Temp 的 OLS 系数有显着差异?
欢迎使用 R 或侧重于统计方法的答案。
对于分位数回归,我通常更喜欢目视检查。
data(airquality)
library(quantreg)
q <- rq(Ozone ~ Solar.R + Wind + Temp, tau = 1:9/10, data = airquality)
plot(summary(q, se = "nid"), level = 0.95)
红色虚线是线性回归的 95% 置信区间,灰色阴影区域是每个 quantreg 估计值的 95% 置信区间。
在下图中,我们可以看到 quantreg 估计值在线性回归估计值的范围内,这表明可能没有统计显着差异。
您可以使用方差分析进一步检验系数的差异是否具有统计显着性。有关详细信息,请参阅 ?anova.rq
。
q50 <- rq(Ozone ~ Solar.R + Wind + Temp, tau = 0.5, data = airquality)
q90 <- rq(Ozone ~ Solar.R + Wind + Temp, tau = 0.9, data = airquality)
anova(q50, q90)