Trong thống kê, điểm z cho chúng tôi biết một giá trị cách giá trị trung bình bao nhiêu độ lệch chuẩn. Chúng tôi sử dụng công thức sau để tính điểm z
z = [X – μ] / σ
ở đâu
- X là một giá trị dữ liệu thô duy nhất
- μ là trung bình dân số
- σ là độ lệch chuẩn dân số
Hướng dẫn này giải thích cách tính điểm z cho các giá trị dữ liệu thô trong Python
Cách tính Điểm Z trong Python
Chúng tôi có thể tính điểm z trong Python bằng cách sử dụng scipy. số liệu thống kê. zscore, sử dụng cú pháp sau
scipy. số liệu thống kê. zscore[a, axis=0, ddof=0, nan_policy=’propagate’]
ở đâu
- a. một mảng giống như đối tượng chứa dữ liệu
- trục. trục dọc theo đó để tính điểm z. Mặc định là 0
- ddof. bậc tự do hiệu chỉnh trong tính toán độ lệch chuẩn. Mặc định là 0
- nan_policy. cách xử lý khi đầu vào chứa nan. Mặc định là lan truyền, trả về nan. 'nâng cao' đưa ra lỗi và 'bỏ qua' thực hiện các phép tính bỏ qua các giá trị nan
Các ví dụ sau đây minh họa cách sử dụng hàm này để tính toán điểm z cho các mảng có nhiều nốt sần một chiều, các mảng có nhiều nốt sần nhiều chiều và Khung dữ liệu Pandas
Mảng một chiều Numpy
Bước 1. Nhập mô-đun
import pandas as pd import numpy as np import scipy.stats as stats
Bước 2. Tạo một mảng các giá trị
data = np.array[[6, 7, 7, 12, 13, 13, 15, 16, 19, 22]]
Bước 3. Tính điểm số z cho từng giá trị trong mảng
stats.zscore[data]
[-1.394, -1.195, -1.195, -0.199, 0, 0, 0.398, 0.598, 1.195, 1.793]
Mỗi điểm số z cho chúng ta biết có bao nhiêu độ lệch chuẩn của một giá trị riêng lẻ so với giá trị trung bình. Ví dụ
- Giá trị đầu tiên của "6" trong mảng là 1. 394 độ lệch chuẩn dưới giá trị trung bình
- Giá trị thứ năm của "13" trong mảng là 0 độ lệch chuẩn so với giá trị trung bình, i. e. nó bằng với giá trị trung bình
- Giá trị cuối cùng của "22" trong mảng là 1. 793 độ lệch chuẩn trên giá trị trung bình
Mảng đa chiều Numpy
Nếu chúng ta có một mảng nhiều chiều, thì chúng ta có thể sử dụng tham số trục để chỉ định rằng chúng ta muốn tính toán từng điểm số z so với mảng riêng của nó. Ví dụ: giả sử chúng ta có mảng nhiều chiều sau
data = np.array[[[5, 6, 7, 7, 8], [8, 8, 8, 9, 9], [2, 2, 4, 4, 5]]]
Chúng ta có thể sử dụng cú pháp sau để tính điểm z cho mỗi mảng
stats.zscore[data, axis=1] [[-1.569 -0.588 0.392 0.392 1.373] [-0.816 -0.816 -0.816 1.225 1.225] [-1.167 -1.167 0.5 0.5 1.333]]
Điểm số z cho từng giá trị riêng lẻ được hiển thị tương ứng với mảng mà chúng nằm trong. Ví dụ
- Giá trị đầu tiên của "5" trong mảng đầu tiên là 1. 159 độ lệch chuẩn dưới giá trị trung bình của mảng
- Giá trị đầu tiên của “8” trong mảng thứ hai là. 816 độ lệch chuẩn dưới giá trị trung bình của mảng
- Giá trị đầu tiên của "2" trong mảng thứ ba là 1. 167 độ lệch chuẩn dưới giá trị trung bình của mảng
Khung dữ liệu gấu trúc
Giả sử thay vào đó chúng ta có Pandas DataFrame
data = pd.DataFrame[np.random.randint[0, 10, size=[5, 3]], columns=['A', 'B', 'C']] data A B C 0 8 0 9 1 4 0 7 2 9 6 8 3 1 8 1 4 8 0 8
Chúng ta có thể sử dụng hàm apply để tính điểm z của các giá trị riêng lẻ theo cột
data.apply[stats.zscore] A B C 0 0.659380 -0.802955 0.836080 1 -0.659380 -0.802955 0.139347 2 0.989071 0.917663 0.487713 3 -1.648451 1.491202 -1.950852 4 0.659380 -0.802955 0.487713
Điểm số z cho từng giá trị riêng lẻ được hiển thị tương ứng với cột mà chúng nằm trong. Ví dụ
- Giá trị đầu tiên của "8" trong cột đầu tiên là 0. 659 độ lệch chuẩn trên giá trị trung bình của cột
- Giá trị đầu tiên của "0" trong cột thứ hai là. 803 độ lệch chuẩn bên dưới giá trị trung bình của cột
- Giá trị đầu tiên của "9" trong cột thứ ba là. 836 độ lệch chuẩn trên giá trị trung bình của cột
Dictionary Representation of A Graph Object: {'data': [{'x': [1, 2, 3], 'y': [1, 3, 2], 'type': 'bar'}], 'layout': {'height': 600, 'width': 800}} JSON Representation of A Graph Object: {"data":[{"x":[1,2,3],"y":[1,3,2],"type":"bar"}],"layout":{"height":600,"width":800}}