拓端tecdat|R语言分位数回归Quantile Regression分析租房价格
原文链接:http://tecdat.cn/?p=18422
本文想在R软件中更好地了解分位数回归优化。在查看分位数回归之前,让我们从样本中计算中位数或分位数。
中位数
考虑一个样本 。要计算中位数,请求解
可以使用线性编程技术解决。更确切地说,这个问题等同于
为了说明,考虑对数正态分布的样本,
-
n = 123
-
set.seed(132)
-
y = rlnorm(n)
-
median(y)
-
[1] 1.01523
对于优化问题,使用具有3n个约束和2n + 1参数的矩阵形式,
-
-
r = lp("min", c(rep(1,2*n),0),
-
-
tail(r$solution,1)
-
[1] 1.01523
分位数
当然,我们可以将之前的代码改编为分位数
-
tau = .3
-
quantile(x,tau)
-
30%
-
0.674124
线性程序
R代码
-
-
r = lp("min", c(rep(tau,n),rep(1-tau,n),0),
-
-
-
[1] 0.674124
分位数回归(简单)
考虑一个数据集,该数据集是一个主要城市的单位租金与面积,建筑年龄等的函数。
分位数回归的线性程序
与ai,bi≥0和
在这里使用
-
require(lpSolve)
-
-
r = lp("min",
-
c(rep(tau,n , rep(1-tau,n),0,0 , rbind(A1, A2 ,
-
c(rep( =", 2*n , rep("=", n) , c(rep(0,2*n), y
-
tail(r$solution,2)
-
[1] 147.845234 3.273453
我们可以使用R函数来拟合该模型
-
-
rq(ren~are , tau=tau
-
Coefficients:
-
(Intercept) are
-
147.845234 3.273453
我们可以使用不同的概率水平来获得图
-
plot( area, rent,xlab=expression
-
tau = .9
-
r = lp("min",
-
c(re au,n), rep(1-tau rbind(A1 2),
-
c(rep , 2*n), rep("=", n)), c( ,2*n) y))
-
多元分位数回归
现在,我们尝试使用两个协变量呢,例如,让我们看看是否可以将单位的租金解释为面积的(线性)函数和建筑年龄。
-
-
r = lp("min",
-
c(rep(ta n), rep(1- au,n),0,0, , rbin 1, A2),
-
(r p("& , n), rep("= n)), (rep(0 *n), y))
-
tail(r$sol ,3)
-
[1] 0.000 3.224 0.073
-
-
Coefficients:
-
(Intercept) are year
-
-5322.503252 3.428135 2.637234
结果是完全不同的。可以用IRLS –迭代加权最小二乘确认后者
-
for(s in 1:500){
-
-
reg = lm(rent ~area+year ,
-
weigts= tau*(eps t;0 1-tau) eps< ))/ s(e ))
-
-
}
-
reg$coefficients
-
(Intercept) area year
-
-5485.433043 3.932134 2.842943
我们可以使后者拟合多元回归,
-
-
lp("min",c,A consttype,b)
-
beta = r$sol[1:K - r$sol (1:K+K)
-
beta
-
[1] -5542.633252 3.958135 2.857234
与之比较
-
-
rq(rent~ area + year, tau=tau
-
-
Coefficients:
-
(Intercept) area yearc
-
-5542.633252 3.958135 2.857234
-
-
Degrees of freedom: 4571 total; 4568 residual
最受欢迎的见解
3.matlab中的偏最小二乘回归(PLSR)和主成分回归(PCR)
5.R语言回归中的Hosmer-Lemeshow拟合优度检验
▍关注我们
【大数据部落】第三方数据服务提供商,提供全面的统计分析与数据挖掘咨询服务,为客户定制个性化的数据解决方案与行业报告等。
▍咨询链接:http://y0.cn/teradat
▍联系邮箱:3025393450@qq.com