大師兄的數(shù)據(jù)分析學(xué)習筆記(五):探索性數(shù)據(jù)分析(四)
大師兄的數(shù)據(jù)分析學(xué)習筆記(七):探索性數(shù)據(jù)分析(六)
四、多因子與復(fù)合分析
4. 相關(guān)系數(shù)
- 相關(guān)系數(shù)是衡量兩組數(shù)據(jù)的分布趨勢和變化趨勢一致性程度的因子。
- 相關(guān)系數(shù)有正相關(guān)、負相關(guān)和不相關(guān)之分贺奠。
- 相關(guān)系數(shù)越大坦辟,越接近1妆距,變化趨勢越正向同步;
- 相關(guān)系數(shù)越小晌畅,越接近-1偏形,變化趨勢越反向同步静袖;
- 相關(guān)系數(shù)越接近0,變化趨勢越不相關(guān)俊扭;
- 常用的相關(guān)系數(shù)有兩種:皮爾遜相關(guān)系數(shù)(Pearson correlation coefficient)和斯皮爾曼相關(guān)系數(shù)(spearman correlation coefficient):
4.1 皮爾遜相關(guān)系數(shù)
- 皮爾遜相關(guān)系數(shù)的分子是兩組數(shù)據(jù)的協(xié)方差队橙,分母是兩組數(shù)據(jù)的標準差的集。
>>>import numpy as np
>>>import scipy.stats as ss
>>>data1 = np.random.rand(10)
>>>data2 = np.random.rand(10)
>>>pccs = ss.pearsonr(data1,data2)
>>>print(f"data1:{data1}")
>>>print(f"data2:{data2}")
>>>print(f"Pearson's correlation coefficient:{pccs[0]}")
>>>print(f"Two-tailed p-value:{pccs[1]}")
data1:[0.99837294 0.784658 0.53345186 0.59309483 0.28240823 0.66189433
0.29580696 0.31315612 0.7754216 0.77443794]
data2:[0.48826977 0.81899969 0.77566201 0.91464751 0.05536523 0.35246479
0.32585614 0.71434004 0.37966254 0.94915496]
Pearson's correlation coefficient:0.32409101999585543
Two-tailed p-value:0.3609398908469933
4.2 斯皮爾曼相關(guān)系數(shù)
- 斯皮爾曼相關(guān)系數(shù)關(guān)注兩組數(shù)據(jù)的名次差萨惑。
- :每組數(shù)據(jù)的數(shù)量捐康;
- :兩組數(shù)據(jù)排名后的名次差;
>>>import numpy as np
>>>import scipy.stats as ss
>>>data1 = np.random.rand(10)
>>>data2 = np.random.rand(10)
>>>pccs = ss.spearmanr(data1,data2)
>>>print(f"data1:{data1}")
>>>print(f"data2:{data2}")
>>>print(f"Spearman's correlation coefficient:{pccs[0]}")
>>>print(f"Two-tailed p-value:{pccs[1]}")
data1:[0.0085787 0.94480457 0.29985499 0.54689296 0.13564683 0.72558257
0.83684571 0.2797848 0.58108358 0.96698258]
data2:[0.71151971 0.3121948 0.20845518 0.68793807 0.62991839 0.43235496
0.93005684 0.64161376 0.93214243 0.06559743]
Spearman's correlation coefficient:-0.32121212121212117
Two-tailed p-value:0.3654683104386702
5. 線性回歸
- 回歸是確定兩種或兩種以上變量間相互依賴的定量關(guān)系的一種統(tǒng)計分析方法庸蔼,如果變量間的關(guān)系是線性關(guān)系解总,則稱為線性回歸。
- 線性回歸最常用的算法是最小二乘法姐仅,最小二乘法的本質(zhì)是最小化誤差的平方的方法花枫,公式如下:
- 線性回歸的關(guān)鍵指標包括決定系數(shù)和殘差不相關(guān):
- 一元線性回歸決定系數(shù)公式:
:實際值
:均值
:預(yù)測值
決定系數(shù)越接近1,代表線性回歸效果越好馒疹。
- 多元線性回歸采用了校正式的決定系數(shù):adjusted
:參數(shù)的個數(shù)
- 殘差不相關(guān)(DW檢驗)的公式:
值得范圍在0-4之間佳簸;
如果值為2則殘差不相關(guān)(好的回歸);
接近4代表殘差正相關(guān);
接近0代表殘差負相關(guān)。
>>>import random
>>>import numpy as np
>>>import matplotlib.pyplot as plt
>>>from sklearn.linear_model import LinearRegression
>>>x = np.arange(10).astype(float).reshape((10,1))
>>>y = random.randint(-5,20)+np.random.rand(10,1)
>>>reg = LinearRegression()
>>>res = reg.fit(x,y) # 擬合
>>>y_pred = reg.predict(x) # 預(yù)測值
>>>print(f"coefficient:{reg.coef_}")
>>>print(f"intercept:{reg.intercept_}")
>>>plt.scatter(x,y)
>>>plt.plot(y_pred)
>>>plt.show()
coefficient:[[-0.01168797]]
intercept:[19.51730895]
6. 主成分分析
- 主成分分析(PCA)颖变,通過正交變換將一組可能存在相關(guān)性的變量轉(zhuǎn)換為一組線性不相關(guān)的變量生均,轉(zhuǎn)換后的這組變量叫主成分,最重要的作用是給數(shù)據(jù)降維
- 主成分分析的步驟:
- 求特征協(xié)方差矩陣悼做;
- 求協(xié)方差的特征值和特征向量疯特;
- 將特征值按照從大到小的順序排序,選擇其中最大的k個;
- 將樣本點投影到選取的特征向量上肛走。
>>>import numpy as np
>>>import matplotlib.pyplot as plt
>>>from sklearn.decomposition import PCA
>>>data = np.array([np.random.randint(0,5,10),np.random.randint(0,5,10),np.random.randint(0,5,10),np.random.randint(0,5,10)]).T
>>>lower_dim = PCA(n_components=1)
>>>lower_dim.fit(data)
>>>print(f"explained_variance_ratio:{lower_dim.explained_variance_ratio_}")
>>>plt.plot(lower_dim.fit_transform(data))
>>>plt.show()
explained_variance_ratio:[0.40663428]