Làm thế nào để bạn tìm thấy hệ số tương quan của một khung dữ liệu trong python?

Kết quả của phương pháp

df = pd.read_csv('https://raw.githubusercontent.com/flyandlure/datasets/master/housing.csv')
df.head().T
5 là một bảng có rất nhiều số biểu thị mức độ quan hệ giữa hai cột

Số thay đổi từ -1 đến 1

1 có nghĩa là có mối quan hệ 1-1 (mối tương quan hoàn hảo) và đối với tập dữ liệu này, mỗi khi một giá trị tăng lên trong cột đầu tiên, giá trị kia cũng tăng theo

0. 9 cũng là một mối quan hệ tốt và nếu bạn tăng một giá trị, thì giá trị kia cũng có thể tăng theo

-0. 9 sẽ là mối quan hệ tốt như 0. 9, nhưng nếu bạn tăng một giá trị, giá trị kia có thể sẽ giảm xuống

0. 2 có nghĩa KHÔNG phải là mối quan hệ tốt, nghĩa là nếu một giá trị tăng lên không có nghĩa là giá trị kia sẽ

Một mối tương quan tốt là gì?

Tương quan hoàn hảo

Ta có thể thấy "Duration" và "Duration" có số là

df = pd.read_csv('https://raw.githubusercontent.com/flyandlure/datasets/master/housing.csv')
df.head().T
8, điều này có nghĩa là mỗi cột luôn có một mối quan hệ hoàn hảo với chính nó

tương quan tốt

"Thời lượng" và "Calo" có mối tương quan

df = pd.read_csv('https://raw.githubusercontent.com/flyandlure/datasets/master/housing.csv')
df.head().T
9, đây là mối tương quan rất tốt và chúng tôi có thể dự đoán rằng bạn tập càng lâu, bạn càng đốt được nhiều calo và ngược lại. nếu bạn đốt cháy nhiều calo, có lẽ bạn đã tập luyện lâu

Tương quan xấu

"Thời lượng" và "Maxpulse" có mối tương quan

df = pd.read_csv('https://raw.githubusercontent.com/flyandlure/datasets/master/housing.csv')
df.head().T
0, đây là mối tương quan rất xấu, nghĩa là chúng ta không thể dự đoán xung tối đa chỉ bằng cách nhìn vào thời lượng tập luyện và ngược lại

Hệ số tương quan Pearson, hay PCC, là phương pháp thống kê tiêu chuẩn để tính toán tương quan theo cặp hoặc biến đôi trong Pandas. Nó được sử dụng phổ biến trong thống kê đến mức nó thường được gọi đơn giản là “hệ số tương quan. ” Hệ số tương quan Pearson hoàn toàn giống với Pearson's r và hệ số tương quan thời điểm sản phẩm Pearson (PPMCC), nó chỉ có một số tên

Cũng như các hệ số tương quan khác, tương quan Pearson được sử dụng để tính độ mạnh của mối tương quan tuyến tính giữa hai biến trong tập dữ liệu. Về cơ bản, đó là tỷ lệ giữa hiệp phương sai của các biến và tích của độ lệch chuẩn của chúng và đưa ra thước đo hiệp phương sai được chuẩn hóa trả về giá trị trong khoảng từ 1 đến -1. Giá trị 1 biểu thị mối quan hệ tuyến tính dương hoàn hảo, giá trị -1 biểu thị mối quan hệ tuyến tính âm hoàn hảo và giá trị 0 biểu thị không có mối quan hệ tuyến tính

Bằng cách giải thích kết quả của hệ số tương quan Pearson, bạn có thể biết liệu một biến có liên quan đến sự thay đổi của biến kia hay không. Ví dụ: giá ô tô mới có thể tương quan thuận với tốc độ tối đa, vì hầu hết những chiếc ô tô mới rất đắt tiền đều là siêu xe hoặc siêu xe

Trong hướng dẫn này, tôi sẽ giải thích mối tương quan Pearson và chỉ ra cách bạn có thể sử dụng nó để phát hiện mối tương quan giữa các biến trong tập dữ liệu của bạn bằng hàm Pandas

df = pd.read_csv('https://raw.githubusercontent.com/flyandlure/datasets/master/housing.csv')
df.head().T
1

Hệ số tương quan Pearson sử dụng Corr()

Hệ số tương quan Pearson có thể được tính toán dễ dàng trong Pandas bằng cách sử dụng

df = pd.read_csv('https://raw.githubusercontent.com/flyandlure/datasets/master/housing.csv')
df.head().T
1. Hàm
df = pd.read_csv('https://raw.githubusercontent.com/flyandlure/datasets/master/housing.csv')
df.head().T
1 được sử dụng để tính toán các hệ số tương quan theo cặp trên các giá trị khung dữ liệu Pandas và có thể tính toán chúng dưới dạng các cặp riêng lẻ (i. e. tốc độ và giá tối đa) hoặc theo cặp trên toàn bộ khung dữ liệu

Do hệ số tương quan Pearson được sử dụng rộng rãi bởi các nhà thống kê và nhà khoa học dữ liệu nên hàm

df = pd.read_csv('https://raw.githubusercontent.com/flyandlure/datasets/master/housing.csv')
df.head().T
1 được định cấu hình sẵn với các giá trị mặc định để trả về hệ số tương quan Pearson. Tuy nhiên, bạn có thể thay đổi điều này để sử dụng hệ số tương quan xếp hạng Spearman tương tự (hoặc Spearman's r) hoặc hệ số tương quan Kendall Tau, nếu bạn cho rằng chúng phù hợp hơn với dữ liệu của mình

Hàm

df = pd.read_csv('https://raw.githubusercontent.com/flyandlure/datasets/master/housing.csv')
df.head().T
1 nhận ba đối số, tất cả đều là tùy chọn. Dưới đây là tóm tắt nhanh về những gì họ làm

Tham sốMô tả
df = pd.read_csv('https://raw.githubusercontent.com/flyandlure/datasets/master/housing.csv')
df.head().T
6Tham số
df = pd.read_csv('https://raw.githubusercontent.com/flyandlure/datasets/master/housing.csv')
df.head().T
6 xác định phương pháp nào trong ba phương pháp hệ số tương quan sẽ sử dụng. Giá trị mặc định là
df = pd.read_csv('https://raw.githubusercontent.com/flyandlure/datasets/master/housing.csv')
df.head().T
8, là hệ số tương quan thời điểm sản phẩm Pearson. Hai phương pháp khác là
df = pd.read_csv('https://raw.githubusercontent.com/flyandlure/datasets/master/housing.csv')
df.head().T
9, đối với hệ số tương quan Kendall Tau và
df['median_income'].corr(df['median_house_value'])
0 đối với hệ số tương quan xếp hạng của Spearman.
df['median_income'].corr(df['median_house_value'])
1Tham số
df['median_income'].corr(df['median_house_value'])
1 xác định số lượng quan sát tối thiểu cần thiết để tính hệ số tương quan. Nếu có ít hơn
df['median_income'].corr(df['median_house_value'])
1 quan sát, hệ số tương quan sẽ được đặt thành
df['median_income'].corr(df['median_house_value'])
4. Tính năng này hiện chỉ hoạt động khi tham số
df = pd.read_csv('https://raw.githubusercontent.com/flyandlure/datasets/master/housing.csv')
df.head().T
6 được đặt thành
df = pd.read_csv('https://raw.githubusercontent.com/flyandlure/datasets/master/housing.csv')
df.head().T
8 hoặc
df['median_income'].corr(df['median_house_value'])
0.
df['median_income'].corr(df['median_house_value'])
8Tham số
df['median_income'].corr(df['median_house_value'])
8 mới trong Pandas 1. 5. 0, vì vậy nó sẽ không hoạt động trên các phiên bản trước của Pandas. Tham số này xác định có chỉ tính hệ số tương quan trên các cột số hay không. Nếu đặt thành
df = pd.read_csv('https://raw.githubusercontent.com/flyandlure/datasets/master/housing.csv')
df.head().T
90, chỉ các cột số sẽ được sử dụng để tính hệ số tương quan. Nếu đặt thành
df = pd.read_csv('https://raw.githubusercontent.com/flyandlure/datasets/master/housing.csv')
df.head().T
91, tất cả các cột sẽ được dùng để tính hệ số tương quan. Mặc định là
df = pd.read_csv('https://raw.githubusercontent.com/flyandlure/datasets/master/housing.csv')
df.head().T
90. Trong một bản phát hành trong tương lai, giá trị của
df['median_income'].corr(df['median_house_value'])
8 sẽ thay đổi thành
df = pd.read_csv('https://raw.githubusercontent.com/flyandlure/datasets/master/housing.csv')
df.head().T
91, vì vậy nếu bạn không đặt giá trị này thì hiện tại bạn sẽ nhận được cảnh báo này. "Cảnh Báo Tương Lai. Giá trị mặc định của numeric_only trong DataFrame. Corr không được dùng nữa. Trong phiên bản tương lai, nó sẽ mặc định là Sai. Chỉ chọn các cột hợp lệ hoặc chỉ định giá trị của numeric_only để tắt cảnh báo này. " Đi qua
df = pd.read_csv('https://raw.githubusercontent.com/flyandlure/datasets/master/housing.csv')
df.head().T
95 sẽ sửa nó

Giải thích hệ số tương quan của Pearson

Khi sử dụng

df = pd.read_csv('https://raw.githubusercontent.com/flyandlure/datasets/master/housing.csv')
df.head().T
96 hoặc chỉ
df = pd.read_csv('https://raw.githubusercontent.com/flyandlure/datasets/master/housing.csv')
df.head().T
1, vì
df = pd.read_csv('https://raw.githubusercontent.com/flyandlure/datasets/master/housing.csv')
df.head().T
98 là mặc định, ma trận tương quan kết quả sẽ có giá trị cho mỗi cặp cột trong Khung dữ liệu ban đầu

Giá trị sẽ là một số từ -1 đến 1, trong đó 1 là mối quan hệ tuyến tính dương hoàn hảo, 0 không phải là mối quan hệ tuyến tính và -1 là mối quan hệ tuyến tính âm hoàn hảo. Các tác giả khác nhau sử dụng các cách giải thích hơi khác nhau về các hệ số, nhưng nhìn chung chúng rất giống với những cách giải thích bên dưới

Giá trị r của Pearson Độ mạnh của mối quan hệ0Không có mối quan hệ tuyến tính0. 1 đến 0. 3Mối quan hệ tuyến tính yếu0. 3 đến 0. 5Mối quan hệ tuyến tính vừa phải0. 5 đến 0. 7Mối quan hệ tuyến tính chặt chẽ0. 7 đến 1 Mối quan hệ tuyến tính rất mạnh-0. 1 đến -0. 3Mối quan hệ tuyến tính tiêu cực yếu-0. 3 đến -0. 5Mối quan hệ tuyến tính tiêu cực vừa phải-0. 5 đến -0. 7Mối quan hệ tuyến tính tiêu cực mạnh mẽ-0. 7 đến -1 Mối quan hệ tuyến tính tiêu cực rất mạnh

Tải các gói

Để bắt đầu, hãy mở sổ ghi chép Jupyter mới và nhập thư viện Pandas. Bạn chỉ cần điều này để tính toán các hệ số tương quan trong Pandas, nhưng để đề cập đến một số chủ đề nâng cao hơn, chúng tôi cũng sẽ nhập các gói trực quan hóa dữ liệu Matplotlib và Seaborn và gói phân tích thống kê Scipy

df = pd.read_csv('https://raw.githubusercontent.com/flyandlure/datasets/master/housing.csv')
df.head().T
8

Nhập tập dữ liệu

Sau đó, tạo tập dữ liệu giả có mối quan hệ tuyến tính giữa các biến hoặc nhập tập dữ liệu vào Pandas từ tệp CSV. Tôi đang sử dụng tập dữ liệu giá nhà vì tập dữ liệu này chứa một số biến tương quan

df = pd.read_csv('https://raw.githubusercontent.com/flyandlure/datasets/master/housing.csv')
df.head().T

01234kinh độ-122. 23-122. 22-122. 24-122. 25-122. 25vĩ độ37. 8837. 8637. 8537. 8537. 85housing_median_age41. 021. 052. 052. 052. 0total_rooms880. 07099. 01467. 01274. 01627. 0total_bed129. 01106. 0190. 0235. 0280. 0dân số322. 02401. 0496. 0558. 0565. 0hộ126. 01138. 0177. 0219. 0259. 0trung_bình_thu_nhập8. 32528. 30147. 25745. 64313. 8462median_house_value452600. 0358500. 0352100. 0341300. 0342200. 0ocean_proximityGẦN VỊNH BAYGẦN VỊNH BAYN GẦN VỊNH BAY

Tính tương quan Pearson cho một cặp cột

Để tính tương quan Pearson cho một cặp cột, bạn có thể thêm phương thức

df = pd.read_csv('https://raw.githubusercontent.com/flyandlure/datasets/master/housing.csv')
df.head().T
99 vào cột đầu tiên và chuyển cột thứ hai làm đối số. Nếu chúng tôi làm điều này cho các cột
df = pd.read_csv('https://raw.githubusercontent.com/flyandlure/datasets/master/housing.csv')
df.head().T
10 và
df = pd.read_csv('https://raw.githubusercontent.com/flyandlure/datasets/master/housing.csv')
df.head().T
11, chúng tôi sẽ nhận lại PCC hoặc r bằng 0. 6880, theo diễn giải của chúng tôi trong bảng tra cứu biểu thị mối tương quan tuyến tính mạnh. Điều đó có nghĩa là, các mẫu có
df = pd.read_csv('https://raw.githubusercontent.com/flyandlure/datasets/master/housing.csv')
df.head().T
10 cao hơn thường có
df = pd.read_csv('https://raw.githubusercontent.com/flyandlure/datasets/master/housing.csv')
df.head().T
11 cao hơn

df['median_income'].corr(df['median_house_value'])

Tính tương quan Pearson cho tất cả các cột trong khung dữ liệu

Để tính hệ số tương quan Pearson cho mọi cặp giá trị trong khung dữ liệu, bạn chỉ cần thêm phương thức

df = pd.read_csv('https://raw.githubusercontent.com/flyandlure/datasets/master/housing.csv')
df.head().T
1 vào cuối đối tượng khung dữ liệu. Khung dữ liệu hoặc ma trận kết quả sẽ có hệ số tương quan cho mọi cặp cột trong khung dữ liệu. Để tránh nhận được một
df = pd.read_csv('https://raw.githubusercontent.com/flyandlure/datasets/master/housing.csv')
df.head().T
15, bạn sẽ muốn đặt
df = pd.read_csv('https://raw.githubusercontent.com/flyandlure/datasets/master/housing.csv')
df.head().T
95 trong phương thức
df = pd.read_csv('https://raw.githubusercontent.com/flyandlure/datasets/master/housing.csv')
df.head().T
1

df = pd.read_csv('https://raw.githubusercontent.com/flyandlure/datasets/master/housing.csv')
df.head().T
9

longitudelatitudehousing_median_agetotal_roomstotal_bedroomspopulationhouseholdsmedian_incomemedian_house_valuelongitude1. 000000-0. 924664-0. 1081970. 0445680. 0696080. 0997730. 055310-0. 015176-0. 045967latitude-0. 9246641. 0000000. 011173-0. 036100-0. 066983-0. 108785-0. 071035-0. 079809-0. 144160housing_median_age-0. 1081970. 0111731. 000000-0. 361262-0. 320451-0. 296244-0. 302916-0. 1190340. 105623total_rooms0. 044568-0. 036100-0. 3612621. 0000000. 9303800. 8571260. 9184840. 1980500. 134153total_ bedrooms0. 069608-0. 066983-0. 3204510. 9303801. 0000000. 8777470. 979728-0. 0077230. 049686dân số0. 099773-0. 108785-0. 2962440. 8571260. 8777471. 0000000. 9072220. 004834-0. 024650hộ gia đình0. 055310-0. 071035-0. 3029160. 9184840. 9797280. 9072221. 0000000. 0130330. 065843median_ income-0. 015176-0. 079809-0. 1190340. 198050-0. 0077230. 0048340. 0130331. 0000000. 688075median_house_value-0. 045967-0. 1441600. 1056230. 1341530. 049686-0. 0246500. 0658430. 6880751. 000000

Trực quan hóa các hệ số tương quan với bản đồ nhiệt

Khi kiểm tra tập dữ liệu, việc hình dung các mối tương quan bằng Seaborn hoặc thư viện trực quan hóa dữ liệu tương tự thường dễ dàng hơn. Trực quan hóa các mối tương quan thông qua bản đồ nhiệt là kỹ thuật ưa thích của tôi và được thực hiện dễ dàng bằng cách chỉ sử dụng hàm Seaborn và hàm Matplotlib để điều chỉnh kích thước hình

df = pd.read_csv('https://raw.githubusercontent.com/flyandlure/datasets/master/housing.csv')
df.head().T
1

Làm thế nào để bạn tìm thấy hệ số tương quan của một khung dữ liệu trong python?

Trực quan hóa mối tương quan giữa các cặp cột

Có nhiều cách khác nhau để hình dung mối tương quan giữa các cặp biến. Một cách nhanh chóng để xem các mối tương quan của một cặp đơn lẻ là sử dụng hàm Seaborn

df = pd.read_csv('https://raw.githubusercontent.com/flyandlure/datasets/master/housing.csv')
df.head().T
18. Điều này có ba đối số bao gồm các cột
df = pd.read_csv('https://raw.githubusercontent.com/flyandlure/datasets/master/housing.csv')
df.head().T
19 và
df = pd.read_csv('https://raw.githubusercontent.com/flyandlure/datasets/master/housing.csv')
df.head().T
40 mà bạn muốn vẽ và
df = pd.read_csv('https://raw.githubusercontent.com/flyandlure/datasets/master/housing.csv')
df.head().T
41 từ khung dữ liệu

df = pd.read_csv('https://raw.githubusercontent.com/flyandlure/datasets/master/housing.csv')
df.head().T
4

df = pd.read_csv('https://raw.githubusercontent.com/flyandlure/datasets/master/housing.csv')
df.head().T
7

Làm thế nào để bạn tìm thấy hệ số tương quan của một khung dữ liệu trong python?

Tính ý nghĩa thống kê của hệ số tương quan

Để xác định xem hệ số tương quan có ý nghĩa thống kê hay không, bạn có thể sử dụng phương pháp

df = pd.read_csv('https://raw.githubusercontent.com/flyandlure/datasets/master/housing.csv')
df.head().T
42 từ
df = pd.read_csv('https://raw.githubusercontent.com/flyandlure/datasets/master/housing.csv')
df.head().T
43. Hàm trả về này hoạt động giống như hàm Pandas
df = pd.read_csv('https://raw.githubusercontent.com/flyandlure/datasets/master/housing.csv')
df.head().T
1, ở chỗ nó cũng trả về hệ số tương quan, nhưng điều quan trọng là nó cung cấp giá trị p mà Pandas không có

Giá trị p là xác suất hệ số tương quan không có ý nghĩa thống kê. Nếu giá trị p nhỏ hơn 0. 05 thì hệ số tương quan có ý nghĩa thống kê. Ta nhận được giá trị p rất thấp nên hệ số tương quan có ý nghĩa thống kê

df = pd.read_csv('https://raw.githubusercontent.com/flyandlure/datasets/master/housing.csv')
df.head().T
1

df = pd.read_csv('https://raw.githubusercontent.com/flyandlure/datasets/master/housing.csv')
df.head().T
2

Ngược lại, nếu bạn sử dụng scipy để tính toán hệ số tương quan Pearson và giá trị p của các cột

df = pd.read_csv('https://raw.githubusercontent.com/flyandlure/datasets/master/housing.csv')
df.head().T
45 và
df = pd.read_csv('https://raw.githubusercontent.com/flyandlure/datasets/master/housing.csv')
df.head().T
11, bạn sẽ nhận được giá trị p cao hơn, cho thấy rằng kết quả không có ý nghĩa thống kê

Làm cách nào để tính hệ số tương quan trong Python?

Hệ số Tương quan Pearson có thể được tính bằng Python bằng cách sử dụng phương thức corrcoef() từ Numpy . Đầu vào cho chức năng này thường là một ma trận, giả sử có kích thước mxn , trong đó. Mỗi cột đại diện cho các giá trị của một biến ngẫu nhiên. Mỗi hàng đại diện cho một mẫu duy nhất của n biến ngẫu nhiên.

Corr() trong Python là gì?

Phương thức corr() tìm mối tương quan của từng cột trong DataFrame

Phương pháp nào được sử dụng để tính toán mối tương quan trên tất cả các tính năng trong Khung dữ liệu Pandas?

Ví dụ. Tính toán tương quan gấu trúc . corr() để tính cả ba hệ số tương quan.