วิธีคำนวณคะแนน 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