svyglm 中的负调整 R 平方

问题描述

我有一个大型加权分层数据集,其中包含每个家庭的二氧化碳排放量。变量 total_co2 等于总和 elec_co2 + gas_co2 + oil_co2。在转向更复杂的关系之前,我试图构建一个看似显而易见的模型。

svy <- svydesign(id=~i_psu,strata=~i_strata,weights=~i_hhdenui_xw,data=df1)

model <- svyglm(total_co2 ~ elec_co2,svy)
summ(model)
MODEL INFO:
Observations: 6826
Dependent Variable: total_co2
Type: Survey-weighted linear regression 

MODEL FIT:
R² = 0.31
Adj. R² = -1.74 

Standard errors: Robust
---------------------------------------------------
                       Est.    S.E.   t val.      p
----------------- --------- ------- -------- ------
(Intercept)         1962.48   83.68    23.45   0.00
elec_co2               1.27    0.05    23.98   0.00
---------------------------------------------------

Estimated dispersion parameter = 4390445

虽然 R^2 表示某种解释力,但 Adj. R^2 是否定的,通常被解释为表示相反。在如此简单的关系中,这怎么可能?负值从何而来,我该如何解释?

这是一个简单的数据图。

enter image description here

解决方法

简短回答:调整后的 R 平方公式允许否定答案,如果所选模型的拟合效果比水平线差,则 R 平方为负。

长答案: 另一条评论更深入地探讨了负 R 平方值: https://stats.stackexchange.com/q/12991

此网页深入介绍了调整后的 R 平方公式: https://www.statisticshowto.com/adjusted-r2/

我建议尝试其他模型或单独添加 elec_co2、gas_co2 和 oil_co2。

,

调整后的 R 平方的负值是由于 summjtools 函数中的错误造成的。更多信息请访问:https://github.com/jacob-long/jtools/issues/112