Hướng dẫn how do you do correlation in python? - làm thế nào để bạn làm tương quan trong python?

Các hệ số tương quan định lượng liên kết giữa các biến hoặc tính năng của bộ dữ liệu. Những thống kê này có tầm quan trọng cao đối với khoa học và công nghệ, và Python có những công cụ tuyệt vời mà bạn có thể sử dụng để tính toán chúng. Các phương pháp tương quan SCIPY, NUMPY và PANDAS là nhanh chóng, toàn diện và được ghi chép rõ ràng. quantify the association between variables or features of a dataset. These statistics are of high importance for science and technology, and Python has great tools that you can use to calculate them. SciPy, NumPy, and Pandas correlation methods are fast, comprehensive, and well-documented.

Show

Trong hướng dẫn này, bạn sẽ học:

  • Những hệ số tương quan Pearson, Spearman và Kendall là gìcorrelation coefficients are
  • Cách sử dụng các chức năng tương quan Scipy, Numpy và Pandascorrelation functions
  • Cách trực quan hóa dữ liệu, đường hồi quy và ma trận tương quan với matplotlibvisualize data, regression lines, and correlation matrices with Matplotlib

Bạn sẽ bắt đầu với một lời giải thích về mối tương quan, sau đó xem ba ví dụ giới thiệu nhanh, và cuối cùng đi sâu vào các chi tiết về mối tương quan Numpy, Scipy và Pandas.

Tương quan

Thống kê và khoa học dữ liệu thường quan tâm đến mối quan hệ giữa hai hoặc nhiều biến (hoặc tính năng) của bộ dữ liệu. Mỗi điểm dữ liệu trong bộ dữ liệu là một quan sát và các tính năng là các thuộc tính hoặc thuộc tính của các quan sát đó.observation, and the features are the properties or attributes of those observations.

Mỗi bộ dữ liệu bạn làm việc với sử dụng các biến và quan sát. Ví dụ, bạn có thể quan tâm đến việc hiểu những điều sau đây:

  • Làm thế nào chiều cao của các cầu thủ bóng rổ có liên quan đến độ chính xác của họ
  • Cho dù có mối quan hệ giữa kinh nghiệm làm việc và lương của nhân viên
  • Sự phụ thuộc toán học nào tồn tại giữa mật độ dân số và tổng sản phẩm quốc nội của các quốc gia khác nhau

Trong các ví dụ trên, chiều cao, độ chính xác chụp, nhiều năm kinh nghiệm, tiền lương, mật độ dân số và tổng sản phẩm quốc nội là các tính năng hoặc biến số. Dữ liệu liên quan đến từng người chơi, nhân viên và mỗi quốc gia là những quan sát.

Khi dữ liệu được biểu diễn dưới dạng bảng, các hàng của bảng đó thường là các quan sát, trong khi các cột là các tính năng. Hãy xem bảng nhân viên này:

TênSố năm kinh nghiệmMức lương hàng năm
Ann30 120,000
Cướp21 105,000
Tom19 90,000
Ivy10 82,000

Trong bảng này, mỗi hàng đại diện cho một quan sát hoặc dữ liệu về một nhân viên (Ann, Rob, Tom hoặc Ivy). Mỗi cột hiển thị một thuộc tính hoặc tính năng (tên, kinh nghiệm hoặc tiền lương) cho tất cả các nhân viên.

Nếu bạn phân tích bất kỳ hai tính năng nào của bộ dữ liệu, thì bạn sẽ tìm thấy một số loại tương quan giữa hai tính năng đó. Xem xét các số liệu sau:correlation between those two features. Consider the following figures:

Hướng dẫn how do you do correlation in python? - làm thế nào để bạn làm tương quan trong python?

Mỗi lô này cho thấy một trong ba hình thức tương quan khác nhau:

  1. Tương quan âm (chấm đỏ): Trong biểu đồ bên trái, các giá trị y có xu hướng giảm khi các giá trị x tăng. Điều này cho thấy mối tương quan âm mạnh, xảy ra khi các giá trị lớn của một tính năng tương ứng với các giá trị nhỏ của cái kia và ngược lại. In the plot on the left, the y values tend to decrease as the x values increase. This shows strong negative correlation, which occurs when large values of one feature correspond to small values of the other, and vice versa.

  2. Yếu hoặc không có mối tương quan (các chấm màu xanh lá cây): cốt truyện ở giữa cho thấy không có xu hướng rõ ràng. Đây là một hình thức tương quan yếu, xảy ra khi mối liên hệ giữa hai tính năng không rõ ràng hoặc khó có thể quan sát được. The plot in the middle shows no obvious trend. This is a form of weak correlation, which occurs when an association between two features is not obvious or is hardly observable.

  3. Tương quan dương (các chấm màu xanh): Trong biểu đồ bên phải, các giá trị y có xu hướng tăng khi các giá trị x tăng. Điều này minh họa mối tương quan tích cực mạnh mẽ, xảy ra khi các giá trị lớn của một tính năng tương ứng với các giá trị lớn của cái kia và ngược lại. In the plot on the right, the y values tend to increase as the x values increase. This illustrates strong positive correlation, which occurs when large values of one feature correspond to large values of the other, and vice versa.

Hình tiếp theo biểu thị dữ liệu từ bảng nhân viên ở trên:

Hướng dẫn how do you do correlation in python? - làm thế nào để bạn làm tương quan trong python?

Mối tương quan giữa kinh nghiệm và tiền lương là tích cực vì kinh nghiệm cao hơn tương ứng với mức lương lớn hơn và ngược lại.

Mối tương quan được kết nối chặt chẽ với các đại lượng thống kê khác như giá trị trung bình, độ lệch chuẩn, phương sai và hiệp phương sai. Nếu bạn muốn tìm hiểu thêm về các đại lượng này và cách tính chúng bằng Python, thì hãy xem số liệu thống kê mô tả với Python.

Có một số thống kê mà bạn có thể sử dụng để định lượng tương quan. Trong hướng dẫn này, bạn sẽ tìm hiểu về ba hệ số tương quan:

  • Pearson từ r
  • Spearman sườn Rho
  • Kendall từ Tau

Các biện pháp hệ số Pearson sườn có mối tương quan tuyến tính, trong khi các hệ số Spearman và Kendall so sánh các cấp bậc của dữ liệu. Có một số chức năng và phương pháp tương quan Numpy, Scipy và Gandas mà bạn có thể sử dụng để tính toán các hệ số này. Bạn cũng có thể sử dụng matplotlib để minh họa thuận tiện cho kết quả.

Ví dụ: Tính toán tương quan numpy

Numpy có nhiều thói quen thống kê, bao gồm

>>> scipy.stats.pearsonr(x, y)[0]    # Pearson's r
0.7586402890911869
>>> scipy.stats.spearmanr(x, y)[0]   # Spearman's rho
0.9757575757575757
>>> scipy.stats.kendalltau(x, y)[0]  # Kendall's tau
0.911111111111111
6, trả về một ma trận của các hệ số tương quan Pearson. Bạn có thể bắt đầu bằng cách nhập Numpy và xác định hai mảng Numpy. Đây là những trường hợp của lớp
>>> scipy.stats.pearsonr(x, y)[0]    # Pearson's r
0.7586402890911869
>>> scipy.stats.spearmanr(x, y)[0]   # Spearman's rho
0.9757575757575757
>>> scipy.stats.kendalltau(x, y)[0]  # Kendall's tau
0.911111111111111
7. Gọi chúng là
>>> scipy.stats.pearsonr(x, y)[0]    # Pearson's r
0.7586402890911869
>>> scipy.stats.spearmanr(x, y)[0]   # Spearman's rho
0.9757575757575757
>>> scipy.stats.kendalltau(x, y)[0]  # Kendall's tau
0.911111111111111
8 và
>>> scipy.stats.pearsonr(x, y)[0]    # Pearson's r
0.7586402890911869
>>> scipy.stats.spearmanr(x, y)[0]   # Spearman's rho
0.9757575757575757
>>> scipy.stats.kendalltau(x, y)[0]  # Kendall's tau
0.911111111111111
9:

>>>

>>> import numpy as np
>>> x = np.arange(10, 20)
>>> x
array([10, 11, 12, 13, 14, 15, 16, 17, 18, 19])
>>> y = np.array([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
>>> y
array([ 2,  1,  4,  5,  8, 12, 18, 25, 96, 48])

Tại đây, bạn sử dụng

>>> scipy.stats.spearmanr(x, y).correlation   # Spearman's rho
0.9757575757575757
>>> scipy.stats.kendalltau(x, y).correlation  # Kendall's tau
0.911111111111111
0 để tạo một mảng
>>> scipy.stats.pearsonr(x, y)[0]    # Pearson's r
0.7586402890911869
>>> scipy.stats.spearmanr(x, y)[0]   # Spearman's rho
0.9757575757575757
>>> scipy.stats.kendalltau(x, y)[0]  # Kendall's tau
0.911111111111111
8 số nguyên giữa 10 (bao gồm) và 20 (độc quyền). Sau đó, bạn sử dụng
>>> scipy.stats.spearmanr(x, y).correlation   # Spearman's rho
0.9757575757575757
>>> scipy.stats.kendalltau(x, y).correlation  # Kendall's tau
0.911111111111111
2 để tạo một mảng thứ hai
>>> scipy.stats.pearsonr(x, y)[0]    # Pearson's r
0.7586402890911869
>>> scipy.stats.spearmanr(x, y)[0]   # Spearman's rho
0.9757575757575757
>>> scipy.stats.kendalltau(x, y)[0]  # Kendall's tau
0.911111111111111
9 chứa các số nguyên tùy ý.

Khi bạn có hai mảng có cùng độ dài, bạn có thể gọi

>>> scipy.stats.pearsonr(x, y)[0]    # Pearson's r
0.7586402890911869
>>> scipy.stats.spearmanr(x, y)[0]   # Spearman's rho
0.9757575757575757
>>> scipy.stats.kendalltau(x, y)[0]  # Kendall's tau
0.911111111111111
6 với cả hai mảng làm đối số:

>>>

>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869

>>> scipy.stats.spearmanr(x, y).correlation   # Spearman's rho
0.9757575757575757
>>> scipy.stats.kendalltau(x, y).correlation  # Kendall's tau
0.911111111111111
5 Trả về ma trận tương quan, đây là một mảng hai chiều với các hệ số tương quan. Tại đây, một phiên bản đơn giản hóa của ma trận tương quan bạn vừa tạo:

        x       y

x    1.00    0.76
y    0.76    1.00

Các giá trị trên đường chéo chính của ma trận tương quan (phía trên bên trái và dưới bên phải) bằng 1. Giá trị bên trái trên tương ứng với hệ số tương quan của

>>> scipy.stats.pearsonr(x, y)[0]    # Pearson's r
0.7586402890911869
>>> scipy.stats.spearmanr(x, y)[0]   # Spearman's rho
0.9757575757575757
>>> scipy.stats.kendalltau(x, y)[0]  # Kendall's tau
0.911111111111111
8 và
>>> scipy.stats.pearsonr(x, y)[0]    # Pearson's r
0.7586402890911869
>>> scipy.stats.spearmanr(x, y)[0]   # Spearman's rho
0.9757575757575757
>>> scipy.stats.kendalltau(x, y)[0]  # Kendall's tau
0.911111111111111
8, trong khi giá trị bên phải dưới là hệ số tương quan cho
>>> scipy.stats.pearsonr(x, y)[0]    # Pearson's r
0.7586402890911869
>>> scipy.stats.spearmanr(x, y)[0]   # Spearman's rho
0.9757575757575757
>>> scipy.stats.kendalltau(x, y)[0]  # Kendall's tau
0.911111111111111
9 và
>>> scipy.stats.pearsonr(x, y)[0]    # Pearson's r
0.7586402890911869
>>> scipy.stats.spearmanr(x, y)[0]   # Spearman's rho
0.9757575757575757
>>> scipy.stats.kendalltau(x, y)[0]  # Kendall's tau
0.911111111111111
9. Chúng luôn bằng 1.

Tuy nhiên, những gì bạn thường cần là các giá trị bên trái và trên bên phải của ma trận tương quan. Các giá trị này bằng nhau và cả hai đại diện cho hệ số tương quan Pearson cho

>>> scipy.stats.pearsonr(x, y)[0]    # Pearson's r
0.7586402890911869
>>> scipy.stats.spearmanr(x, y)[0]   # Spearman's rho
0.9757575757575757
>>> scipy.stats.kendalltau(x, y)[0]  # Kendall's tau
0.911111111111111
8 và
>>> scipy.stats.pearsonr(x, y)[0]    # Pearson's r
0.7586402890911869
>>> scipy.stats.spearmanr(x, y)[0]   # Spearman's rho
0.9757575757575757
>>> scipy.stats.kendalltau(x, y)[0]  # Kendall's tau
0.911111111111111
9. Trong trường hợp này, nó có khoảng 0,76.Pearson correlation coefficient for
>>> scipy.stats.pearsonr(x, y)[0]    # Pearson's r
0.7586402890911869
>>> scipy.stats.spearmanr(x, y)[0]   # Spearman's rho
0.9757575757575757
>>> scipy.stats.kendalltau(x, y)[0]  # Kendall's tau
0.911111111111111
8 and
>>> scipy.stats.pearsonr(x, y)[0]    # Pearson's r
0.7586402890911869
>>> scipy.stats.spearmanr(x, y)[0]   # Spearman's rho
0.9757575757575757
>>> scipy.stats.kendalltau(x, y)[0]  # Kendall's tau
0.911111111111111
9. In this case, it’s approximately 0.76.

Hình này cho thấy các điểm dữ liệu và các hệ số tương quan cho ví dụ trên:

Hướng dẫn how do you do correlation in python? - làm thế nào để bạn làm tương quan trong python?

Các hình vuông màu đỏ là các điểm dữ liệu. Như bạn có thể thấy, hình cũng hiển thị các giá trị của ba hệ số tương quan.

Ví dụ: Tính toán tương quan SCIPY

Scipy cũng có nhiều thói quen thống kê có trong

>>> r, p = scipy.stats.pearsonr(x, y)
>>> r
0.7586402890911869
>>> p
0.010964341301680829
2. Bạn có thể sử dụng các phương thức sau để tính toán ba hệ số tương quan bạn đã thấy trước đó:

  • >>> r, p = scipy.stats.pearsonr(x, y)
    >>> r
    0.7586402890911869
    >>> p
    0.010964341301680829
    
    3
  • >>> r, p = scipy.stats.pearsonr(x, y)
    >>> r
    0.7586402890911869
    >>> p
    0.010964341301680829
    
    4
  • >>> r, p = scipy.stats.pearsonr(x, y)
    >>> r
    0.7586402890911869
    >>> p
    0.010964341301680829
    
    5

Tại đây, cách bạn sẽ sử dụng các chức năng này trong Python:

>>>

>>> import numpy as np
>>> import scipy.stats
>>> x = np.arange(10, 20)
>>> y = np.array([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
>>> scipy.stats.pearsonr(x, y)    # Pearson's r
(0.7586402890911869, 0.010964341301680832)
>>> scipy.stats.spearmanr(x, y)   # Spearman's rho
SpearmanrResult(correlation=0.9757575757575757, pvalue=1.4675461874042197e-06)
>>> scipy.stats.kendalltau(x, y)  # Kendall's tau
KendalltauResult(correlation=0.911111111111111, pvalue=2.9761904761904762e-05)

>>> scipy.stats.spearmanr(x, y).correlation   # Spearman's rho
0.9757575757575757
>>> scipy.stats.kendalltau(x, y).correlation  # Kendall's tau
0.911111111111111
5 Trả về ma trận tương quan, đây là một mảng hai chiều với các hệ số tương quan. Tại đây, một phiên bản đơn giản hóa của ma trận tương quan bạn vừa tạo:

  1. Các giá trị trên đường chéo chính của ma trận tương quan (phía trên bên trái và dưới bên phải) bằng 1. Giá trị bên trái trên tương ứng với hệ số tương quan của
    >>> scipy.stats.pearsonr(x, y)[0]    # Pearson's r
    0.7586402890911869
    >>> scipy.stats.spearmanr(x, y)[0]   # Spearman's rho
    0.9757575757575757
    >>> scipy.stats.kendalltau(x, y)[0]  # Kendall's tau
    0.911111111111111
    
    8 và
    >>> scipy.stats.pearsonr(x, y)[0]    # Pearson's r
    0.7586402890911869
    >>> scipy.stats.spearmanr(x, y)[0]   # Spearman's rho
    0.9757575757575757
    >>> scipy.stats.kendalltau(x, y)[0]  # Kendall's tau
    0.911111111111111
    
    8, trong khi giá trị bên phải dưới là hệ số tương quan cho
    >>> scipy.stats.pearsonr(x, y)[0]    # Pearson's r
    0.7586402890911869
    >>> scipy.stats.spearmanr(x, y)[0]   # Spearman's rho
    0.9757575757575757
    >>> scipy.stats.kendalltau(x, y)[0]  # Kendall's tau
    0.911111111111111
    
    9 và
    >>> scipy.stats.pearsonr(x, y)[0]    # Pearson's r
    0.7586402890911869
    >>> scipy.stats.spearmanr(x, y)[0]   # Spearman's rho
    0.9757575757575757
    >>> scipy.stats.kendalltau(x, y)[0]  # Kendall's tau
    0.911111111111111
    
    9. Chúng luôn bằng 1.
  2. Tuy nhiên, những gì bạn thường cần là các giá trị bên trái và trên bên phải của ma trận tương quan. Các giá trị này bằng nhau và cả hai đại diện cho hệ số tương quan Pearson cho
    >>> scipy.stats.pearsonr(x, y)[0]    # Pearson's r
    0.7586402890911869
    >>> scipy.stats.spearmanr(x, y)[0]   # Spearman's rho
    0.9757575757575757
    >>> scipy.stats.kendalltau(x, y)[0]  # Kendall's tau
    0.911111111111111
    
    8 và
    >>> scipy.stats.pearsonr(x, y)[0]    # Pearson's r
    0.7586402890911869
    >>> scipy.stats.spearmanr(x, y)[0]   # Spearman's rho
    0.9757575757575757
    >>> scipy.stats.kendalltau(x, y)[0]  # Kendall's tau
    0.911111111111111
    
    9. Trong trường hợp này, nó có khoảng 0,76.

Hình này cho thấy các điểm dữ liệu và các hệ số tương quan cho ví dụ trên:p-value in statistical methods when you’re testing a hypothesis. The p-value is an important measure that requires in-depth knowledge of probability and statistics to interpret. To learn more about them, you can read about the basics or check out a data scientist’s explanation of p-values.

Các hình vuông màu đỏ là các điểm dữ liệu. Như bạn có thể thấy, hình cũng hiển thị các giá trị của ba hệ số tương quan.

>>>

>>> scipy.stats.pearsonr(x, y)[0]    # Pearson's r
0.7586402890911869
>>> scipy.stats.spearmanr(x, y)[0]   # Spearman's rho
0.9757575757575757
>>> scipy.stats.kendalltau(x, y)[0]  # Kendall's tau
0.911111111111111

Ví dụ: Tính toán tương quan SCIPY

>>>

>>> scipy.stats.spearmanr(x, y).correlation   # Spearman's rho
0.9757575757575757
>>> scipy.stats.kendalltau(x, y).correlation  # Kendall's tau
0.911111111111111

Scipy cũng có nhiều thói quen thống kê có trong

>>> r, p = scipy.stats.pearsonr(x, y)
>>> r
0.7586402890911869
>>> p
0.010964341301680829
2. Bạn có thể sử dụng các phương thức sau để tính toán ba hệ số tương quan bạn đã thấy trước đó:

Tại đây, cách bạn sẽ sử dụng các chức năng này trong Python:

>>>

>>> r, p = scipy.stats.pearsonr(x, y)
>>> r
0.7586402890911869
>>> p
0.010964341301680829

Lưu ý rằng các hàm này trả về các đối tượng chứa hai giá trị:

Hệ số tương quan

Giá trị p

>>>

>>> import pandas as pd
>>> x = pd.Series(range(10, 20))
>>> x
0    10
1    11
2    12
3    13
4    14
5    15
6    16
7    17
8    18
9    19
dtype: int64
>>> y = pd.Series([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
>>> y
0     2
1     1
2     4
3     5
4     8
5    12
6    18
7    25
8    96
9    48
dtype: int64
>>> x.corr(y)                     # Pearson's r
0.7586402890911867
>>> y.corr(x)
0.7586402890911869
>>> x.corr(y, method='spearman')  # Spearman's rho
0.9757575757575757
>>> x.corr(y, method='kendall')   # Kendall's tau
0.911111111111111

Bạn sử dụng giá trị p trong các phương pháp thống kê khi bạn kiểm tra một giả thuyết. Giá trị p là một biện pháp quan trọng đòi hỏi kiến ​​thức chuyên sâu về xác suất và số liệu thống kê để giải thích. Để tìm hiểu thêm về chúng, bạn có thể đọc về những điều cơ bản hoặc kiểm tra một nhà khoa học dữ liệu giải thích về giá trị p.

  • >>> import pandas as pd
    >>> x = pd.Series(range(10, 20))
    >>> x
    0    10
    1    11
    2    12
    3    13
    4    14
    5    15
    6    16
    7    17
    8    18
    9    19
    dtype: int64
    >>> y = pd.Series([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
    >>> y
    0     2
    1     1
    2     4
    3     5
    4     8
    5    12
    6    18
    7    25
    8    96
    9    48
    dtype: int64
    >>> x.corr(y)                     # Pearson's r
    0.7586402890911867
    >>> y.corr(x)
    0.7586402890911869
    >>> x.corr(y, method='spearman')  # Spearman's rho
    0.9757575757575757
    >>> x.corr(y, method='kendall')   # Kendall's tau
    0.911111111111111
    
    5
  • >>> import pandas as pd
    >>> x = pd.Series(range(10, 20))
    >>> x
    0    10
    1    11
    2    12
    3    13
    4    14
    5    15
    6    16
    7    17
    8    18
    9    19
    dtype: int64
    >>> y = pd.Series([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
    >>> y
    0     2
    1     1
    2     4
    3     5
    4     8
    5    12
    6    18
    7    25
    8    96
    9    48
    dtype: int64
    >>> x.corr(y)                     # Pearson's r
    0.7586402890911867
    >>> y.corr(x)
    0.7586402890911869
    >>> x.corr(y, method='spearman')  # Spearman's rho
    0.9757575757575757
    >>> x.corr(y, method='kendall')   # Kendall's tau
    0.911111111111111
    
    6
  • >>> import pandas as pd
    >>> x = pd.Series(range(10, 20))
    >>> x
    0    10
    1    11
    2    12
    3    13
    4    14
    5    15
    6    16
    7    17
    8    18
    9    19
    dtype: int64
    >>> y = pd.Series([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
    >>> y
    0     2
    1     1
    2     4
    3     5
    4     8
    5    12
    6    18
    7    25
    8    96
    9    48
    dtype: int64
    >>> x.corr(y)                     # Pearson's r
    0.7586402890911867
    >>> y.corr(x)
    0.7586402890911869
    >>> x.corr(y, method='spearman')  # Spearman's rho
    0.9757575757575757
    >>> x.corr(y, method='kendall')   # Kendall's tau
    0.911111111111111
    
    7
  • Bạn có thể trích xuất các giá trị p và các hệ số tương quan với các chỉ số của chúng, như các mục của bộ dữ liệu:

Bạn cũng có thể sử dụng ký hiệu DOT cho các hệ số Spearman và Kendall:

Ký hiệu DOT dài hơn, nhưng nó cũng dễ đọc hơn và tự giải thích hơn.

Nếu bạn muốn có được hệ số tương quan Pearson và giá trị p cùng một lúc, thì bạn có thể giải nén giá trị trả về: measures the proximity of the mathematical relationship between variables or dataset features to a linear function. If the relationship between the two features is closer to some linear function, then their linear correlation is stronger and the absolute value of the correlation coefficient is higher.

Cách tiếp cận này khai thác Python giải nén và thực tế là >>> r, p = scipy.stats.pearsonr(x, y) >>> r 0.7586402890911869 >>> p 0.010964341301680829 3 trả về một tuple với hai số liệu thống kê này. Bạn cũng có thể sử dụng kỹ thuật này với >>> r, p = scipy.stats.pearsonr(x, y) >>> r 0.7586402890911869 >>> p 0.010964341301680829 4 và >>> r, p = scipy.stats.pearsonr(x, y) >>> r 0.7586402890911869 >>> p 0.010964341301680829 5, như bạn sẽ thấy sau này.

Ví dụ: Tính toán tương quan gấu trúcx and y. Each feature has n values, so x and y are n-tuples. Say that the first value x₁ from x corresponds to the first value y₁ from y, the second value x₂ from x to the second value y₂ from y, and so on. Then, there are n pairs of corresponding values: (x₁, y₁), (x₂, y₂), and so on. Each of these x-y pairs represents a single observation.

Pandas, trong một số trường hợp, thuận tiện hơn so với numpy và scipy để tính toán số liệu thống kê. Nó cung cấp các phương pháp thống kê cho các trường hợp

>>> r, p = scipy.stats.pearsonr(x, y)
>>> r
0.7586402890911869
>>> p
0.010964341301680829
9 và
>>> import pandas as pd
>>> x = pd.Series(range(10, 20))
>>> x
0    10
1    11
2    12
3    13
4    14
5    15
6    16
7    17
8    18
9    19
dtype: int64
>>> y = pd.Series([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
>>> y
0     2
1     1
2     4
3     5
4     8
5    12
6    18
7    25
8    96
9    48
dtype: int64
>>> x.corr(y)                     # Pearson's r
0.7586402890911867
>>> y.corr(x)
0.7586402890911869
>>> x.corr(y, method='spearman')  # Spearman's rho
0.9757575757575757
>>> x.corr(y, method='kendall')   # Kendall's tau
0.911111111111111
0. Ví dụ: đưa ra hai đối tượng
>>> r, p = scipy.stats.pearsonr(x, y)
>>> r
0.7586402890911869
>>> p
0.010964341301680829
9 có cùng số lượng mục, bạn có thể gọi
>>> import pandas as pd
>>> x = pd.Series(range(10, 20))
>>> x
0    10
1    11
2    12
3    13
4    14
5    15
6    16
7    17
8    18
9    19
dtype: int64
>>> y = pd.Series([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
>>> y
0     2
1     1
2     4
3     5
4     8
5    12
6    18
7    25
8    96
9    48
dtype: int64
>>> x.corr(y)                     # Pearson's r
0.7586402890911867
>>> y.corr(x)
0.7586402890911869
>>> x.corr(y, method='spearman')  # Spearman's rho
0.9757575757575757
>>> x.corr(y, method='kendall')   # Kendall's tau
0.911111111111111
2 trên một trong số chúng với đối số khác là đối số đầu tiên:Pearson (product-moment) correlation coefficient is a measure of the linear relationship between two features. It’s the ratio of the covariance of x and y to the product of their standard deviations. It’s often denoted with the letter r and called Pearson’s r. You can express this value mathematically with this equation:

Ở đây, bạn sử dụng

>>> import pandas as pd
>>> x = pd.Series(range(10, 20))
>>> x
0    10
1    11
2    12
3    13
4    14
5    15
6    16
7    17
8    18
9    19
dtype: int64
>>> y = pd.Series([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
>>> y
0     2
1     1
2     4
3     5
4     8
5    12
6    18
7    25
8    96
9    48
dtype: int64
>>> x.corr(y)                     # Pearson's r
0.7586402890911867
>>> y.corr(x)
0.7586402890911869
>>> x.corr(y, method='spearman')  # Spearman's rho
0.9757575757575757
>>> x.corr(y, method='kendall')   # Kendall's tau
0.911111111111111
2 để tính toán cả ba hệ số tương quan. Bạn xác định thống kê mong muốn với tham số
>>> import pandas as pd
>>> x = pd.Series(range(10, 20))
>>> x
0    10
1    11
2    12
3    13
4    14
5    15
6    16
7    17
8    18
9    19
dtype: int64
>>> y = pd.Series([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
>>> y
0     2
1     1
2     4
3     5
4     8
5    12
6    18
7    25
8    96
9    48
dtype: int64
>>> x.corr(y)                     # Pearson's r
0.7586402890911867
>>> y.corr(x)
0.7586402890911869
>>> x.corr(y, method='spearman')  # Spearman's rho
0.9757575757575757
>>> x.corr(y, method='kendall')   # Kendall's tau
0.911111111111111
4, có thể đảm nhận một trong một số giá trị:

một người có thể gọi đượcx and y are denoted with mean(x) and mean(y). This formula shows that if larger x values tend to correspond to larger y values and vice versa, then r is positive. On the other hand, if larger x values are mostly associated with smaller y values and vice versa, then r is negative.

Dưới đây là một số sự thật quan trọng về hệ số tương quan Pearson:

  • Hệ số tương quan Pearson có thể có bất kỳ giá trị thực nào trong phạm vi −1 r ≤ 1.

  • Giá trị tối đa r = 1 tương ứng với trường hợp có mối quan hệ tuyến tính tích cực hoàn hảo giữa X và Y. Nói cách khác, các giá trị x lớn hơn tương ứng với các giá trị y lớn hơn và ngược lại.x and y. In other words, larger x values correspond to larger y values and vice versa.

  • Giá trị r> 0 cho thấy mối tương quan dương giữa x và y.x and y.

  • Giá trị r = 0 tương ứng với trường hợp mà không có mối quan hệ tuyến tính giữa x và y.x and y.

  • Giá trị r <0 biểu thị mối tương quan âm giữa x và y.x and y.

  • Giá trị tối thiểu r = 1 tương ứng với trường hợp khi có mối quan hệ tuyến tính âm hoàn hảo giữa X và Y. Nói cách khác, các giá trị x lớn hơn tương ứng với các giá trị y nhỏ hơn và ngược lại.x and y. In other words, larger x values correspond to smaller y values and vice versa.

Các sự kiện trên có thể được tóm tắt trong bảng sau:

Giá trị Pearson từ rMối tương quan giữa x và yx and y
bằng 1Mối quan hệ tuyến tính tích cực hoàn hảo
lớn hơn 0Tương quan tích cực
bằng 0Không có mối quan hệ tuyến tính
nhỏ hơn 0Tương quan tiêu cực
bằng -1Mối quan hệ tuyến tính tiêu cực hoàn hảo

Nói tóm lại, giá trị tuyệt đối lớn hơn của R cho thấy mối tương quan mạnh hơn, gần với hàm tuyến tính hơn. Một giá trị tuyệt đối nhỏ hơn của r cho thấy mối tương quan yếu hơn.

Hồi quy tuyến tính: Thực hiện SCIPY

Hồi quy tuyến tính là quá trình tìm thấy chức năng tuyến tính càng gần càng tốt với mối quan hệ thực tế giữa các tính năng. Nói cách khác, bạn xác định chức năng tuyến tính mô tả đúng nhất mối liên hệ giữa các tính năng. Hàm tuyến tính này còn được gọi là đường hồi quy.

Bạn có thể thực hiện hồi quy tuyến tính với SCIPY. Bạn sẽ nhận được chức năng tuyến tính gần đúng nhất mối quan hệ giữa hai mảng, cũng như hệ số tương quan Pearson. Để bắt đầu, trước tiên bạn cần nhập thư viện và chuẩn bị một số dữ liệu để hoạt động:

>>>

>>> import numpy as np
>>> import scipy.stats
>>> x = np.arange(10, 20)
>>> y = np.array([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])

Ở đây, bạn nhập

>>> import pandas as pd
>>> x = pd.Series(range(10, 20))
>>> x
0    10
1    11
2    12
3    13
4    14
5    15
6    16
7    17
8    18
9    19
dtype: int64
>>> y = pd.Series([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
>>> y
0     2
1     1
2     4
3     5
4     8
5    12
6    18
7    25
8    96
9    48
dtype: int64
>>> x.corr(y)                     # Pearson's r
0.7586402890911867
>>> y.corr(x)
0.7586402890911869
>>> x.corr(y, method='spearman')  # Spearman's rho
0.9757575757575757
>>> x.corr(y, method='kendall')   # Kendall's tau
0.911111111111111
9 và
>>> r, p = scipy.stats.pearsonr(x, y)
>>> r
0.7586402890911869
>>> p
0.010964341301680829
2 và xác định các biến
>>> scipy.stats.pearsonr(x, y)[0]    # Pearson's r
0.7586402890911869
>>> scipy.stats.spearmanr(x, y)[0]   # Spearman's rho
0.9757575757575757
>>> scipy.stats.kendalltau(x, y)[0]  # Kendall's tau
0.911111111111111
8 và
>>> scipy.stats.pearsonr(x, y)[0]    # Pearson's r
0.7586402890911869
>>> scipy.stats.spearmanr(x, y)[0]   # Spearman's rho
0.9757575757575757
>>> scipy.stats.kendalltau(x, y)[0]  # Kendall's tau
0.911111111111111
9.

Bạn có thể sử dụng

>>> import numpy as np
>>> import scipy.stats
>>> x = np.arange(10, 20)
>>> y = np.array([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
3 để thực hiện hồi quy tuyến tính cho hai mảng có cùng độ dài. Bạn nên cung cấp các mảng làm đối số và nhận các đầu ra bằng cách sử dụng ký hiệu DOT:

>>>

>>> result = scipy.stats.linregress(x, y)
>>> result.slope
7.4363636363636365
>>> result.intercept
-85.92727272727274
>>> result.rvalue
0.7586402890911869
>>> result.pvalue
0.010964341301680825
>>> result.stderr
2.257878767543913

Ở đây, bạn nhập

>>> import pandas as pd
>>> x = pd.Series(range(10, 20))
>>> x
0    10
1    11
2    12
3    13
4    14
5    15
6    16
7    17
8    18
9    19
dtype: int64
>>> y = pd.Series([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
>>> y
0     2
1     1
2     4
3     5
4     8
5    12
6    18
7    25
8    96
9    48
dtype: int64
>>> x.corr(y)                     # Pearson's r
0.7586402890911867
>>> y.corr(x)
0.7586402890911869
>>> x.corr(y, method='spearman')  # Spearman's rho
0.9757575757575757
>>> x.corr(y, method='kendall')   # Kendall's tau
0.911111111111111
9 và
>>> r, p = scipy.stats.pearsonr(x, y)
>>> r
0.7586402890911869
>>> p
0.010964341301680829
2 và xác định các biến
>>> scipy.stats.pearsonr(x, y)[0]    # Pearson's r
0.7586402890911869
>>> scipy.stats.spearmanr(x, y)[0]   # Spearman's rho
0.9757575757575757
>>> scipy.stats.kendalltau(x, y)[0]  # Kendall's tau
0.911111111111111
8 và
>>> scipy.stats.pearsonr(x, y)[0]    # Pearson's r
0.7586402890911869
>>> scipy.stats.spearmanr(x, y)[0]   # Spearman's rho
0.9757575757575757
>>> scipy.stats.kendalltau(x, y)[0]  # Kendall's tau
0.911111111111111
9.

  • Bạn có thể sử dụng
    >>> import numpy as np
    >>> import scipy.stats
    >>> x = np.arange(10, 20)
    >>> y = np.array([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
    
    3 để thực hiện hồi quy tuyến tính cho hai mảng có cùng độ dài. Bạn nên cung cấp các mảng làm đối số và nhận các đầu ra bằng cách sử dụng ký hiệu DOT:
    the slope of the regression line
  • Đó là nó! Bạn đã hoàn thành hồi quy tuyến tính và nhận được kết quả sau: the intercept of the regression line
  • >>> import numpy as np
    >>> import scipy.stats
    >>> x = np.arange(10, 20)
    >>> y = np.array([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
    
    4: Độ dốc của đường hồi quy
    the p-value
  • >>> import numpy as np
    >>> import scipy.stats
    >>> x = np.arange(10, 20)
    >>> y = np.array([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
    
    5: Việc chặn đường hồi quy
    the standard error of the estimated gradient

>>> import numpy as np
>>> import scipy.stats
>>> x = np.arange(10, 20)
>>> y = np.array([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
6: Giá trị P

>>> import numpy as np
>>> import scipy.stats
>>> x = np.arange(10, 20)
>>> y = np.array([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
7: Lỗi tiêu chuẩn của gradient ước tính

>>>

>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
0

Ở đây, bạn nhập

>>> import pandas as pd
>>> x = pd.Series(range(10, 20))
>>> x
0    10
1    11
2    12
3    13
4    14
5    15
6    16
7    17
8    18
9    19
dtype: int64
>>> y = pd.Series([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
>>> y
0     2
1     1
2     4
3     5
4     8
5    12
6    18
7    25
8    96
9    48
dtype: int64
>>> x.corr(y)                     # Pearson's r
0.7586402890911867
>>> y.corr(x)
0.7586402890911869
>>> x.corr(y, method='spearman')  # Spearman's rho
0.9757575757575757
>>> x.corr(y, method='kendall')   # Kendall's tau
0.911111111111111
9 và
>>> r, p = scipy.stats.pearsonr(x, y)
>>> r
0.7586402890911869
>>> p
0.010964341301680829
2 và xác định các biến
>>> scipy.stats.pearsonr(x, y)[0]    # Pearson's r
0.7586402890911869
>>> scipy.stats.spearmanr(x, y)[0]   # Spearman's rho
0.9757575757575757
>>> scipy.stats.kendalltau(x, y)[0]  # Kendall's tau
0.911111111111111
8 và
>>> scipy.stats.pearsonr(x, y)[0]    # Pearson's r
0.7586402890911869
>>> scipy.stats.spearmanr(x, y)[0]   # Spearman's rho
0.9757575757575757
>>> scipy.stats.kendalltau(x, y)[0]  # Kendall's tau
0.911111111111111
9.

Bạn có thể sử dụng

>>> import numpy as np
>>> import scipy.stats
>>> x = np.arange(10, 20)
>>> y = np.array([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
3 để thực hiện hồi quy tuyến tính cho hai mảng có cùng độ dài. Bạn nên cung cấp các mảng làm đối số và nhận các đầu ra bằng cách sử dụng ký hiệu DOT:

  • >>> result = scipy.stats.linregress(x, y)
    >>> result.slope
    7.4363636363636365
    >>> result.intercept
    -85.92727272727274
    >>> result.rvalue
    0.7586402890911869
    >>> result.pvalue
    0.010964341301680825
    >>> result.stderr
    2.257878767543913
    
    6
  • >>> result = scipy.stats.linregress(x, y)
    >>> result.slope
    7.4363636363636365
    >>> result.intercept
    -85.92727272727274
    >>> result.rvalue
    0.7586402890911869
    >>> result.pvalue
    0.010964341301680825
    >>> result.stderr
    2.257878767543913
    
    7
  • >>> result = scipy.stats.linregress(x, y)
    >>> result.slope
    7.4363636363636365
    >>> result.intercept
    -85.92727272727274
    >>> result.rvalue
    0.7586402890911869
    >>> result.pvalue
    0.010964341301680825
    >>> result.stderr
    2.257878767543913
    
    8

Đó là nó! Bạn đã hoàn thành hồi quy tuyến tính và nhận được kết quả sau:

>>>

>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
1

Ở đây, bạn nhập

>>> import pandas as pd
>>> x = pd.Series(range(10, 20))
>>> x
0    10
1    11
2    12
3    13
4    14
5    15
6    16
7    17
8    18
9    19
dtype: int64
>>> y = pd.Series([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
>>> y
0     2
1     1
2     4
3     5
4     8
5    12
6    18
7    25
8    96
9    48
dtype: int64
>>> x.corr(y)                     # Pearson's r
0.7586402890911867
>>> y.corr(x)
0.7586402890911869
>>> x.corr(y, method='spearman')  # Spearman's rho
0.9757575757575757
>>> x.corr(y, method='kendall')   # Kendall's tau
0.911111111111111
9 và
>>> r, p = scipy.stats.pearsonr(x, y)
>>> r
0.7586402890911869
>>> p
0.010964341301680829
2 và xác định các biến
>>> scipy.stats.pearsonr(x, y)[0]    # Pearson's r
0.7586402890911869
>>> scipy.stats.spearmanr(x, y)[0]   # Spearman's rho
0.9757575757575757
>>> scipy.stats.kendalltau(x, y)[0]  # Kendall's tau
0.911111111111111
8 và
>>> scipy.stats.pearsonr(x, y)[0]    # Pearson's r
0.7586402890911869
>>> scipy.stats.spearmanr(x, y)[0]   # Spearman's rho
0.9757575757575757
>>> scipy.stats.kendalltau(x, y)[0]  # Kendall's tau
0.911111111111111
9.

>>>

>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
2

Ở đây, bạn nhập

>>> import pandas as pd
>>> x = pd.Series(range(10, 20))
>>> x
0    10
1    11
2    12
3    13
4    14
5    15
6    16
7    17
8    18
9    19
dtype: int64
>>> y = pd.Series([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
>>> y
0     2
1     1
2     4
3     5
4     8
5    12
6    18
7    25
8    96
9    48
dtype: int64
>>> x.corr(y)                     # Pearson's r
0.7586402890911867
>>> y.corr(x)
0.7586402890911869
>>> x.corr(y, method='spearman')  # Spearman's rho
0.9757575757575757
>>> x.corr(y, method='kendall')   # Kendall's tau
0.911111111111111
9 và
>>> r, p = scipy.stats.pearsonr(x, y)
>>> r
0.7586402890911869
>>> p
0.010964341301680829
2 và xác định các biến
>>> scipy.stats.pearsonr(x, y)[0]    # Pearson's r
0.7586402890911869
>>> scipy.stats.spearmanr(x, y)[0]   # Spearman's rho
0.9757575757575757
>>> scipy.stats.kendalltau(x, y)[0]  # Kendall's tau
0.911111111111111
8 và
>>> scipy.stats.pearsonr(x, y)[0]    # Pearson's r
0.7586402890911869
>>> scipy.stats.spearmanr(x, y)[0]   # Spearman's rho
0.9757575757575757
>>> scipy.stats.kendalltau(x, y)[0]  # Kendall's tau
0.911111111111111
9.

Bạn có thể sử dụng

>>> import numpy as np
>>> import scipy.stats
>>> x = np.arange(10, 20)
>>> y = np.array([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
3 để thực hiện hồi quy tuyến tính cho hai mảng có cùng độ dài. Bạn nên cung cấp các mảng làm đối số và nhận các đầu ra bằng cách sử dụng ký hiệu DOT:Not a Number values. But if your data contains
>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
05 values, then you won’t get a useful result with
>>> import numpy as np
>>> import scipy.stats
>>> x = np.arange(10, 20)
>>> y = np.array([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
8:

>>>

>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
3

Ở đây, bạn nhập

>>> import pandas as pd
>>> x = pd.Series(range(10, 20))
>>> x
0    10
1    11
2    12
3    13
4    14
5    15
6    16
7    17
8    18
9    19
dtype: int64
>>> y = pd.Series([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
>>> y
0     2
1     1
2     4
3     5
4     8
5    12
6    18
7    25
8    96
9    48
dtype: int64
>>> x.corr(y)                     # Pearson's r
0.7586402890911867
>>> y.corr(x)
0.7586402890911869
>>> x.corr(y, method='spearman')  # Spearman's rho
0.9757575757575757
>>> x.corr(y, method='kendall')   # Kendall's tau
0.911111111111111
9 và
>>> r, p = scipy.stats.pearsonr(x, y)
>>> r
0.7586402890911869
>>> p
0.010964341301680829
2 và xác định các biến
>>> scipy.stats.pearsonr(x, y)[0]    # Pearson's r
0.7586402890911869
>>> scipy.stats.spearmanr(x, y)[0]   # Spearman's rho
0.9757575757575757
>>> scipy.stats.kendalltau(x, y)[0]  # Kendall's tau
0.911111111111111
8 và
>>> scipy.stats.pearsonr(x, y)[0]    # Pearson's r
0.7586402890911869
>>> scipy.stats.spearmanr(x, y)[0]   # Spearman's rho
0.9757575757575757
>>> scipy.stats.kendalltau(x, y)[0]  # Kendall's tau
0.911111111111111
9.

  • >>> r = np.corrcoef(x, y)
    >>> r
    array([[1.        , 0.75864029],
           [0.75864029, 1.        ]])
    >>> r[0, 1]
    0.7586402890911867
    >>> r[1, 0]
    0.7586402890911869
    
    09
  • Bạn có thể sử dụng
    >>> import numpy as np
    >>> import scipy.stats
    >>> x = np.arange(10, 20)
    >>> y = np.array([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
    
    3 để thực hiện hồi quy tuyến tính cho hai mảng có cùng độ dài. Bạn nên cung cấp các mảng làm đối số và nhận các đầu ra bằng cách sử dụng ký hiệu DOT:
  • >>> r = np.corrcoef(x, y)
    >>> r
    array([[1.        , 0.75864029],
           [0.75864029, 1.        ]])
    >>> r[0, 1]
    0.7586402890911867
    >>> r[1, 0]
    0.7586402890911869
    
    11

Đó là nó! Bạn đã hoàn thành hồi quy tuyến tính và nhận được kết quả sau:

>>> import numpy as np >>> import scipy.stats >>> x = np.arange(10, 20) >>> y = np.array([2, 1, 4, 5, 8, 12, 18, 25, 96, 48]) 4: Độ dốc của đường hồi quy

>>> import numpy as np
>>> import scipy.stats
>>> x = np.arange(10, 20)
>>> y = np.array([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
5: Việc chặn đường hồi quy

>>>

>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
4

Ở đây, bạn nhập

>>> import pandas as pd
>>> x = pd.Series(range(10, 20))
>>> x
0    10
1    11
2    12
3    13
4    14
5    15
6    16
7    17
8    18
9    19
dtype: int64
>>> y = pd.Series([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
>>> y
0     2
1     1
2     4
3     5
4     8
5    12
6    18
7    25
8    96
9    48
dtype: int64
>>> x.corr(y)                     # Pearson's r
0.7586402890911867
>>> y.corr(x)
0.7586402890911869
>>> x.corr(y, method='spearman')  # Spearman's rho
0.9757575757575757
>>> x.corr(y, method='kendall')   # Kendall's tau
0.911111111111111
9 và
>>> r, p = scipy.stats.pearsonr(x, y)
>>> r
0.7586402890911869
>>> p
0.010964341301680829
2 và xác định các biến
>>> scipy.stats.pearsonr(x, y)[0]    # Pearson's r
0.7586402890911869
>>> scipy.stats.spearmanr(x, y)[0]   # Spearman's rho
0.9757575757575757
>>> scipy.stats.kendalltau(x, y)[0]  # Kendall's tau
0.911111111111111
8 và
>>> scipy.stats.pearsonr(x, y)[0]    # Pearson's r
0.7586402890911869
>>> scipy.stats.spearmanr(x, y)[0]   # Spearman's rho
0.9757575757575757
>>> scipy.stats.kendalltau(x, y)[0]  # Kendall's tau
0.911111111111111
9.

Bạn có thể sử dụng

>>> import numpy as np
>>> import scipy.stats
>>> x = np.arange(10, 20)
>>> y = np.array([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
3 để thực hiện hồi quy tuyến tính cho hai mảng có cùng độ dài. Bạn nên cung cấp các mảng làm đối số và nhận các đầu ra bằng cách sử dụng ký hiệu DOT:

>>>

>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
5

Kết quả là giống nhau trong các ví dụ này và trước đây. Một lần nữa, hàng đầu tiên của

>>> import numpy as np
>>> import scipy.stats
>>> x = np.arange(10, 20)
>>> y = np.array([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
9 đại diện cho một tính năng, trong khi hàng thứ hai đại diện cho hàng kia.

Nếu bạn muốn có được các hệ số tương quan cho ba tính năng, thì bạn chỉ cần cung cấp một mảng hai chiều với ba hàng làm đối số:

>>>

>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
6

Bạn sẽ có được ma trận tương quan một lần nữa, nhưng cái này sẽ lớn hơn các lần trước:

>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
7

Điều này là do

>>> scipy.stats.spearmanr(x, y).correlation   # Spearman's rho
0.9757575757575757
>>> scipy.stats.kendalltau(x, y).correlation  # Kendall's tau
0.911111111111111
5 coi mỗi hàng của
>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
23 là một tính năng. Giá trị
>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
24 là hệ số tương quan cho hai tính năng đầu tiên của
>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
23. Điều này giống như hệ số cho
>>> scipy.stats.pearsonr(x, y)[0]    # Pearson's r
0.7586402890911869
>>> scipy.stats.spearmanr(x, y)[0]   # Spearman's rho
0.9757575757575757
>>> scipy.stats.kendalltau(x, y)[0]  # Kendall's tau
0.911111111111111
8 và
>>> scipy.stats.pearsonr(x, y)[0]    # Pearson's r
0.7586402890911869
>>> scipy.stats.spearmanr(x, y)[0]   # Spearman's rho
0.9757575757575757
>>> scipy.stats.kendalltau(x, y)[0]  # Kendall's tau
0.911111111111111
9 trong các ví dụ trước.
>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
28 đại diện cho Pearson Lau R cho các tính năng thứ nhất và thứ ba, trong khi
>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
29 là Pearson Lau R cho hai tính năng cuối cùng.

Dưới đây, một ví dụ thú vị về những gì xảy ra khi bạn truyền dữ liệu

>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
05 sang
>>> scipy.stats.spearmanr(x, y).correlation   # Spearman's rho
0.9757575757575757
>>> scipy.stats.kendalltau(x, y).correlation  # Kendall's tau
0.911111111111111
5:

>>>

>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
8

Trong ví dụ này, hai hàng đầu tiên (hoặc tính năng) của

>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
32 là ổn, nhưng hàng thứ ba
>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
33 chứa giá trị
>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
05. Tất cả mọi thứ không bao gồm tính năng với
>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
05 đều được tính toán tốt. Tuy nhiên, kết quả phụ thuộc vào hàng cuối cùng là
>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
05.

Theo mặc định,

>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
37 coi các hàng là các tính năng và các cột là quan sát. Nếu bạn muốn hành vi ngược lại, được sử dụng rộng rãi trong học máy, thì hãy sử dụng đối số
>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
38:

>>>

>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
9

Mảng này giống hệt với cái bạn đã thấy trước đó. Ở đây, bạn áp dụng một quy ước khác, nhưng kết quả là như nhau.

Tương quan Pearson: Thực hiện Pandas

Cho đến nay, bạn đã sử dụng các phương thức đối tượng

>>> r, p = scipy.stats.pearsonr(x, y)
>>> r
0.7586402890911869
>>> p
0.010964341301680829
9 và
>>> import pandas as pd
>>> x = pd.Series(range(10, 20))
>>> x
0    10
1    11
2    12
3    13
4    14
5    15
6    16
7    17
8    18
9    19
dtype: int64
>>> y = pd.Series([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
>>> y
0     2
1     1
2     4
3     5
4     8
5    12
6    18
7    25
8    96
9    48
dtype: int64
>>> x.corr(y)                     # Pearson's r
0.7586402890911867
>>> y.corr(x)
0.7586402890911869
>>> x.corr(y, method='spearman')  # Spearman's rho
0.9757575757575757
>>> x.corr(y, method='kendall')   # Kendall's tau
0.911111111111111
0 để tính toán các hệ số tương quan. Hãy cùng khám phá các phương pháp này chi tiết hơn. Đầu tiên, bạn cần nhập gấu trúc và tạo một số trường hợp của
>>> r, p = scipy.stats.pearsonr(x, y)
>>> r
0.7586402890911869
>>> p
0.010964341301680829
9 và
>>> import pandas as pd
>>> x = pd.Series(range(10, 20))
>>> x
0    10
1    11
2    12
3    13
4    14
5    15
6    16
7    17
8    18
9    19
dtype: int64
>>> y = pd.Series([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
>>> y
0     2
1     1
2     4
3     5
4     8
5    12
6    18
7    25
8    96
9    48
dtype: int64
>>> x.corr(y)                     # Pearson's r
0.7586402890911867
>>> y.corr(x)
0.7586402890911869
>>> x.corr(y, method='spearman')  # Spearman's rho
0.9757575757575757
>>> x.corr(y, method='kendall')   # Kendall's tau
0.911111111111111
0:

>>>

        x       y

x    1.00    0.76
y    0.76    1.00
0

Bây giờ bạn có ba đối tượng

>>> r, p = scipy.stats.pearsonr(x, y)
>>> r
0.7586402890911869
>>> p
0.010964341301680829
9 được gọi là
>>> scipy.stats.pearsonr(x, y)[0]    # Pearson's r
0.7586402890911869
>>> scipy.stats.spearmanr(x, y)[0]   # Spearman's rho
0.9757575757575757
>>> scipy.stats.kendalltau(x, y)[0]  # Kendall's tau
0.911111111111111
8,
>>> scipy.stats.pearsonr(x, y)[0]    # Pearson's r
0.7586402890911869
>>> scipy.stats.spearmanr(x, y)[0]   # Spearman's rho
0.9757575757575757
>>> scipy.stats.kendalltau(x, y)[0]  # Kendall's tau
0.911111111111111
9 và
>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
46. Bạn cũng có hai đối tượng
>>> import pandas as pd
>>> x = pd.Series(range(10, 20))
>>> x
0    10
1    11
2    12
3    13
4    14
5    15
6    16
7    17
8    18
9    19
dtype: int64
>>> y = pd.Series([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
>>> y
0     2
1     1
2     4
3     5
4     8
5    12
6    18
7    25
8    96
9    48
dtype: int64
>>> x.corr(y)                     # Pearson's r
0.7586402890911867
>>> y.corr(x)
0.7586402890911869
>>> x.corr(y, method='spearman')  # Spearman's rho
0.9757575757575757
>>> x.corr(y, method='kendall')   # Kendall's tau
0.911111111111111
0,
>>> import numpy as np
>>> import scipy.stats
>>> x = np.arange(10, 20)
>>> y = np.array([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
9 và
>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
23.

Bạn đã học được cách sử dụng

>>> import pandas as pd
>>> x = pd.Series(range(10, 20))
>>> x
0    10
1    11
2    12
3    13
4    14
5    15
6    16
7    17
8    18
9    19
dtype: int64
>>> y = pd.Series([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
>>> y
0     2
1     1
2     4
3     5
4     8
5    12
6    18
7    25
8    96
9    48
dtype: int64
>>> x.corr(y)                     # Pearson's r
0.7586402890911867
>>> y.corr(x)
0.7586402890911869
>>> x.corr(y, method='spearman')  # Spearman's rho
0.9757575757575757
>>> x.corr(y, method='kendall')   # Kendall's tau
0.911111111111111
2 với các đối tượng
>>> r, p = scipy.stats.pearsonr(x, y)
>>> r
0.7586402890911869
>>> p
0.010964341301680829
9 để có được hệ số tương quan Pearson:

>>>

        x       y

x    1.00    0.76
y    0.76    1.00
1

Tại đây, bạn gọi

>>> import pandas as pd
>>> x = pd.Series(range(10, 20))
>>> x
0    10
1    11
2    12
3    13
4    14
5    15
6    16
7    17
8    18
9    19
dtype: int64
>>> y = pd.Series([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
>>> y
0     2
1     1
2     4
3     5
4     8
5    12
6    18
7    25
8    96
9    48
dtype: int64
>>> x.corr(y)                     # Pearson's r
0.7586402890911867
>>> y.corr(x)
0.7586402890911869
>>> x.corr(y, method='spearman')  # Spearman's rho
0.9757575757575757
>>> x.corr(y, method='kendall')   # Kendall's tau
0.911111111111111
2 trên một đối tượng và chuyển sang đối tượng khác làm đối số đầu tiên.

Nếu bạn cung cấp giá trị

>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
05, thì
>>> import pandas as pd
>>> x = pd.Series(range(10, 20))
>>> x
0    10
1    11
2    12
3    13
4    14
5    15
6    16
7    17
8    18
9    19
dtype: int64
>>> y = pd.Series([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
>>> y
0     2
1     1
2     4
3     5
4     8
5    12
6    18
7    25
8    96
9    48
dtype: int64
>>> x.corr(y)                     # Pearson's r
0.7586402890911867
>>> y.corr(x)
0.7586402890911869
>>> x.corr(y, method='spearman')  # Spearman's rho
0.9757575757575757
>>> x.corr(y, method='kendall')   # Kendall's tau
0.911111111111111
2 vẫn sẽ hoạt động, nhưng nó sẽ loại trừ các quan sát có chứa các giá trị
>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
05:

>>>

        x       y

x    1.00    0.76
y    0.76    1.00
2

Bạn nhận được cùng một giá trị của hệ số tương quan trong hai ví dụ này. Điều đó vì

>>> import pandas as pd
>>> x = pd.Series(range(10, 20))
>>> x
0    10
1    11
2    12
3    13
4    14
5    15
6    16
7    17
8    18
9    19
dtype: int64
>>> y = pd.Series([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
>>> y
0     2
1     1
2     4
3     5
4     8
5    12
6    18
7    25
8    96
9    48
dtype: int64
>>> x.corr(y)                     # Pearson's r
0.7586402890911867
>>> y.corr(x)
0.7586402890911869
>>> x.corr(y, method='spearman')  # Spearman's rho
0.9757575757575757
>>> x.corr(y, method='kendall')   # Kendall's tau
0.911111111111111
2 bỏ qua cặp giá trị (
>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
57,
>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
58) có giá trị bị thiếu.

Bạn cũng có thể sử dụng

>>> import pandas as pd
>>> x = pd.Series(range(10, 20))
>>> x
0    10
1    11
2    12
3    13
4    14
5    15
6    16
7    17
8    18
9    19
dtype: int64
>>> y = pd.Series([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
>>> y
0     2
1     1
2     4
3     5
4     8
5    12
6    18
7    25
8    96
9    48
dtype: int64
>>> x.corr(y)                     # Pearson's r
0.7586402890911867
>>> y.corr(x)
0.7586402890911869
>>> x.corr(y, method='spearman')  # Spearman's rho
0.9757575757575757
>>> x.corr(y, method='kendall')   # Kendall's tau
0.911111111111111
2 với các đối tượng
>>> import pandas as pd
>>> x = pd.Series(range(10, 20))
>>> x
0    10
1    11
2    12
3    13
4    14
5    15
6    16
7    17
8    18
9    19
dtype: int64
>>> y = pd.Series([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
>>> y
0     2
1     1
2     4
3     5
4     8
5    12
6    18
7    25
8    96
9    48
dtype: int64
>>> x.corr(y)                     # Pearson's r
0.7586402890911867
>>> y.corr(x)
0.7586402890911869
>>> x.corr(y, method='spearman')  # Spearman's rho
0.9757575757575757
>>> x.corr(y, method='kendall')   # Kendall's tau
0.911111111111111
0. Bạn có thể sử dụng nó để lấy ma trận tương quan cho các cột của họ:

>>>

        x       y

x    1.00    0.76
y    0.76    1.00
3

Ma trận tương quan kết quả là một ví dụ mới là

>>> import pandas as pd
>>> x = pd.Series(range(10, 20))
>>> x
0    10
1    11
2    12
3    13
4    14
5    15
6    16
7    17
8    18
9    19
dtype: int64
>>> y = pd.Series([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
>>> y
0     2
1     1
2     4
3     5
4     8
5    12
6    18
7    25
8    96
9    48
dtype: int64
>>> x.corr(y)                     # Pearson's r
0.7586402890911867
>>> y.corr(x)
0.7586402890911869
>>> x.corr(y, method='spearman')  # Spearman's rho
0.9757575757575757
>>> x.corr(y, method='kendall')   # Kendall's tau
0.911111111111111
0 và giữ các hệ số tương quan cho các cột
>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
62 và
>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
63. Kết quả được dán nhãn như vậy thường rất thuận tiện để làm việc vì bạn có thể truy cập chúng bằng nhãn hoặc chỉ số vị trí số nguyên của chúng:

>>>

        x       y

x    1.00    0.76
y    0.76    1.00
4

Ví dụ này cho thấy hai cách truy cập giá trị:

  1. Sử dụng
    >>> r = np.corrcoef(x, y)
    >>> r
    array([[1.        , 0.75864029],
           [0.75864029, 1.        ]])
    >>> r[0, 1]
    0.7586402890911867
    >>> r[1, 0]
    0.7586402890911869
    
    64 để truy cập một giá trị duy nhất theo nhãn hàng và cột.
  2. Sử dụng
    >>> r = np.corrcoef(x, y)
    >>> r
    array([[1.        , 0.75864029],
           [0.75864029, 1.        ]])
    >>> r[0, 1]
    0.7586402890911867
    >>> r[1, 0]
    0.7586402890911869
    
    65 để truy cập một giá trị theo vị trí của hàng và cột của nó.

Bạn có thể áp dụng

>>> import pandas as pd
>>> x = pd.Series(range(10, 20))
>>> x
0    10
1    11
2    12
3    13
4    14
5    15
6    16
7    17
8    18
9    19
dtype: int64
>>> y = pd.Series([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
>>> y
0     2
1     1
2     4
3     5
4     8
5    12
6    18
7    25
8    96
9    48
dtype: int64
>>> x.corr(y)                     # Pearson's r
0.7586402890911867
>>> y.corr(x)
0.7586402890911869
>>> x.corr(y, method='spearman')  # Spearman's rho
0.9757575757575757
>>> x.corr(y, method='kendall')   # Kendall's tau
0.911111111111111
2 theo cùng một cách với các đối tượng
>>> import pandas as pd
>>> x = pd.Series(range(10, 20))
>>> x
0    10
1    11
2    12
3    13
4    14
5    15
6    16
7    17
8    18
9    19
dtype: int64
>>> y = pd.Series([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
>>> y
0     2
1     1
2     4
3     5
4     8
5    12
6    18
7    25
8    96
9    48
dtype: int64
>>> x.corr(y)                     # Pearson's r
0.7586402890911867
>>> y.corr(x)
0.7586402890911869
>>> x.corr(y, method='spearman')  # Spearman's rho
0.9757575757575757
>>> x.corr(y, method='kendall')   # Kendall's tau
0.911111111111111
0 có chứa ba cột trở lên:

>>>

        x       y

x    1.00    0.76
y    0.76    1.00
5

Bạn sẽ nhận được một ma trận tương quan với các hệ số tương quan sau:

  • >>> r = np.corrcoef(x, y)
    >>> r
    array([[1.        , 0.75864029],
           [0.75864029, 1.        ]])
    >>> r[0, 1]
    0.7586402890911867
    >>> r[1, 0]
    0.7586402890911869
    
    68 cho
    >>> r = np.corrcoef(x, y)
    >>> r
    array([[1.        , 0.75864029],
           [0.75864029, 1.        ]])
    >>> r[0, 1]
    0.7586402890911867
    >>> r[1, 0]
    0.7586402890911869
    
    69 và
    >>> r = np.corrcoef(x, y)
    >>> r
    array([[1.        , 0.75864029],
           [0.75864029, 1.        ]])
    >>> r[0, 1]
    0.7586402890911867
    >>> r[1, 0]
    0.7586402890911869
    
    70
  • >>> r = np.corrcoef(x, y)
    >>> r
    array([[1.        , 0.75864029],
           [0.75864029, 1.        ]])
    >>> r[0, 1]
    0.7586402890911867
    >>> r[1, 0]
    0.7586402890911869
    
    71 cho
    >>> r = np.corrcoef(x, y)
    >>> r
    array([[1.        , 0.75864029],
           [0.75864029, 1.        ]])
    >>> r[0, 1]
    0.7586402890911867
    >>> r[1, 0]
    0.7586402890911869
    
    69 và
    >>> r = np.corrcoef(x, y)
    >>> r
    array([[1.        , 0.75864029],
           [0.75864029, 1.        ]])
    >>> r[0, 1]
    0.7586402890911867
    >>> r[1, 0]
    0.7586402890911869
    
    73
  • >>> r = np.corrcoef(x, y)
    >>> r
    array([[1.        , 0.75864029],
           [0.75864029, 1.        ]])
    >>> r[0, 1]
    0.7586402890911867
    >>> r[1, 0]
    0.7586402890911869
    
    74 cho
    >>> r = np.corrcoef(x, y)
    >>> r
    array([[1.        , 0.75864029],
           [0.75864029, 1.        ]])
    >>> r[0, 1]
    0.7586402890911867
    >>> r[1, 0]
    0.7586402890911869
    
    70 và
    >>> r = np.corrcoef(x, y)
    >>> r
    array([[1.        , 0.75864029],
           [0.75864029, 1.        ]])
    >>> r[0, 1]
    0.7586402890911867
    >>> r[1, 0]
    0.7586402890911869
    
    73

Một phương pháp hữu ích khác là

>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
77, cho phép bạn tính toán các hệ số tương quan giữa các hàng hoặc cột của một đối tượng DataFrame và một loạt khác hoặc đối tượng DataFrame được truyền dưới dạng đối số đầu tiên:

>>>

        x       y

x    1.00    0.76
y    0.76    1.00
6

Trong trường hợp này, kết quả là một đối tượng

>>> r, p = scipy.stats.pearsonr(x, y)
>>> r
0.7586402890911869
>>> p
0.010964341301680829
9 mới với hệ số tương quan cho cột
>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
62 và các giá trị của
>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
46, cũng như hệ số cho
>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
63 và
>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
46.

>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
77 có tham số tùy chọn
>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
84 chỉ định xem các cột hoặc hàng có đại diện cho các tính năng hay không. Giá trị mặc định của
>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
84 là 0 và nó cũng mặc định cho các cột đại diện cho các tính năng. Ngoài ra, còn có một tham số
>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
86, cho biết những gì phải làm với các giá trị bị thiếu.

Cả

>>> import pandas as pd
>>> x = pd.Series(range(10, 20))
>>> x
0    10
1    11
2    12
3    13
4    14
5    15
6    16
7    17
8    18
9    19
dtype: int64
>>> y = pd.Series([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
>>> y
0     2
1     1
2     4
3     5
4     8
5    12
6    18
7    25
8    96
9    48
dtype: int64
>>> x.corr(y)                     # Pearson's r
0.7586402890911867
>>> y.corr(x)
0.7586402890911869
>>> x.corr(y, method='spearman')  # Spearman's rho
0.9757575757575757
>>> x.corr(y, method='kendall')   # Kendall's tau
0.911111111111111
2 và
>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
77 đều có tham số tùy chọn
>>> import pandas as pd
>>> x = pd.Series(range(10, 20))
>>> x
0    10
1    11
2    12
3    13
4    14
5    15
6    16
7    17
8    18
9    19
dtype: int64
>>> y = pd.Series([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
>>> y
0     2
1     1
2     4
3     5
4     8
5    12
6    18
7    25
8    96
9    48
dtype: int64
>>> x.corr(y)                     # Pearson's r
0.7586402890911867
>>> y.corr(x)
0.7586402890911869
>>> x.corr(y, method='spearman')  # Spearman's rho
0.9757575757575757
>>> x.corr(y, method='kendall')   # Kendall's tau
0.911111111111111
4 để chỉ định hệ số tương quan mà bạn muốn tính toán. Hệ số tương quan Pearson được trả lại theo mặc định, vì vậy bạn không cần cung cấp nó trong trường hợp này.

Xếp hạng tương quan

Tương quan xếp hạng so sánh các cấp bậc hoặc thứ tự của dữ liệu liên quan đến hai biến hoặc tính năng của bộ dữ liệu. Nếu các thứ tự là tương tự, thì mối tương quan là mạnh, tích cực và cao. Tuy nhiên, nếu các thứ tự gần với đảo ngược, thì mối tương quan là mạnh, tiêu cực và thấp. Nói cách khác, tương quan xếp hạng chỉ liên quan đến thứ tự của các giá trị, không phải với các giá trị cụ thể từ bộ dữ liệu. compares the ranks or the orderings of the data related to two variables or dataset features. If the orderings are similar, then the correlation is strong, positive, and high. However, if the orderings are close to reversed, then the correlation is strong, negative, and low. In other words, rank correlation is concerned only with the order of values, not with the particular values from the dataset.

Để minh họa sự khác biệt giữa tương quan tuyến tính và thứ hạng, hãy xem xét hình sau:

Hướng dẫn how do you do correlation in python? - làm thế nào để bạn làm tương quan trong python?

Biểu đồ bên trái có mối quan hệ tuyến tính tích cực hoàn hảo giữa X và Y, do đó r = 1. Biểu đồ trung tâm cho thấy mối tương quan tích cực và bên phải cho thấy mối tương quan tiêu cực. Tuy nhiên, cả hai đều không phải là hàm tuyến tính, vì vậy R khác với −1 hoặc 1.x and y, so r = 1. The central plot shows positive correlation and the right one shows negative correlation. However, neither of them is a linear function, so r is different than −1 or 1.

Khi bạn chỉ nhìn vào các trật tự hoặc cấp bậc, cả ba mối quan hệ đều hoàn hảo! Các ô bên trái và trung tâm cho thấy các quan sát trong đó các giá trị x lớn hơn luôn tương ứng với các giá trị y lớn hơn. Đây là mối tương quan xếp hạng tích cực hoàn hảo. Cốt truyện đúng minh họa trường hợp ngược lại, đó là mối tương quan xếp hạng tiêu cực hoàn hảo.

Hệ số tương quan Spearman

Hệ số tương quan Spearman giữa hai tính năng là hệ số tương quan Pearson giữa các giá trị xếp hạng của chúng. Nó đã tính toán giống như hệ số tương quan Pearson nhưng có tính đến hàng ngũ của họ thay vì giá trị của chúng. Nó thường được biểu thị bằng chữ Hy Lạp Rho (ρ) và được gọi là Spearman từ Rho.Spearman correlation coefficient between two features is the Pearson correlation coefficient between their rank values. It’s calculated the same way as the Pearson correlation coefficient but takes into account their ranks instead of their values. It’s often denoted with the Greek letter rho (ρ) and called Spearman’s rho.

Giả sử bạn có hai N-Tuples, X và Y, trong đó

>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
90 là các quan sát như các cặp giá trị tương ứng. Bạn có thể tính toán hệ số tương quan Spearman giống như hệ số Pearson. Bạn sẽ sử dụng các cấp bậc thay vì các giá trị thực tế từ X và Y.x and y, where
>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
90 are the observations as pairs of corresponding values. You can calculate the Spearman correlation coefficient ρ the same way as the Pearson coefficient. You’ll use the ranks instead of the actual values from x and y.

Dưới đây là một số sự thật quan trọng về hệ số tương quan Spearman:

  • Nó có thể lấy một giá trị thực trong phạm vi −1 ρ ≤ 1.

  • Giá trị tối đa của nó = 1 tương ứng với trường hợp khi có một hàm tăng đơn điệu giữa X và Y. Nói cách khác, các giá trị x lớn hơn tương ứng với các giá trị y lớn hơn và ngược lại.x and y. In other words, larger x values correspond to larger y values and vice versa.

  • Giá trị tối thiểu của nó = −1 tương ứng với trường hợp khi có hàm giảm đơn điệu giữa X và Y. Nói cách khác, các giá trị x lớn hơn tương ứng với các giá trị y nhỏ hơn và ngược lại.x and y. In other words, larger x values correspond to smaller y values and vice versa.

Bạn có thể tính toán Spearman từ Rho trong Python theo một cách rất giống nhau như bạn sẽ làm Pearson.

Hệ số tương quan Kendall

Hãy để bắt đầu lại bằng cách xem xét hai N-Tuples, X và Y. Mỗi cặp X-Y

>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
90 là một quan sát duy nhất. Một cặp quan sát (xᵢ, yᵢ) và (xⱼ, yⱼ), trong đó tôi x and y. Each of the x-y pairs
>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
90 is a single observation. A pair of observations (xᵢ, yᵢ) and (xⱼ, yⱼ), where i < j, will be one of three things:

  • phù hợp nếu một trong hai (xᵢ> xⱼ và yᵢ> yⱼ) hoặc (xᵢ if either (xᵢ > xⱼ and yᵢ > yⱼ) or (xᵢ < xⱼ and yᵢ < yⱼ)
  • discordant if either (xᵢ < xⱼ and yᵢ > yⱼ) or (xᵢ > xⱼ and yᵢ < yⱼ)
  • Không nếu có một mối quan hệ trong x (xᵢ = xⱼ) hoặc một chiếc cà vạt trong y (yᵢ = yⱼ) if there’s a tie in x (xᵢ = xⱼ) or a tie in y (yᵢ = yⱼ)

Hệ số tương quan Kendall so sánh số lượng các cặp dữ liệu phù hợp và bất hòa. Hệ số này dựa trên sự khác biệt về số lượng của các cặp phù hợp và bất hòa so với số cặp X-Y. Nó thường được biểu thị bằng chữ Hy Lạp tau (τ) và được gọi là Kendall, Tau.Kendall correlation coefficient compares the number of concordant and discordant pairs of data. This coefficient is based on the difference in the counts of concordant and discordant pairs relative to the number of x-y pairs. It’s often denoted with the Greek letter tau (τ) and called Kendall’s tau.

Theo các tài liệu chính thức

>>> r, p = scipy.stats.pearsonr(x, y)
>>> r
0.7586402890911869
>>> p
0.010964341301680829
2, hệ số tương quan Kendall được tính là τ = (n⁺ - n⁻) / √ ((n⁺ + n⁻ + nˣ) (n⁺ + n⁻ + nʸ)), trong đó::

  • n⁺ là số cặp đôi phù hợp
  • n⁻ là số lượng các cặp bất hòa
  • nˣ là số lượng mối quan hệ chỉ trong xx
  • nʸ là số lượng mối quan hệ chỉ trong yy

Nếu một cà vạt xảy ra trong cả X và Y, thì nó không được bao gồm trong Nˣ hoặc Nʸ.x and y, then it’s not included in either nˣ or nʸ.

The Wikipedia page on Kendall rank correlation coefficient gives the following expression: τ = (2 / (n(n − 1))) Σᵢⱼ(sign(xᵢ − xⱼ) sign(yᵢ − yⱼ)) for i < j, where i = 1, 2, …, n − 1 and j = 2, 3, …, n. The sign function sign(z) is −1 if z < 0, 0 if z = 0, and 1 if z > 0. n(n − 1) / 2 is the total number of x-y pairs.

Một số sự thật quan trọng về hệ số tương quan Kendall như sau:

  • Nó có thể lấy một giá trị thực trong phạm vi −1 τ 1.

  • Giá trị tối đa của nó τ = 1 tương ứng với trường hợp khi các cấp bậc của các giá trị tương ứng trong x và y là như nhau. Nói cách khác, tất cả các cặp là phù hợp.x and y are the same. In other words, all pairs are concordant.

  • Giá trị tối thiểu của nó = −1 tương ứng với trường hợp khi thứ hạng trong x là mặt trái của thứ hạng trong y. Nói cách khác, tất cả các cặp là bất hòa.x are the reverse of the rankings in y. In other words, all pairs are discordant.

Bạn có thể tính toán Kendall từ Tau trong Python tương tự như cách bạn sẽ tính toán Pearson Lau r.

Xếp hạng: Thực hiện SCIPY

Bạn có thể sử dụng

>>> r, p = scipy.stats.pearsonr(x, y)
>>> r
0.7586402890911869
>>> p
0.010964341301680829
2 để xác định thứ hạng cho mỗi giá trị trong một mảng. Đầu tiên, bạn sẽ nhập các thư viện và tạo các mảng Numpy:

>>>

        x       y

x    1.00    0.76
y    0.76    1.00
7

Bây giờ bạn đã chuẩn bị dữ liệu, bạn có thể xác định thứ hạng của từng giá trị trong một mảng numpy với

>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
94:

>>>

        x       y

x    1.00    0.76
y    0.76    1.00
8

Bây giờ bạn đã chuẩn bị dữ liệu, bạn có thể xác định thứ hạng của từng giá trị trong một mảng numpy với

>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
94:

        x       y

x    1.00    0.76
y    0.76    1.00
04 có tham số tùy chọn
>>> import pandas as pd
>>> x = pd.Series(range(10, 20))
>>> x
0    10
1    11
2    12
3    13
4    14
5    15
6    16
7    17
8    18
9    19
dtype: int64
>>> y = pd.Series([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
>>> y
0     2
1     1
2     4
3     5
4     8
5    12
6    18
7    25
8    96
9    48
dtype: int64
>>> x.corr(y)                     # Pearson's r
0.7586402890911867
>>> y.corr(x)
0.7586402890911869
>>> x.corr(y, method='spearman')  # Spearman's rho
0.9757575757575757
>>> x.corr(y, method='kendall')   # Kendall's tau
0.911111111111111
4. Điều này cho Python phải làm gì nếu có mối quan hệ trong mảng (nếu hai hoặc nhiều giá trị bằng nhau). Theo mặc định, nó chỉ định cho họ mức trung bình của các cấp bậc:

>>>

        x       y

x    1.00    0.76
y    0.76    1.00
9

Có hai yếu tố có giá trị

        x       y

x    1.00    0.76
y    0.76    1.00
00 và họ có cấp bậc
        x       y

x    1.00    0.76
y    0.76    1.00
07 và
        x       y

x    1.00    0.76
y    0.76    1.00
08. Giá trị
        x       y

x    1.00    0.76
y    0.76    1.00
09 có thứ hạng
        x       y

x    1.00    0.76
y    0.76    1.00
10 và giá trị
        x       y

x    1.00    0.76
y    0.76    1.00
11 có thứ hạng
        x       y

x    1.00    0.76
y    0.76    1.00
12. Sau đó, cả hai phần tử có giá trị
        x       y

x    1.00    0.76
y    0.76    1.00
00 sẽ có cùng thứ hạng
        x       y

x    1.00    0.76
y    0.76    1.00
14.

        x       y

x    1.00    0.76
y    0.76    1.00
04 xử lý các giá trị
>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
05 như thể chúng lớn:

>>>

>>> import numpy as np
>>> import scipy.stats
>>> x = np.arange(10, 20)
>>> y = np.array([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
>>> scipy.stats.pearsonr(x, y)    # Pearson's r
(0.7586402890911869, 0.010964341301680832)
>>> scipy.stats.spearmanr(x, y)   # Spearman's rho
SpearmanrResult(correlation=0.9757575757575757, pvalue=1.4675461874042197e-06)
>>> scipy.stats.kendalltau(x, y)  # Kendall's tau
KendalltauResult(correlation=0.911111111111111, pvalue=2.9761904761904762e-05)
0

Có hai yếu tố có giá trị

        x       y

x    1.00    0.76
y    0.76    1.00
00 và họ có cấp bậc
        x       y

x    1.00    0.76
y    0.76    1.00
07 và
        x       y

x    1.00    0.76
y    0.76    1.00
08. Giá trị
        x       y

x    1.00    0.76
y    0.76    1.00
09 có thứ hạng
        x       y

x    1.00    0.76
y    0.76    1.00
10 và giá trị
        x       y

x    1.00    0.76
y    0.76    1.00
11 có thứ hạng
        x       y

x    1.00    0.76
y    0.76    1.00
12. Sau đó, cả hai phần tử có giá trị
        x       y

x    1.00    0.76
y    0.76    1.00
00 sẽ có cùng thứ hạng
        x       y

x    1.00    0.76
y    0.76    1.00
14.

>>>

>>> import numpy as np
>>> import scipy.stats
>>> x = np.arange(10, 20)
>>> y = np.array([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
>>> scipy.stats.pearsonr(x, y)    # Pearson's r
(0.7586402890911869, 0.010964341301680832)
>>> scipy.stats.spearmanr(x, y)   # Spearman's rho
SpearmanrResult(correlation=0.9757575757575757, pvalue=1.4675461874042197e-06)
>>> scipy.stats.kendalltau(x, y)  # Kendall's tau
KendalltauResult(correlation=0.911111111111111, pvalue=2.9761904761904762e-05)
1

Có hai yếu tố có giá trị

        x       y

x    1.00    0.76
y    0.76    1.00
00 và họ có cấp bậc
        x       y

x    1.00    0.76
y    0.76    1.00
07 và
        x       y

x    1.00    0.76
y    0.76    1.00
08. Giá trị
        x       y

x    1.00    0.76
y    0.76    1.00
09 có thứ hạng
        x       y

x    1.00    0.76
y    0.76    1.00
10 và giá trị
        x       y

x    1.00    0.76
y    0.76    1.00
11 có thứ hạng
        x       y

x    1.00    0.76
y    0.76    1.00
12. Sau đó, cả hai phần tử có giá trị
        x       y

x    1.00    0.76
y    0.76    1.00
00 sẽ có cùng thứ hạng
        x       y

x    1.00    0.76
y    0.76    1.00
14.

x y x 1.00 0.76 y 0.76 1.00 04 xử lý các giá trị >>> r = np.corrcoef(x, y) >>> r array([[1. , 0.75864029], [0.75864029, 1. ]]) >>> r[0, 1] 0.7586402890911867 >>> r[1, 0] 0.7586402890911869 05 như thể chúng lớn:

Trong trường hợp này, giá trị

>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
57 tương ứng với thứ hạng lớn nhất
        x       y

x    1.00    0.76
y    0.76    1.00
12. Bạn cũng có thể nhận được thứ hạng với
        x       y

x    1.00    0.76
y    0.76    1.00
19:

>>>

>>> import numpy as np
>>> import scipy.stats
>>> x = np.arange(10, 20)
>>> y = np.array([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
>>> scipy.stats.pearsonr(x, y)    # Pearson's r
(0.7586402890911869, 0.010964341301680832)
>>> scipy.stats.spearmanr(x, y)   # Spearman's rho
SpearmanrResult(correlation=0.9757575757575757, pvalue=1.4675461874042197e-06)
>>> scipy.stats.kendalltau(x, y)  # Kendall's tau
KendalltauResult(correlation=0.911111111111111, pvalue=2.9761904761904762e-05)
2

Có hai yếu tố có giá trị

        x       y

x    1.00    0.76
y    0.76    1.00
00 và họ có cấp bậc
        x       y

x    1.00    0.76
y    0.76    1.00
07 và
        x       y

x    1.00    0.76
y    0.76    1.00
08. Giá trị
        x       y

x    1.00    0.76
y    0.76    1.00
09 có thứ hạng
        x       y

x    1.00    0.76
y    0.76    1.00
10 và giá trị
        x       y

x    1.00    0.76
y    0.76    1.00
11 có thứ hạng
        x       y

x    1.00    0.76
y    0.76    1.00
12. Sau đó, cả hai phần tử có giá trị
        x       y

x    1.00    0.76
y    0.76    1.00
00 sẽ có cùng thứ hạng
        x       y

x    1.00    0.76
y    0.76    1.00
14.

  1.         x       y
    
    x    1.00    0.76
    y    0.76    1.00
    
    04 xử lý các giá trị
    >>> r = np.corrcoef(x, y)
    >>> r
    array([[1.        , 0.75864029],
           [0.75864029, 1.        ]])
    >>> r[0, 1]
    0.7586402890911867
    >>> r[1, 0]
    0.7586402890911869
    
    05 như thể chúng lớn:
  2. Trong trường hợp này, giá trị
    >>> r = np.corrcoef(x, y)
    >>> r
    array([[1.        , 0.75864029],
           [0.75864029, 1.        ]])
    >>> r[0, 1]
    0.7586402890911867
    >>> r[1, 0]
    0.7586402890911869
    
    57 tương ứng với thứ hạng lớn nhất
            x       y
    
    x    1.00    0.76
    y    0.76    1.00
    
    12. Bạn cũng có thể nhận được thứ hạng với
            x       y
    
    x    1.00    0.76
    y    0.76    1.00
    
    19:

        x       y

x    1.00    0.76
y    0.76    1.00
20 Trả về các chỉ số mà các mục mảng sẽ có trong mảng được sắp xếp. Các chỉ số này là dựa trên không, vì vậy bạn sẽ cần thêm
>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
98 vào tất cả chúng.

>>>

>>> import numpy as np
>>> import scipy.stats
>>> x = np.arange(10, 20)
>>> y = np.array([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
>>> scipy.stats.pearsonr(x, y)    # Pearson's r
(0.7586402890911869, 0.010964341301680832)
>>> scipy.stats.spearmanr(x, y)   # Spearman's rho
SpearmanrResult(correlation=0.9757575757575757, pvalue=1.4675461874042197e-06)
>>> scipy.stats.kendalltau(x, y)  # Kendall's tau
KendalltauResult(correlation=0.911111111111111, pvalue=2.9761904761904762e-05)
3

Tương quan xếp hạng: Thực hiện Numpy và Scipy

Bạn có thể tính toán hệ số tương quan Spearman với

        x       y

x    1.00    0.76
y    0.76    1.00
22:

  • >>> r, p = scipy.stats.pearsonr(x, y)
    >>> r
    0.7586402890911869
    >>> p
    0.010964341301680829
    
    4 Trả về một đối tượng chứa giá trị của hệ số tương quan Spearman và giá trị p. Như bạn có thể thấy, bạn có thể truy cập các giá trị cụ thể theo hai cách:
    returns
    >>> r = np.corrcoef(x, y)
    >>> r
    array([[1.        , 0.75864029],
           [0.75864029, 1.        ]])
    >>> r[0, 1]
    0.7586402890911867
    >>> r[1, 0]
    0.7586402890911869
    
    05 if there’s a
    >>> r = np.corrcoef(x, y)
    >>> r
    array([[1.        , 0.75864029],
           [0.75864029, 1.        ]])
    >>> r[0, 1]
    0.7586402890911867
    >>> r[1, 0]
    0.7586402890911869
    
    05 value among the inputs. This is the default behavior.
  • Sử dụng ký hiệu DOT (
            x       y
    
    x    1.00    0.76
    y    0.76    1.00
    
    24 và
            x       y
    
    x    1.00    0.76
    y    0.76    1.00
    
    25)
    raises a
    >>> r = np.corrcoef(x, y)
    >>> r
    array([[1.        , 0.75864029],
           [0.75864029, 1.        ]])
    >>> r[0, 1]
    0.7586402890911867
    >>> r[1, 0]
    0.7586402890911869
    
    19 if there’s a
    >>> r = np.corrcoef(x, y)
    >>> r
    array([[1.        , 0.75864029],
           [0.75864029, 1.        ]])
    >>> r[0, 1]
    0.7586402890911867
    >>> r[1, 0]
    0.7586402890911869
    
    05 value among the inputs.
  • Sử dụng Python Unpacking (
            x       y
    
    x    1.00    0.76
    y    0.76    1.00
    
    26)
    ignores the observations with
    >>> r = np.corrcoef(x, y)
    >>> r
    array([[1.        , 0.75864029],
           [0.75864029, 1.        ]])
    >>> r[0, 1]
    0.7586402890911867
    >>> r[1, 0]
    0.7586402890911869
    
    05 values.

Bạn có thể nhận được kết quả tương tự nếu bạn cung cấp mảng hai chiều

>>> import numpy as np
>>> import scipy.stats
>>> x = np.arange(10, 20)
>>> y = np.array([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
9 chứa cùng dữ liệu với
>>> scipy.stats.pearsonr(x, y)[0]    # Pearson's r
0.7586402890911869
>>> scipy.stats.spearmanr(x, y)[0]   # Spearman's rho
0.9757575757575757
>>> scipy.stats.kendalltau(x, y)[0]  # Kendall's tau
0.911111111111111
8 và
>>> scipy.stats.pearsonr(x, y)[0]    # Pearson's r
0.7586402890911869
>>> scipy.stats.spearmanr(x, y)[0]   # Spearman's rho
0.9757575757575757
>>> scipy.stats.kendalltau(x, y)[0]  # Kendall's tau
0.911111111111111
9 đến
>>> r, p = scipy.stats.pearsonr(x, y)
>>> r
0.7586402890911869
>>> p
0.010964341301680829
4:

>>>

>>> import numpy as np
>>> import scipy.stats
>>> x = np.arange(10, 20)
>>> y = np.array([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
>>> scipy.stats.pearsonr(x, y)    # Pearson's r
(0.7586402890911869, 0.010964341301680832)
>>> scipy.stats.spearmanr(x, y)   # Spearman's rho
SpearmanrResult(correlation=0.9757575757575757, pvalue=1.4675461874042197e-06)
>>> scipy.stats.kendalltau(x, y)  # Kendall's tau
KendalltauResult(correlation=0.911111111111111, pvalue=2.9761904761904762e-05)
4

Hàng đầu tiên của

>>> import numpy as np
>>> import scipy.stats
>>> x = np.arange(10, 20)
>>> y = np.array([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
9 là một tính năng, trong khi hàng thứ hai là tính năng khác. Bạn có thể sửa đổi điều này. Tham số tùy chọn
>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
84 xác định xem các cột (
        x       y

x    1.00    0.76
y    0.76    1.00
33) hoặc hàng (
        x       y

x    1.00    0.76
y    0.76    1.00
34) có đại diện cho các tính năng hay không. Hành vi mặc định là các hàng là các quan sát và các cột là các tính năng.

Một tham số tùy chọn khác

        x       y

x    1.00    0.76
y    0.76    1.00
35 xác định cách xử lý các giá trị ____105. Nó có thể mất một trong ba giá trị:

>>>

>>> import numpy as np
>>> import scipy.stats
>>> x = np.arange(10, 20)
>>> y = np.array([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
>>> scipy.stats.pearsonr(x, y)    # Pearson's r
(0.7586402890911869, 0.010964341301680832)
>>> scipy.stats.spearmanr(x, y)   # Spearman's rho
SpearmanrResult(correlation=0.9757575757575757, pvalue=1.4675461874042197e-06)
>>> scipy.stats.kendalltau(x, y)  # Kendall's tau
KendalltauResult(correlation=0.911111111111111, pvalue=2.9761904761904762e-05)
5

        x       y

x    1.00    0.76
y    0.76    1.00
37 trả về
>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
05 nếu có giá trị
>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
05 trong số các đầu vào. Đây là hành vi mặc định.

        x       y

x    1.00    0.76
y    0.76    1.00
40 tăng
>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
19 nếu có giá trị
>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
05 trong số các đầu vào.

x y x 1.00 0.76 y 0.76 1.00 43 bỏ qua các quan sát với các giá trị >>> r = np.corrcoef(x, y) >>> r array([[1. , 0.75864029], [0.75864029, 1. ]]) >>> r[0, 1] 0.7586402890911867 >>> r[1, 0] 0.7586402890911869 05.

Nếu bạn cung cấp một mảng hai chiều với nhiều hơn hai tính năng, thì bạn sẽ nhận được ma trận tương quan và ma trận của giá trị P:

>>>

>>> import numpy as np
>>> import scipy.stats
>>> x = np.arange(10, 20)
>>> y = np.array([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
>>> scipy.stats.pearsonr(x, y)    # Pearson's r
(0.7586402890911869, 0.010964341301680832)
>>> scipy.stats.spearmanr(x, y)   # Spearman's rho
SpearmanrResult(correlation=0.9757575757575757, pvalue=1.4675461874042197e-06)
>>> scipy.stats.kendalltau(x, y)  # Kendall's tau
KendalltauResult(correlation=0.911111111111111, pvalue=2.9761904761904762e-05)
6

Giá trị

        x       y

x    1.00    0.76
y    0.76    1.00
45 trong ma trận tương quan cho thấy các tính năng thứ nhất và thứ ba có tương quan xếp hạng âm hoàn hảo, đó là các giá trị lớn hơn trong hàng đầu tiên luôn tương ứng với các giá trị nhỏ hơn trong lần thứ ba.

Bạn có thể có được hệ số tương quan Kendall với

>>> r, p = scipy.stats.pearsonr(x, y)
>>> r
0.7586402890911869
>>> p
0.010964341301680829
5:

>>>

>>> import numpy as np
>>> import scipy.stats
>>> x = np.arange(10, 20)
>>> y = np.array([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
>>> scipy.stats.pearsonr(x, y)    # Pearson's r
(0.7586402890911869, 0.010964341301680832)
>>> scipy.stats.spearmanr(x, y)   # Spearman's rho
SpearmanrResult(correlation=0.9757575757575757, pvalue=1.4675461874042197e-06)
>>> scipy.stats.kendalltau(x, y)  # Kendall's tau
KendalltauResult(correlation=0.911111111111111, pvalue=2.9761904761904762e-05)
7

>>> r, p = scipy.stats.pearsonr(x, y)
>>> r
0.7586402890911869
>>> p
0.010964341301680829
5 hoạt động giống như
>>> r, p = scipy.stats.pearsonr(x, y)
>>> r
0.7586402890911869
>>> p
0.010964341301680829
4. Phải mất hai mảng một chiều, có tham số tùy chọn
        x       y

x    1.00    0.76
y    0.76    1.00
35 và trả về một đối tượng với các giá trị của hệ số tương quan và giá trị p.

>>>

>>> import numpy as np
>>> import scipy.stats
>>> x = np.arange(10, 20)
>>> y = np.array([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
>>> scipy.stats.pearsonr(x, y)    # Pearson's r
(0.7586402890911869, 0.010964341301680832)
>>> scipy.stats.spearmanr(x, y)   # Spearman's rho
SpearmanrResult(correlation=0.9757575757575757, pvalue=1.4675461874042197e-06)
>>> scipy.stats.kendalltau(x, y)  # Kendall's tau
KendalltauResult(correlation=0.911111111111111, pvalue=2.9761904761904762e-05)
8

Tuy nhiên, nếu bạn chỉ cung cấp một mảng hai chiều làm đối số, thì

>>> r, p = scipy.stats.pearsonr(x, y)
>>> r
0.7586402890911869
>>> p
0.010964341301680829
5 sẽ tăng
        x       y

x    1.00    0.76
y    0.76    1.00
51. Nếu bạn vượt qua hai mảng đa chiều cùng hình dạng, thì chúng sẽ bị san phẳng trước khi tính toán.

Tương quan xếp hạng: Thực hiện gấu trúc

Bạn có thể tính toán các hệ số tương quan Spearman và Kendall với gấu trúc. Giống như trước đây, bạn bắt đầu bằng cách nhập

        x       y

x    1.00    0.76
y    0.76    1.00
52 và tạo một số trường hợp
>>> r, p = scipy.stats.pearsonr(x, y)
>>> r
0.7586402890911869
>>> p
0.010964341301680829
9 và
>>> import pandas as pd
>>> x = pd.Series(range(10, 20))
>>> x
0    10
1    11
2    12
3    13
4    14
5    15
6    16
7    17
8    18
9    19
dtype: int64
>>> y = pd.Series([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
>>> y
0     2
1     1
2     4
3     5
4     8
5    12
6    18
7    25
8    96
9    48
dtype: int64
>>> x.corr(y)                     # Pearson's r
0.7586402890911867
>>> y.corr(x)
0.7586402890911869
>>> x.corr(y, method='spearman')  # Spearman's rho
0.9757575757575757
>>> x.corr(y, method='kendall')   # Kendall's tau
0.911111111111111
0:
is very important in statistics and data science. It can help you better understand your data and give you a better insight into the relationships between features. In this section, you’ll learn how to visually represent the relationship between two features with an x-y plot. You’ll also use heatmaps to visualize a correlation matrix.

Bây giờ bạn có các đối tượng gấu trúc này, bạn có thể sử dụng

>>> import pandas as pd
>>> x = pd.Series(range(10, 20))
>>> x
0    10
1    11
2    12
3    13
4    14
5    15
6    16
7    17
8    18
9    19
dtype: int64
>>> y = pd.Series([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
>>> y
0     2
1     1
2     4
3     5
4     8
5    12
6    18
7    25
8    96
9    48
dtype: int64
>>> x.corr(y)                     # Pearson's r
0.7586402890911867
>>> y.corr(x)
0.7586402890911869
>>> x.corr(y, method='spearman')  # Spearman's rho
0.9757575757575757
>>> x.corr(y, method='kendall')   # Kendall's tau
0.911111111111111
2 và
>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
77 giống như bạn đã làm khi bạn tính toán hệ số tương quan Pearson. Bạn chỉ cần chỉ định hệ số tương quan mong muốn với tham số tùy chọn
>>> import pandas as pd
>>> x = pd.Series(range(10, 20))
>>> x
0    10
1    11
2    12
3    13
4    14
5    15
6    16
7    17
8    18
9    19
dtype: int64
>>> y = pd.Series([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
>>> y
0     2
1     1
2     4
3     5
4     8
5    12
6    18
7    25
8    96
9    48
dtype: int64
>>> x.corr(y)                     # Pearson's r
0.7586402890911867
>>> y.corr(x)
0.7586402890911869
>>> x.corr(y, method='spearman')  # Spearman's rho
0.9757575757575757
>>> x.corr(y, method='kendall')   # Kendall's tau
0.911111111111111
4, mặc định là
>>> import pandas as pd
>>> x = pd.Series(range(10, 20))
>>> x
0    10
1    11
2    12
3    13
4    14
5    15
6    16
7    17
8    18
9    19
dtype: int64
>>> y = pd.Series([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
>>> y
0     2
1     1
2     4
3     5
4     8
5    12
6    18
7    25
8    96
9    48
dtype: int64
>>> x.corr(y)                     # Pearson's r
0.7586402890911867
>>> y.corr(x)
0.7586402890911869
>>> x.corr(y, method='spearman')  # Spearman's rho
0.9757575757575757
>>> x.corr(y, method='kendall')   # Kendall's tau
0.911111111111111
5.

Để tính toán Spearman từ Rho, vượt qua

        x       y

x    1.00    0.76
y    0.76    1.00
59:

>>>

>>> import numpy as np
>>> import scipy.stats
>>> x = np.arange(10, 20)
>>> y = np.array([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
>>> scipy.stats.pearsonr(x, y)    # Pearson's r
(0.7586402890911869, 0.010964341301680832)
>>> scipy.stats.spearmanr(x, y)   # Spearman's rho
SpearmanrResult(correlation=0.9757575757575757, pvalue=1.4675461874042197e-06)
>>> scipy.stats.kendalltau(x, y)  # Kendall's tau
KendalltauResult(correlation=0.911111111111111, pvalue=2.9761904761904762e-05)
9

Nếu bạn muốn Kendall từ Tau, thì bạn sử dụng

        x       y

x    1.00    0.76
y    0.76    1.00
60:

Bạn sẽ sử dụng các mảng

>>> scipy.stats.pearsonr(x, y)[0]    # Pearson's r
0.7586402890911869
>>> scipy.stats.spearmanr(x, y)[0]   # Spearman's rho
0.9757575757575757
>>> scipy.stats.kendalltau(x, y)[0]  # Kendall's tau
0.911111111111111
8,
>>> scipy.stats.pearsonr(x, y)[0]    # Pearson's r
0.7586402890911869
>>> scipy.stats.spearmanr(x, y)[0]   # Spearman's rho
0.9757575757575757
>>> scipy.stats.kendalltau(x, y)[0]  # Kendall's tau
0.911111111111111
9,
>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
46 và
>>> r = np.corrcoef(x, y)
>>> r
array([[1.        , 0.75864029],
       [0.75864029, 1.        ]])
>>> r[0, 1]
0.7586402890911867
>>> r[1, 0]
0.7586402890911869
23 từ các phần trước. Bạn có thể tạo chúng một lần nữa để cắt giảm khi cuộn:

>>>

>>> scipy.stats.pearsonr(x, y)[0]    # Pearson's r
0.7586402890911869
>>> scipy.stats.spearmanr(x, y)[0]   # Spearman's rho
0.9757575757575757
>>> scipy.stats.kendalltau(x, y)[0]  # Kendall's tau
0.911111111111111
0

Bây giờ bạn đã có dữ liệu của mình, bạn đã sẵn sàng để vẽ.

X-y âm mưu với một đường hồi quy

Đầu tiên, bạn sẽ thấy cách tạo ra một âm mưu X-Y với đường hồi quy, phương trình của nó và hệ số tương quan Pearson. Bạn có thể có được độ dốc và việc chặn đường hồi quy, cũng như hệ số tương quan, với

>>> import numpy as np
>>> import scipy.stats
>>> x = np.arange(10, 20)
>>> y = np.array([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
8:

>>>

>>> scipy.stats.pearsonr(x, y)[0]    # Pearson's r
0.7586402890911869
>>> scipy.stats.spearmanr(x, y)[0]   # Spearman's rho
0.9757575757575757
>>> scipy.stats.kendalltau(x, y)[0]  # Kendall's tau
0.911111111111111
1

Bây giờ bạn đã có dữ liệu của mình, bạn đã sẵn sàng để vẽ.

>>>

>>> scipy.stats.pearsonr(x, y)[0]    # Pearson's r
0.7586402890911869
>>> scipy.stats.spearmanr(x, y)[0]   # Spearman's rho
0.9757575757575757
>>> scipy.stats.kendalltau(x, y)[0]  # Kendall's tau
0.911111111111111
2

Bây giờ bạn đã có dữ liệu của mình, bạn đã sẵn sàng để vẽ.

>>> scipy.stats.pearsonr(x, y)[0]    # Pearson's r
0.7586402890911869
>>> scipy.stats.spearmanr(x, y)[0]   # Spearman's rho
0.9757575757575757
>>> scipy.stats.kendalltau(x, y)[0]  # Kendall's tau
0.911111111111111
3

X-y âm mưu với một đường hồi quy

Hướng dẫn how do you do correlation in python? - làm thế nào để bạn làm tương quan trong python?

Đầu tiên, bạn sẽ thấy cách tạo ra một âm mưu X-Y với đường hồi quy, phương trình của nó và hệ số tương quan Pearson. Bạn có thể có được độ dốc và việc chặn đường hồi quy, cũng như hệ số tương quan, với

>>> import numpy as np
>>> import scipy.stats
>>> x = np.arange(10, 20)
>>> y = np.array([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
8:

Bây giờ bạn có tất cả các giá trị bạn cần. Bạn cũng có thể lấy chuỗi với phương trình của dòng hồi quy và giá trị của hệ số tương quan. F-Strings rất thuận tiện cho mục đích này:

Bây giờ, hãy tạo cốt truyện X-Y với

        x       y

x    1.00    0.76
y    0.76    1.00
68:

>>>

>>> scipy.stats.pearsonr(x, y)[0]    # Pearson's r
0.7586402890911869
>>> scipy.stats.spearmanr(x, y)[0]   # Spearman's rho
0.9757575757575757
>>> scipy.stats.kendalltau(x, y)[0]  # Kendall's tau
0.911111111111111
4

Đầu ra của bạn sẽ trông như thế này:

Các hình vuông màu đỏ đại diện cho các quan sát, trong khi đường màu xanh là đường hồi quy. Phương trình của nó được liệt kê trong truyền thuyết, cùng với hệ số tương quan.

>>> scipy.stats.pearsonr(x, y)[0]    # Pearson's r
0.7586402890911869
>>> scipy.stats.spearmanr(x, y)[0]   # Spearman's rho
0.9757575757575757
>>> scipy.stats.kendalltau(x, y)[0]  # Kendall's tau
0.911111111111111
5

X-y âm mưu với một đường hồi quy

Hướng dẫn how do you do correlation in python? - làm thế nào để bạn làm tương quan trong python?

Đầu tiên, bạn sẽ thấy cách tạo ra một âm mưu X-Y với đường hồi quy, phương trình của nó và hệ số tương quan Pearson. Bạn có thể có được độ dốc và việc chặn đường hồi quy, cũng như hệ số tương quan, với

>>> import numpy as np
>>> import scipy.stats
>>> x = np.arange(10, 20)
>>> y = np.array([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
8:

Bây giờ bạn có tất cả các giá trị bạn cần. Bạn cũng có thể lấy chuỗi với phương trình của dòng hồi quy và giá trị của hệ số tương quan. F-Strings rất thuận tiện cho mục đích này:

Bây giờ, hãy tạo cốt truyện X-Y với

        x       y

x    1.00    0.76
y    0.76    1.00
68:correlation coefficients are statistics that measure the association between variables or features of datasets. They’re very important in data science and machine learning.

Đầu ra của bạn sẽ trông như thế này:

  • Các hình vuông màu đỏ đại diện cho các quan sát, trong khi đường màu xanh là đường hồi quy. Phương trình của nó được liệt kê trong truyền thuyết, cùng với hệ số tương quan. product-moment correlation coefficient
  • Các bản đồ nhiệt của ma trận tương quan rank correlation coefficient
  • Ma trận tương quan có thể trở nên thực sự lớn và khó hiểu khi bạn có nhiều tính năng! May mắn thay, bạn có thể trình bày nó một cách trực quan dưới dạng bản đồ nhiệt trong đó mỗi trường có màu tương ứng với giá trị của nó. Bạn sẽ cần ma trận tương quan: rank correlation coefficient

Có thể thuận tiện cho bạn để làm tròn các số trong ma trận tương quan với

        x       y

x    1.00    0.76
y    0.76    1.00
69, vì chúng sẽ được hiển thị trên bản đồ nhiệt.visualize data, regression lines, and correlation matrices with Matplotlib plots and heatmaps.

Cuối cùng, hãy tạo bản đồ nhiệt của bạn với

        x       y

x    1.00    0.76
y    0.76    1.00
70 và ma trận tương quan làm đối số của nó:

Làm thế nào để bạn viết tương quan trong Python?

Tương quan Pearson: Thực hiện Numpy và Scipy.>>> r, p = scipy.stats.pearsonr (x, y) >>> r 0.7586402890911869 >>> p 0.010964341301680829 >>> np.r, p = scipy. stats. pearsonr(x, y) >>> r 0.7586402890911869 >>> p 0.010964341301680829 >>> np.

Tương quan Python hoạt động như thế nào?

Tương quan tóm tắt cường độ và hướng của mối liên hệ tuyến tính (đường thẳng) giữa hai biến định lượng.Được biểu thị bằng r, nó có các giá trị giữa -1 và +1.Một giá trị dương cho R cho thấy một liên kết tích cực và giá trị âm cho R cho thấy mối liên hệ tiêu cực.summarizes the strength and direction of the linear (straight-line) association between two quantitative variables. Denoted by r, it takes values between -1 and +1. A positive value for r indicates a positive association, and a negative value for r indicates a negative association.

Làm thế nào để bạn tìm thấy mối tương quan giữa hai danh sách trong Python?

Pearsonr () để tính toán mối tương quan Pearson giữa hai danh sách.Gọi scipy.stats.pearsonr (x, y) với hai danh sách có độ dài bằng nhau là x và y để tính tương quan Pearson của họ.Call scipy. stats. pearsonr(x, y) with two lists of equal length as x and y to calculate their Pearson correlation.

Return () return là gì?

Hàm rorm () Hàm tổng hợp chính xác trả về hệ số tương quan giữa hai số.a coefficient of correlation between two numbers.