R 分位数估计后建立累积分布函数

R 分位数估计后建立累积分布函数,r,probability-density,quantreg,quantile-regression,R,Probability Density,Quantreg,Quantile Regression,这个数据框有两列(Y和X) 使用quantregpackage,我可以在X的条件下估计Y的分位数 我无法在X的条件下建立Y的累积密度函数。有人能帮我吗 估计分位数: library(quantreg) taus=seq(0.1, 0.9, by = 0.01) Quantis<-rq(data[,1] ~ data[,2],tau=taus,method="br") 每个X的累积分布函数是Y在X保持固定的情况下,每个分位数tau的估计值。我对分位数回归没有太多经验,但似乎rq的输出并不一

这个数据框有两列(Y和X)

使用
quantreg
package,我可以在X的条件下估计Y的分位数

我无法在X的条件下建立Y的累积密度函数。有人能帮我吗

估计分位数:

library(quantreg)
taus=seq(0.1, 0.9, by = 0.01)
Quantis<-rq(data[,1] ~ data[,2],tau=taus,method="br")

每个
X
的累积分布函数是
Y
X
保持固定的情况下,每个分位数
tau
的估计值。我对分位数回归没有太多经验,但似乎
rq
的输出并不一致,因为对于给定的
X
而言,
Y
tau
不一定是单调的

例如,下面是一些代码,用于获取四个
X
值的累积分布函数:

library(quantreg)
library(reshape2)
library(ggplot2)

taus=seq(0,1,0.01)
Quantis<-rq(Y ~ X, tau=taus, method="br", data=data)

# Get predictions of Y for four X values for all taus
X = seq(min(data$X), max(data$X), length.out=4)
pred = as.data.frame(predict(Quantis, newdata=data.frame(X)))
pred$X = X

从上图中可以看出,累积分布函数不是单调的。如果我们为101个分位数(即,
tau
的101个值)中的每一个绘制单独的回归线,则更容易看到发生了什么。每个
X
Y
的累积分布函数是通过下图的垂直切片。但是,您可以看到每个分位数的回归线经常相互交叉,这相当于上图中的非单整性(这是一个词吗?)

为了相互一致,分位数回归线不应相互交叉。正如我所说,我对分位数回归没有太多经验,但可能你的数据太稀疏,无法得到每个分位数的稳定斜率。特别是,左边缘的单个值是有问题的,但即使删除该值,也不会得到单调分位数

ggplot(pred, aes(x=X, y=Y, colour=tau, group=factor(tau))) +
  geom_point(data=data, aes(X,Y), inherit.aes=FALSE) +
  geom_line(show.legend=FALSE, alpha=0.7) +
  scale_colour_gradient2(low="red", mid="yellow", high="blue", midpoint=0.5) +
  theme_bw() 

# Reshape predictions to long format
pred = melt(pred, id.var="X", variable.name="tau", value.name="Y")
pred$tau = as.numeric(gsub("tau= (.*)", "\\1", pred$tau))

# Plot predictions
ggplot(pred, aes(x=Y, y=tau, color=factor(X))) +
  geom_step() + theme_bw()
ggplot(pred, aes(x=X, y=Y, colour=tau, group=factor(tau))) +
  geom_point(data=data, aes(X,Y), inherit.aes=FALSE) +
  geom_line(show.legend=FALSE, alpha=0.7) +
  scale_colour_gradient2(low="red", mid="yellow", high="blue", midpoint=0.5) +
  theme_bw()