首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么β回归中的加权相关性和非加权相关性没有区别?

为什么β回归中的加权相关性和非加权相关性没有区别?
EN

Stack Overflow用户
提问于 2018-09-12 01:17:52
回答 1查看 281关注 0票数 0

下面的R代码产生:

代码语言:javascript
复制
> source("s.R")
[1] "unweighted"
[1] "model: linear, r.squared: 0.949843"
[1] "model: beta logit, pseudo.r.squared: 0.956150"
[1] "model: beta loglog, pseudo.r.squared: 0.891941"
[1] "weighted"
[1] "model: linear, r.squared: 0.950847"
[1] "model: beta logit, pseudo.r.squared: 0.956150"
[1] "model: beta loglog, pseudo.r.squared: 0.891941"
Warning messages:
1: In betareg.fit(X, Y, Z, weights, offset, link, link.phi, type, control) :
  no valid starting value for precision parameter found, using 1 instead
2: In betareg.fit(X, Y, Z, weights, offset, link, link.phi, type, control) :
  no valid starting value for precision parameter found, using 1 instead
> 

对于加权和非加权,betreg的相关值是相同的。这是合理的还是我有窃听器?

还有,那些警告信息想告诉我什么?

相关question

代码语言:javascript
复制
printOneSummary<-function(label,model) {
    if(is(model,"lm")) print(sprintf("model: %s, r.squared: %f",label,summary(model)$r.squared))
    else print(sprintf("model: %s, pseudo.r.squared: %f",label,summary(model)$pseudo.r.squared))

}
printSummary<-function(models) {
    for(i in 1:length(models)) 
        printOneSummary(modelLabels[i],models[[i]])
}
makeModels<-function(x,y,weights,weighted){
    models <-NULL
    if(weighted) {
        print("weighted")
        m<-lm(y~x,na.action=na.omit,weights=weights)
        logit<-betareg(y~x,na.action=na.omit,weights=weights)
        loglog <- betareg(y~x,na.action=na.omit,weights=weights,link = "loglog")
        models<-list(m,logit,loglog)
    } else {
        print("unweighted")
        m<-lm(y~x,na.action=na.omit)
        logit<-betareg(y~x,na.action=na.omit)
        loglog<-betareg(y~x,na.action=na.omit,link="loglog")
        models<-list(m,logit,loglog)
    }
}    
if(!require(betareg)){install.packages("betareg")}
set.seed(123)
modelLabels<-c("linear","beta logit","beta loglog")
x=seq(100,200,length.out=60)
y=1-(.1+.8*sqrt((x-100)/100))
df<-data.frame(x,y)
df$n<-runif(length(x),1,10)
df$size<-df$n/sum(df$n)
models<-makeModels(df$x,df$y,df$size,F)
printSummary(models)
models<-makeModels(df$x,df$y,df$size,T)
printSummary(models)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-13 22:21:55

谢谢你注意到这个!这确实是betareg()中的一个bug,到目前为止,它完全忽略了weights参数。我刚刚在R-Forge:id=1220上的开发版本中修正了它

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52322915

复制
相关文章

相似问题

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