python求相关系数(R)、均方根误差(RMSE)、平均绝对误差(MAE)、效率系数(E)

from scipy.stats import pearsonr
a=[2187,1817.5,1696.5,2217,2208.7,2305,2205.7,2299,2414,2109,1695.5,2277.5,2227,1989.5,2183.5,2142,2125,2018.5,2182.1,2124.5,1954,1930.3,1995.5,2329,2003.5,2282.5,2042,2503.5,2128,2123.5,2081.5,1883,1973.5,1876.5,1823.5,1754.5,2004.5,2000.5,1741.5,1680,1703,1735.5,1923.5,1668.4,2086,1485.5,1462,1342,2133.5,2039,1999.7,2005.5,1974,1927.6,2091,2034.5,1948.5,1926.1,2338,2265.5,2178.5,2075.5,2265]
b=[2006,1917,1740,2595,2595,2595,2595,2290,2290,2290,2101,2101,2193,2101,2193,2193,2188,2188,2188,2188,2042,1942,2042,2309,2247,2351,2351,2467,2247,2247,2247,2142,2142,2028,2042,1917,2101,1942,1942,1820,1820,1820,1947,1853,1947,1814,1738,1738,2054,2054,2054,2054,2153,2187,2187,2538,2153,2153,2497,2497,2538,2538,2537]
print(pearsonr(a, b))

error = []
for i in range(len(a)):
error.append(a[i] - b[i])

print("Errors: ", error)
print(error)

squaredError = []
absError = []
for val in error:
squaredError.append(val * val)#a-b之差平方
absError.append(abs(val))#误差绝对值

print("Square Error: ", squaredError)
print("Absolute Value of Error: ", absError)
print("MSE = ", sum(squaredError) / len(squaredError))#均方误差MSE

from math import sqrt
print("RMSE = ", sqrt(sum(squaredError) / len(squaredError)))#均方根误差RMSE
print("MAE = ", sum(absError) / len(absError))#平均绝对误差MAE

aDeviation = []
aMean = sum(a) / len(a)#a平均值
for val in a:
aDeviation.append((val - aMean) * (val - aMean))
print("a efficiency = ", 1-sum(squaredError) / sum(aDeviation))#效率系数E

你可能感兴趣的:(python求相关系数(R)、均方根误差(RMSE)、平均绝对误差(MAE)、效率系数(E))