Tương quan lêson python

Hệ số tương quan Pearson đo lường mối quan hệ tuyến tính giữa hai bộ dữ liệu. Giống như các hệ số tương quan khác, hệ số này thay đổi trong khoảng từ -1 đến +1 với 0 có nghĩa là không có tương quan. Mối tương quan của -1 hoặc +1 ngụ ý một mối quan hệ tuyến tính chính xác. Mối tương quan tích cực ngụ ý rằng khi x tăng, thì y cũng vậy. Mối tương quan tiêu cực ngụ ý rằng khi x tăng, y giảm

Hàm này cũng thực hiện kiểm tra giả thuyết khống rằng các bản phân phối bên dưới các mẫu không tương quan và được phân phối bình thường. (Xem Kowalski để biết phần thảo luận về tác động của tính không chuẩn của đầu vào đối với sự phân bố của hệ số tương quan. ) Giá trị p biểu thị gần đúng xác suất của một hệ thống không tương quan tạo ra các tập dữ liệu có tương quan Pearson ít nhất là cực đoan như xác suất được tính toán từ các tập dữ liệu này

Thông số . x (N,) giống như mảng

mảng đầu vào

y (N,) giống như mảng

mảng đầu vào

alternative {'hai mặt', 'lớn hơn', 'ít hơn'}, tùy chọn

Xác định giả thuyết thay thế. Mặc định là 'hai mặt'. Lựa chọn tiếp theo đã khả thi

  • 'hai mặt'. tương quan là khác không

  • 'ít hơn'. tương quan âm (nhỏ hơn 0)

  • 'lớn hơn'. tương quan là tích cực (lớn hơn 0)

Mới trong phiên bản 1. 9. 0

Trả về . kết quả

Một đối tượng có các thuộc tính sau

thống kê trôi nổi

Hệ số tương quan thời điểm sản phẩm Pearson

giá trị trôi nổi

Giá trị p được liên kết với phương án đã chọn

Đối tượng có phương thức sau

khoảng_tin_cậy(mức_tin_cậy=0. 95)

Phương pháp này tính khoảng tin cậy của thống kê hệ số tương quan với mức độ tin cậy đã cho. Khoảng tin cậy được trả về trong một namedtuple với các trường thấp và cao. Xem Ghi chú để biết thêm chi tiết

Cảnh báo .

Tăng lên nếu một đầu vào là một mảng không đổi. Hệ số tương quan không được xác định trong trường hợp này, vì vậy

p = 2*dist.cdf(-abs(r))
0 được trả về

Tăng lên nếu một đầu vào là hằng số “gần như”. Mảng

p = 2*dist.cdf(-abs(r))
2 được coi là gần như không đổi nếu
p = 2*dist.cdf(-abs(r))
3. Lỗi số trong phép tính
p = 2*dist.cdf(-abs(r))
4 trong trường hợp này có thể dẫn đến tính toán r không chính xác

Xem thêm

Hệ số tương quan cấp bậc Spearman

Kendall's tau, thước đo tương quan cho dữ liệu thứ tự

ghi chú

Hệ số tương quan được tính như sau

\[r = \frac{\sum (x - m_x) (y - m_y)} {\sqrt{\sum (x - m_x)^2 \sum (y - m_y)^2}}\]

trong đó \(m_x\) là giá trị trung bình của vectơ x và \(m_y\ . is the mean of the vector y.

Với giả định rằng x và y được rút ra từ các phân phối chuẩn độc lập (do đó hệ số tương quan tổng thể bằng 0), hàm mật độ xác suất của hệ số tương quan mẫu r là (, )

\[f(r) = \frac{{(1-r^2)}^{n/2-2}}{\mathrm{B}(\frac{1}{2},\frac{n}{

trong đó n là số lượng mẫu và B là hàm beta. Điều này đôi khi được gọi là phân phối chính xác của r. Đây là phân phối được sử dụng để tính toán giá trị p. Phân phối là phân phối beta trên khoảng [-1, 1], với các tham số hình dạng bằng nhau a = b = n/2 - 1. Xét về triển khai phân phối beta của SciPy, phân phối của r là

dist = scipy.stats.beta(n/2 - 1, n/2 - 1, loc=-1, scale=2)

Giá trị p mặc định được trả về là giá trị p hai mặt. Đối với một mẫu nhất định có hệ số tương quan r, giá trị p là xác suất mà abs(r’) của một mẫu ngẫu nhiên x’ và y’ được rút ra từ tổng thể có tương quan bằng 0 sẽ lớn hơn hoặc bằng abs(r). Xét về đối tượng

p = 2*dist.cdf(-abs(r))
9 được hiển thị ở trên, giá trị p cho r và độ dài n đã cho có thể được tính như sau

p = 2*dist.cdf(-abs(r))

Khi n là 2, phân phối liên tục ở trên không được xác định rõ. Người ta có thể giải thích giới hạn của phân phối beta khi các tham số hình dạng a và b tiến tới a = b = 0 dưới dạng phân phối rời rạc với khối lượng xác suất bằng nhau tại r = 1 và r = -1. Trực tiếp hơn, người ta có thể quan sát điều đó, với dữ liệu x = [x1, x2] và y = [y1, y2] và giả sử x1. = x2 và y1. = y2, các giá trị duy nhất có thể có của r là 1 và -1. Bởi vì abs(r’) đối với bất kỳ mẫu x’ và y’ nào có độ dài 2 sẽ bằng 1, giá trị p hai phía cho mẫu có độ dài 2 luôn là 1

Để tương thích ngược, đối tượng được trả về cũng hoạt động giống như một bộ có độ dài hai chứa thống kê và giá trị p

Người giới thiệu

[ 1 ] (,)

“Hệ số tương quan Pearson”, Wikipedia, https. // vi. wikipedia. org/wiki/Pearson_correlation_coeff

[]

Sinh viên, “Lỗi có thể xảy ra của một hệ số tương quan”, Biometrika, Tập 6, Số 2-3, ngày 1 tháng 9 năm 1908, trang. 302-310

[]

C. J. Kowalski, “Về ảnh hưởng của tính phi chuẩn đối với việc phân phối hệ số tương quan thời điểm sản phẩm mẫu” Tạp chí của Hiệp hội Thống kê Hoàng gia. Series C (Thống kê ứng dụng), Tập. 21, Không. 1 (1972), trang. 1-12

ví dụ

>>> import numpy as np
>>> from scipy import stats
>>> res = stats.pearsonr([1, 2, 3, 4, 5], [10, 9, 2.5, 6, 4])
>>> res
PearsonRResult(statistic=-0.7426106572325056, pvalue=0.15055580885344558)
>>> res.confidence_interval()
ConfidenceInterval(low=-0.9816918044786463, high=0.40501116769030976)

Có sự phụ thuộc tuyến tính giữa x và y nếu y = a + b*x + e, trong đó a, b là hằng số và e là số hạng sai số ngẫu nhiên, được giả định là không phụ thuộc vào x. Để đơn giản, giả sử rằng x là chuẩn tắc chuẩn, a=0, b=1 và e tuân theo phân phối chuẩn với trung bình bằng 0 và độ lệch chuẩn s>0

________số 8_______

Điều này phải gần với giá trị chính xác được đưa ra bởi

>>> 1/np.sqrt(1 + s**2)
0.8944271909999159

Vì s=0. 5, chúng tôi quan sát mức độ tương quan cao. Nói chung, một phương sai lớn của tiếng ồn làm giảm mối tương quan, trong khi mối tương quan tiến gần đến một khi phương sai của lỗi tiến tới 0

Điều quan trọng cần lưu ý là không có mối tương quan nào không có nghĩa là độc lập trừ khi (x, y) cùng bình thường. Mối tương quan thậm chí có thể bằng không khi có một cấu trúc phụ thuộc rất đơn giản. nếu X tuân theo phân phối chuẩn chuẩn, hãy để y = abs(x). Lưu ý rằng mối tương quan giữa x và y bằng không. Thật vậy, vì kỳ vọng của x bằng 0 nên cov(x, y) = E[x*y]. Theo định nghĩa, giá trị này bằng E[x*abs(x)] bằng không theo tính đối xứng. Các dòng mã sau minh họa quan sát này

>>> y = np.abs(x)
>>> stats.pearsonr(x, y)
PearsonRResult(statistic=-0.05444919272687482, pvalue=0.22422294836207743)

Một hệ số tương quan khác không có thể gây hiểu lầm. Ví dụ: nếu X có phân phối chuẩn chuẩn, hãy xác định y = x nếu x < 0 và y = 0 nếu ngược lại. Một phép tính đơn giản cho thấy rằng corr(x, y) = sqrt(2/Pi) = 0. 797…, ngụ ý mức độ tương quan cao

>>> y = np.where(x < 0, x, 0)
>>> stats.pearsonr(x, y)
PearsonRResult(statistic=0.861985781588, pvalue=4.813432002751103e-149)

Điều này không trực quan vì không có sự phụ thuộc của x và y nếu x lớn hơn 0, điều này xảy ra trong khoảng một nửa số trường hợp nếu chúng ta lấy mẫu x và y