如何解决滥用 quantreg 包中的 predict.rq?
我正在使用 quantreg
包根据训练集预测新数据。但是,我注意到 predict.rq
或 predict
与手动执行之间存在差异。下面是一个例子:
分位数回归设置为
N = 10000
tauList = seq(1:11/12)/12
y = rchisq(N,2)
X = matrix( rnorm(3*N),nrow = N,ncol = 3 )
fit <- rq( y ~ X-1,tau = tauList,method = "fn")
我要预测的新数据集是
newdata <- matrix( rbeta((3*N),2,2),ncol=3 )
我使用 predict.rq
或 predict
来预测新数据。两者都返回相同的结果:
fit_use_predict <- predict.rq( fit,newdata = as.data.frame(newdata) )
我也根据系数矩阵手动进行预测:
coef_mat <- coef(fit)
fit_use_multiplication <- newdata %*% coef_mat
我希望两者在数字上相同,但它们不是:
diff <- fit_use_predict - fit_use_multiplication
print(diff)
他们之间的差异不容忽视。
然而,预测原始数据集X
,两者都返回相同的结果,即,
predict(fit,newdata = data.frame(X)) = X %*% coef_mat ## True
我在使用该功能时是否遗漏了什么?谢谢!
解决方法
这里有一个更严重的问题,在我们开始预测之前,模型迫使所有拟合的分位数函数通过设计空间的原点,并且由于协变量以原点为中心,所有分位数函数都被迫交叉那里。即使 X 都在正数中,也可以说响应的分布在原点是退化的。
,我认为您只需在数据中保留“X”名称,就像在训练数据中一样。
conn = psycopg2.connect(database="postgres",user = "postgres",password = "password",host = "/cloudsql/my-new-db")
输出为 psycopg2.OperationalError: could not connect to server: No such file or directory
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。