Cốt truyện z-score python

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}}
    
    
    
    

Chủ Đề