tft每日頭條

 > 生活

 > 協方差與獨立性

協方差與獨立性

生活 更新时间:2025-01-07 10:50:32

我們都知道協方差 可以用來評判多因素間是否具有一相關性,相關相關性的度量也就是皮爾遜系數,皮爾遜系數:

協方差與獨立性(關于協方差的相關性)1

皮爾遜相關性是兩個變量之間的協方差與标準差的商, 那怎麼去理解呢?

通過公式我們來理解一下,是去中心化後的數學期望标準差的商, 分母非負,我們主要關注分子部分就好了,每個點與組内平均值的差就是歸一化的思想,所以我們就是看最後的數學期望對應的向量是不是為正,就可以判斷兩個變量是不是正相關,為了呈現這個過程,我們來看一個例子。

tdf = pd.read_csv('../data/tips.csv') tdf

協方差與獨立性(關于協方差的相關性)2

這是一組數據,total_bill代表消費者就餐賬單總額,tip為 小費,一般理解,就餐費用越高的消費者會提供更多的小費給服務員,因此賬單總額和小費應該是正相關的,我們按照上面的理解來推演一下:

bill = tdf['total_bill'].values # 消費者就餐賬單總額 tip = tdf['tip'].values # 消費者給服務員的小費 x_mean = list(map(lambda x: x - np.mean(bill), bill)) ### 去中心化 y_mean = list(map(lambda x: x - np.mean(tip), tip)) ### 去中心化 xy_mean = [x_mean[i] * y_mean[i] for i in range(len(x_mean))] ### 點坐标相乘 plt.figure(figsize=(10,6)) plt.subplot(131), plt.scatter(bill, tip, c='r'), plt.title("總賬單分布") plt.subplot(132), plt.scatter(x_mean, y_mean, c='r'), plt.title("總賬 去中心化結果 ") plt.subplot(133), plt.scatter(xy_mean, [0]*len(xy_mean), c='r'), plt.title("總賬 去中心化 x*y ") r = np.corrcoef(bill) rr = np.mean(xy_mean) ### 大于零 說明X, Y為正相關(基于公式的理解) print(f" 點相乘結果:{rr}, 皮爾遜相關性:{r}")

協方差與獨立性(關于協方差的相關性)3

我們看到 xy_mean 的平均值為 8.29 ,是大于0的,根據猜想應該是正相關,而我們計算的皮爾遜相關系數為 1.0,為強正相關,和猜想一緻。通過下面的拟合我們可以很清楚的發現,整體上 total_bill 與 tip是正相關的。

import seaborn as sns sns.regplot(x='total_bill', y='tip', data=tdf)

協方差與獨立性(關于協方差的相關性)4

當然,我們還可以計算sperman相關性,但是基本都一緻規律。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved