วิธีคำนวณคะแนน z ใน python


ในสถิติ คะแนน z บอกเราว่าค่าหนึ่งๆ มาจาก ค่าเฉลี่ย เป็นจำนวนเท่าใด เราใช้สูตรต่อไปนี้เพื่อคำนวณคะแนน z:

z = (X – μ) / σ

ทอง:

  • X คือค่าข้อมูลดิบค่าเดียว
  • μ คือค่าเฉลี่ยของประชากร
  • σ คือค่าเบี่ยงเบนมาตรฐานของประชากร

บทช่วยสอนนี้จะอธิบายวิธีคำนวณคะแนน z สำหรับค่าข้อมูลดิบใน Python

วิธีการคำนวณคะแนน Z ใน Python

เราสามารถคำนวณคะแนน z ใน Python ได้โดยใช้ scipy.stats.zscore ซึ่งใช้ไวยากรณ์ต่อไปนี้:

scipy.stats.zscore (a, แกน = 0, ddof = 0, nan_policy = ‘เผยแพร่’)

ทอง:

  • a : วัตถุประเภทอาร์เรย์ที่มีข้อมูล
  • axis : แกนที่ใช้คำนวณคะแนน z ค่าเริ่มต้นคือ 0
  • ddof : การแก้ไของศาอิสระในการคำนวณค่าเบี่ยงเบนมาตรฐาน ค่าเริ่มต้นคือ 0
  • nan_policy : วิธีจัดการเมื่ออินพุตมี nan ค่าดีฟอลต์คือการเผยแพร่ ซึ่งส่งคืน nan ‘raise’ ทำให้เกิดข้อผิดพลาด และ ‘ละเว้น’ ทำการคำนวณโดยไม่สนใจค่า nan

ตัวอย่างต่อไปนี้แสดงให้เห็นถึงวิธีการใช้ฟังก์ชันนี้ในการคำนวณคะแนน z สำหรับอาร์เรย์ numpy แบบหนึ่งมิติ อาร์เรย์ numpy หลายมิติ และ Pandas DataFrames

อาร์เรย์หนึ่งมิติจำนวนมาก

ขั้นตอนที่ 1: นำเข้าโมดูล

 import pandas as pd
import numpy as np
import scipy.stats as stats

ขั้นตอนที่ 2: สร้างตารางค่า

 data = np.array([6, 7, 7, 12, 13, 13, 15, 16, 19, 22])

ขั้นตอนที่ 3: คำนวณคะแนน z สำหรับแต่ละค่าในตาราง

 stats.zscore(data)

[-1.394, -1.195, -1.195, -0.199, 0, 0, 0.398, 0.598, 1.195, 1.793]

คะแนน z แต่ละค่าจะบอกเราว่าค่าแต่ละค่ามาจากค่าเฉลี่ยเป็นจำนวนเท่าใด ตัวอย่างเช่น:

  • ค่าแรกของ “6” ในตารางคือ 1.394 ส่วนเบี่ยงเบนมาตรฐาน ที่ต่ำกว่า ค่าเฉลี่ย
  • ค่าที่ห้าของ “13” ในตารางคือ 0 ส่วนเบี่ยงเบนมาตรฐานจากค่าเฉลี่ยนั่นคือเท่ากับค่าเฉลี่ย
  • ค่าสุดท้ายของ “22” ในตารางคือ 1.793 ส่วนเบี่ยงเบนมาตรฐาน เหนือ ค่าเฉลี่ย

อาร์เรย์หลายมิติจำนวนมาก

หากเรามีอาร์เรย์หลายมิติ เราสามารถใช้พารามิเตอร์ แกน เพื่อระบุว่าเราต้องการคำนวณคะแนน z แต่ละรายการโดยสัมพันธ์กับอาร์เรย์ของตัวเอง ตัวอย่างเช่น สมมติว่าเรามีอาร์เรย์หลายมิติดังต่อไปนี้:

 data = np.array([[5, 6, 7, 7, 8],
                 [8, 8, 8, 9, 9],
                 [2, 2, 4, 4, 5]])

เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อคำนวณคะแนน z สำหรับแต่ละตาราง:

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

คะแนน z สำหรับแต่ละค่าจะแสดงโดยสัมพันธ์กับตารางที่พบค่าเหล่านั้น ตัวอย่างเช่น:

  • ค่าแรกของ “5” ในตารางแรกคือ 1.159 ส่วนเบี่ยงเบนมาตรฐาน ที่ต่ำกว่า ค่าเฉลี่ยของตาราง
  • ค่าแรกของ “8” ในตารางที่สองคือ 0.816 ส่วนเบี่ยงเบนมาตรฐาน ที่ต่ำกว่า ค่าเฉลี่ยของตาราง
  • ค่าแรกของ “2” ในตารางที่สามคือ 1.167 ส่วนเบี่ยงเบนมาตรฐาน ที่ต่ำกว่า ค่าเฉลี่ยของตาราง

เฟรมข้อมูลแพนด้า

สมมติว่าเรามี Pandas DataFrame แทน:

 data = pd.DataFrame(np.random.randint(0, 10, size=(5, 3)), columns=['A', 'B', 'C'])
data

ABC
0 8 0 9
1 4 0 7
2 9 6 8
3 1 8 1
4 8 0 8

เราสามารถใช้ฟังก์ชัน Apply เพื่อคำนวณคะแนน z ของแต่ละค่าต่อคอลัมน์:

 data.apply(stats.zscore)

          ABC
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

คะแนน z สำหรับแต่ละค่าจะแสดงโดยสัมพันธ์กับคอลัมน์ที่ค่าเหล่านั้นอยู่ ตัวอย่างเช่น:

  • ค่าแรกของ “8” ในคอลัมน์แรกคือ 0.659 ส่วนเบี่ยงเบนมาตรฐาน เหนือ ค่าเฉลี่ยของคอลัมน์
  • ค่า “0” แรกในคอลัมน์ที่สองคือค่าเบี่ยงเบนมาตรฐาน 0.803 ซึ่งต่ำกว่า ค่าเฉลี่ยในคอลัมน์
  • ค่าแรกของ “9” ในคอลัมน์ที่สามคือ 0.836 ส่วนเบี่ยงเบนมาตรฐาน เหนือ ค่าเฉลี่ยของคอลัมน์

แหล่งข้อมูลเพิ่มเติม:

วิธีการคำนวณคะแนน Z ใน Excel
วิธีการคำนวณคะแนน Z ใน SPSS
วิธีการคำนวณคะแนน Z บนเครื่องคิดเลข TI-84

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *