输出结果
实现代码
import numpy as np
from astropy.units import Ybarn
import math
from statsmodels.graphics.tukeyplot import results
def computeCorrelation(X, Y):
xBar = np.mean(X)
yBar = np.mean(Y)
SSR = 0
varX = 0
varY = 0
for i in range(0 , len(X)):
diffXXBar = X[i] - xBar
diffYYBar = Y[i] - yBar
SSR += (diffXXBar * diffYYBar)
varX += diffXXBar**2
varY += diffYYBar**2
SST = math.sqrt(varX * varY)
return SSR / SST
testX = [1, 3, 8, 7, 9]
testY = [10, 12, 24, 21, 34]
print ("r:",computeCorrelation(testX, testY))
def polyfit(x,y,degree):
results={}
coeffs =np.polyfit(x,y,degree)
results['polynomial'] = coeffs.tolist()
p=np.poly1d(coeffs)
yhat=p(x)
ybar=np.sum(y)/len(y)
ssreg=np.sum((yhat-ybar)**2)
sstot=np.sum((y-ybar)**2)
results['determination']=ssreg/sstot
return results
print (polyfit(testX, testY, 1)["determination"])