首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >线性回归R^2的计算: SSreg/SStot vs 1-(SSSres/SStot)导致不同的结果

线性回归R^2的计算: SSreg/SStot vs 1-(SSSres/SStot)导致不同的结果
EN

Stack Overflow用户
提问于 2021-07-13 20:46:37
回答 1查看 206关注 0票数 0

我试图计算回归的R^2。查看这篇文章,可以通过SSreg/SStot或1-(SSSres/SStot)计算它。我当时的印象是,我最终会得到同样的数值,然而,我似乎有这样的情况:前者给我5%,而后者给我-1%。这是可能的吗?如果有,在什么情况下?

执行情况如下:

代码语言:javascript
运行
复制
r2 = np.sum(df['fi']-df['yi'].mean()) ** 2) / np.sum(df['yi']-df['yi'].mean()) ** 2)
r2 = 1 - (np.sum((df['yi']-df['fi']) ** 2) / np.sum(df['yi']-df['yi'].mean()) ** 2))

有什么问题吗?如果没有,有什么可以解释这些差异,甚至是负面的价值观?

编辑:

修正括号问题,问题仍然是一样的。下面的计算结果并不相同。

代码语言:javascript
运行
复制
r2 =     np.sum( (df['fi']-df['yi'].mean())**2 ) / \
         np.sum( (df['yi']-df['yi'].mean())**2 )
r2 = 1 - np.sum( (df['yi']-df['fi'])**2 ) / \
         np.sum( (df['yi']-df['yi'].mean())**2 )
EN

回答 1

Stack Overflow用户

发布于 2021-07-13 21:00:07

我想你有括号问题。你是在求和正方形的总和。平方应该在sum函数中,而不是在外部:

代码语言:javascript
运行
复制
r2 =     np.sum( (df['fi']-df['yi'].mean())**2 ) / \
         np.sum( (df['yi']-df['yi'].mean())**2 )
r2 = 1 - np.sum( (df['yi']-df['fi'])**2 ) / \
         np.sum( (df['yi']-df['yi'].mean())**2 )
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68369126

复制
相关文章

相似问题

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