如何使用Python和Numpy计算r平方?

如何使用Python和Numpy计算r平方?,第1张

如何使用Python和Numpy计算r平方?

从numpy.polyfit文档中,它适合线性回归。具体来说,度为’d’的numpy.polyfit与均值函数拟合线性回归

E(y | x)= p_d * x d + p_ {d-1} * x (d-1)+ … + p_1 * x + p_0

因此,您只需要计算该拟合的R平方即可。线性回归的维基百科页面提供了完整的详细信息。您对R
^ 2感兴趣,可以用几种方法来计算,最容易的可能是

SST = Sum(i=1..n) (y_i - y_bar)^2SSReg = Sum(i=1..n) (y_ihat - y_bar)^2Rsquared = SSReg/SST

我将“ y_bar”用作y的均值,并将“ y_ihat”作为每个点的拟合值。

我对numpy并不十分熟悉(我通常在R中工作),因此可能有一种更简洁的方法来计算R平方,但是以下应该是正确的

import numpy# Polynomial Regressiondef polyfit(x, y, degree):    results = {}    coeffs = numpy.polyfit(x, y, degree)     # Polynomial Coefficients    results['polynomial'] = coeffs.tolist()    # r-squared    p = numpy.poly1d(coeffs)    # fit values, and mean    yhat = p(x)   # or [p(z) for z in x]    ybar = numpy.sum(y)/len(y)          # or sum(y)/len(y)    ssreg = numpy.sum((yhat-ybar)**2)   # or sum([ (yihat - ybar)**2 for yihat in yhat])    sstot = numpy.sum((y - ybar)**2)    # or sum([ (yi - ybar)**2 for yi in y])    results['determination'] = ssreg / sstot    return results


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5623645.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-15
下一篇2022-12-15

发表评论

登录后才能评论

评论列表(0条)

    保存