回歸中的相關度和R平方值 學習筆記

2021-08-19 05:19:49 字數 1890 閱讀 7897

1. 相關度

相關度又叫 皮爾遜相關係數 (pearson correlation coefficient):

2. r平方值:

模型可以解釋為多大程度是自變數導致因變數的改變

簡單線性回歸:r^2 = r * r

多元線性回歸:

r平方也有其侷限性:r平方隨著自變數的增加會變大,r平方和樣本量是有關係的。因此,我們要到r平方進行修正。得到r平方值adjusted,來評判線性回歸模型的擬合度。修正的方法:

3. python的兩種實現方法:

import numpy as np

# from astropy.units import ybarn

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

def polyfit(x, y, degree):

result = {} # 定義乙個字典

coeffs = np.polyfit(x, y, degree) # 直接求出b0 b1 b2 b3 ..的估計值

result["polynomial"] = coeffs.tolist()

p = np.poly1d(coeffs) # 返回**值

yhat = p(x) # 傳入x 返回**值

ybar = np.sum(y) / len (y) # 求均值

ssreg = np.sum((yhat -ybar)**2)

sstot = np.sum((y - ybar)**2)

result["determination"] = ssreg / sstot

return result

testx = [1, 3, 8, 7, 9]

testy = [10, 12, 24, 21, 34]

print("r:", computecorrelation(testx, testy))

print("r**2:", (computecorrelation(testx, testy)**2))

print("r**2", polyfit(testx, testy, 1)["determination"]) # degree=1 一次

print(polyfit(testx, testy, 1)["polynomial"]) # 列印除斜率和截距

機器學習 回歸中的相關度和R平方值

1.皮爾遜相關係數 pearson correlation coefficient 1.1 衡量兩個值線性相關強度的量 1.2 取值範圍 1,1 正相關 0,負相關 0,無相關 0 1.3 要理解pearson相關係數,首先要理解協方差 covariance 協方差是乙個反映兩個隨機變數相關程度的指...

回歸中的相關度和R平方值(麥子學院)

皮爾遜相關係數 pearson correlation coefficient 1.1 衡量兩個值線性相關強度的量 1.2 取值範圍 1,1 正向相關 0,負向相關 0,無相關性 0 1.3計算方法舉例 x y 1 10 3 12 8 24 7 21 9 34 其他例子 r平方值 4.1定義 決定係...

線性回歸中的R 2平方值

回歸分析,是對兩個或兩個以上變數之間的因果關係進行定量研究的一種統計分析方法。在做回歸分析或者解決回歸問題時,常會用到r 平方值。定義 應用描述 應用實現 1.定義 決定係數,反應因變數的全部變異能通過回歸關係被自變數解釋的比例,回歸中可解釋離差平方和與總離差平方和之比值,其數值等於相關係數r的平方...