R中的分位数回归,重新排列乳胶产量的数据
使用lappy对(比如)三个不同的tau进行分位数回归:R中的分位数回归,重新排列乳胶产量的数据,r,R,使用lappy对(比如)三个不同的tau进行分位数回归: listdf <- lapply(vector(tau1, tau2, tau3), function(x){summary.rq(rq(Y ~ x + z, tau=x, data=regdf))}) (类“data.frame”的三个元素列表) 接下来我要做的是重新排列数据(coeflist),为每个回归变量获得一个数据帧,其中行表示不同tau的系数 我运行:lappy(1:nrow(coeflist[[1]]),函数(I)d
listdf <- lapply(vector(tau1, tau2, tau3), function(x){summary.rq(rq(Y ~ x + z, tau=x, data=regdf))})
(类“data.frame”的三个元素列表)
接下来我要做的是重新排列数据(coeflist
),为每个回归变量获得一个数据帧,其中行表示不同tau的系数
我运行:lappy(1:nrow(coeflist[[1]]),函数(I)do.call(rbind,lappy(coeflist,[],I,TRUE))
这种类型的返回是我想要的,但是有没有一种方法也可以重命名数据帧中的行名,以反映系数来自哪个tau?还可以将列表元素重命名为回归变量的名称
问候。新版本:更改您创建的coeflist:
coeflist <- lapply(listdf, function(x){data.frame(x$coefficients[,1])})
coeflist
新版本:更改您对coeflist的创建:
coeflist <- lapply(listdf, function(x){data.frame(x$coefficients[,1])})
coeflist
首先,我要注意rq()的tau参数接受向量,所以我不确定所有的lappy()工作是否真的有必要 但使用quantreg软件包中的示例数据,您需要的是:
data(stackloss)
temp <- summary(rq(y ~ x, method="fn",tau=c(0.3,0.5,0.7)))
df <- temp[[1]]$coeff
colnames(df)[1] <- as.character(temp[[1]]$tau)
for (i in 2:length(temp)){
df[,i] <- temp[[i]]$coefficients[,1]
colnames(df)[i] <- as.character(temp[[i]]$tau)
}
t(df)
数据(stackloss)
temp首先,我要注意rq()的tau参数接受向量,所以我不确定所有的lappy()工作是否真的有必要
但使用quantreg软件包中的示例数据,您需要的是:
data(stackloss)
temp <- summary(rq(y ~ x, method="fn",tau=c(0.3,0.5,0.7)))
df <- temp[[1]]$coeff
colnames(df)[1] <- as.character(temp[[1]]$tau)
for (i in 2:length(temp)){
df[,i] <- temp[[i]]$coefficients[,1]
colnames(df)[i] <- as.character(temp[[i]]$tau)
}
t(df)
数据(stackloss)
临时雇员