@簡單幾個指令就好,可用於陽春的標準差、相關係數與迴歸直線編碼完後講解
import numpy as np
import matplotlib.pyplot as plt
print("請輸入X值,以空格隔開:")
x = [int(a) for a in input().split()]
print("請輸入Y值,以空格隔開:")
y = [int(b) for b in input().split()]
#找標準差
print("X的標準差:",np.std(x))
print("Y的標準差:",np.std(y))
#找相關係數,會形成2x2的矩陣,對角線元素即相關係數
print("X,Y之相關係數:",np.corrcoef(x,y)[0][1])
#找迴歸直線方程式,m為斜率,c為y截距
A = np.vstack([x, np.ones(len(x))]).T
m, c = np.linalg.lstsq(A, y, rcond=None)[0]
print("Y對X之迴歸直線方程式:","y=",m,"x+",c)
#畫出XY之對應點
plt.scatter(x,y,label="$Data$",color="blue",linewidth=2)
#取斜率m及y截距之近似值,否則m是一個超小的浮點數,不能畫
m=round(m,5)
c=round(c,5)
#欲畫出迴歸直線,取x最小的值再減1,取x最大的值再加1
MM=max(x)+1
mm=min(x)-1
#直線找二點即可
xx = np.linspace(mm,MM,2)
#畫迴歸直線,r為紅色線
plt.plot(xx,m*xx+c,'r',label="$Regression-Line$",color="red",linewidth=2)
plt.legend()
plt.show()
沒有留言:
張貼留言