epoh老师,您好,能否帮我看看这个该如何实现?
您编写的case1,我修改了一下可以实现多个分位同时估计
case1:
x1=log(Produc$pcap)
x2=log(Produc$pc)
x3=log(Produc$emp)
x4=Produc$unemp
X=cbind(x1,x2,x3,x4)
y=log(Produc$gsp)
N<-length(y)
s= rep(1:48,rep(17,48))
X <- as.matrix(X)
p <- ncol(X)
n <- length(levels(as.factor(s)))
Z <- as.matrix.csr(model.matrix(~as.factor(s)-1))
lambda=1
w=c(0.1,0.25,0.5,0.25,0.1)
taus=c(0.1,0.25,0.5,0.75,0.9)
K <- length(w)
xx1<- cbind(as(w,"matrix.diag.csr") %x% X,w %x% Z)
Penalty <- cbind(as.matrix.csr(0,n,K*p),lambda*as(n,"matrix.diag.csr"))
xx<-rbind(xx1,Penalty)
y <- c(w %x% y,rep(0,n))
a <- c((w*(1-taus)) %x% (t(X)%*%rep(1,N)),
sum(w*(1-taus)) * (t(Z) %*% rep(1,N)) + lambda * rep(1/2,n))
##rhs = (1 - tau) * c(t(a) %*% rep(1, length(y)))
rq.fit.sfn(xx,y,a)
case2: 我修改了一点
library(SparseM)
library(quantreg)
library(Ecdat)
data("Produc")
#n=48, T=17, N=816
x1=log(Produc$pcap)
x2=log(Produc$pc)
x3=log(Produc$emp)
x4=Produc$unemp
X=cbind(x1,x2,x3,x4)
y=log(Produc$gsp)
s= rep(1:48,rep(17,48))
X <- as.matrix(X)
n <- length(levels(as.factor(s)))
Z <- as.matrix.csr(model.matrix(~as.factor(s)-1))
w<-1
xx<- cbind(as(w,"matrix.diag.csr") %x% X,w %x% Z) tt<-as.matrix(xx)
taus<-c(0.1,0.25,0.75,0.5,0.9)
for(j in 1:length(taus)){
fit<-rqss(y~tt-1,tau=taus[j])
}
但是case不能实现多个分位同时运行
就假如我一次一次运行,如现在运行5个分位点,就5次,每一次都估计出x1-x4系数,而每一次的固定效应结果不同。
在rq.fit.sfn中,我同时估计5个分位点,得出的只有一组固定效应。那两者肯定不一样
在rqss中能实现5个分位同时估计吗?
|