首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >(R,quantreg):检验大量分位数的假设

(R,quantreg):检验大量分位数的假设
EN

Stack Overflow用户
提问于 2012-08-25 07:25:01
回答 1查看 662关注 0票数 3

我有一个分位数回归模型,有一个回归者和一个回归者。我想假设回归者在每个分位数上是相等的。我想过的一种方法是在{0.01,0.02,....,0.99}上测试整个τ。然而,我不得不写:

anova(model1,model2,model3,.......,model99),其中每个模型对应于不同的τ。rq问题:如何让anova()接受大量类型的模型,而无需手动输入它们?

我的解决方案就是这样做的:

代码语言:javascript
复制
y = rnorm(100)
x = rnorm(100)

rqs_object <- rq(y~x,tau=1:99/100)
anova(rqs_object)

但是,不幸的是,anova显然不采用对象类型rqs,只接受rq类型。

交叉发布了这里,直到我决定它有一个大型的编程/专家元素来解决这个问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-25 09:14:52

我集中讨论问题1,只谈方案编制部分。

一些数据:

代码语言:javascript
复制
set.seed(65465)
y = rnorm(100)
x = rnorm(100)

现在,我定义了一个函数,它以τ作为输入,并执行适当的操作:

代码语言:javascript
复制
rqfits <- function(tau) {
  require(quantreg)
  rq(y~x,tau=tau)
}

然后,我可以将这个函数应用于taus的向量:

代码语言:javascript
复制
taus <- 1:5/10
fits <- lapply(taus,rqfits)

结果是一个模型列表。现在我们可以使用do.call将模型传递给anova

代码语言:javascript
复制
do.call(anova,fits)

Quantile Regression Analysis of Deviance Table

Model: y ~ x
Joint Test of Equality of Slopes: tau in {  0.1 0.2 0.3 0.4 0.5  }

  Df Resid Df F value Pr(>F)
1  4      496  1.0388 0.3866
Warning:
In summary.rq(x, se = se, covariance = TRUE) : 2 non-positive fis
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12120064

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档