R和R_square

一、数学中的R平方:

R和R_square

数学算法

1、R:一般用来度量数据之间的线性相关性,通常分为三种:Spearman,Pearson和kendall,在SPSS中也能直接使用,R的定义如下图公式(1)所示:

R和R_square

(1)R数学公式

 

2、R_square:

R_square起源于数学统计上,在一个线性模型中,我们通常使用它去评估该模型线性拟合度的高低,对于R_square的定义如下图公式(2)所示,其中

SST:总平方和(类似于方差)

SSR:回归平方和(SST-SSE)

SSE:残差平方和(实际值与模型预测值/观察值之间样本总的差异)

R和R_square

(2)R平方数学公式

二、机器学习中的R平方:

R和R_square

机器学习

机器学习中,预测模型一般分为两类:回归与分类,R_square一般用于回归中评估模型的好坏程度,其值越接近1,代表模型性能越好,小于0时,通常表示模型效果非常差。

三、Python中的R平方:

R和R_square

Python语言

1、R:直接按照公式使用Python编程语言编程

#R程序

import numpy as np

import math

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 = [] #X值

testY = [] #Y值

print(computeCorrelation(testX, testY))

2、R_square程序

通常使用工具包python工具包sklearn里面的metrics:

#R_square程序

from sklearn.metrics import r2_score

y_pred = [] #模型预测值/观察值

y_true = [] #

R2 = r2_score(y_pred, y_true)

print(R2)