ในบทเรียนที่แล้ว เราได้เรียนรู้วิธีการคำนวณ Standard Deviation ด้วย Excel ครั้งนี้เราจะมาเรียนรู้วิธีการคำนวณ Standard Deviation ใน R ทีละขั้นตอนพร้อมตัวอย่างที่ชัดเจน
แม้ว่า R จะมีโครงสร้างข้อมูลหลายประเภท แต่ในบทช่วยสอนนี้เราจะเน้นที่วิธีการคำนวณ Standard Deviation ใน RStudio สำหรับโครงสร้างข้อมูลที่ใช้บ่อยที่สุด ได้แก่ Data Frame, Vector และ Array
โดยสมมติว่าคุณได้ติดตั้ง R และ RStudio ไว้ในคอมพิวเตอร์แล้ว ให้เปิด RStudio ในระหว่างนี้ เรามาทบทวนเรื่องสำคัญเกี่ยวกับ Standard Deviation กันสักหน่อย - จะไม่ใช้เวลานาน
ตารางอ้างอิงด่วน: Standard Deviation ใน R
| Function | ใช้สำหรับ | Syntax | ตัวอย่าง |
|---|---|---|---|
| sd() | Sample Standard Deviation | sd(x) | sd(df$column) |
| sd() | Population Standard Deviation | sd(x) * sqrt((n-1)/n) | sd(data) * sqrt(24/25) |
| var() | Variance (สำหรับคำนวณด้วยตัวเอง) | var(x) | sqrt(var(data)) |
Standard Deviation คืออะไร?
อธิบายง่ายๆ Standard Deviation บอกเราว่าชุดข้อมูลกระจายตัวมากน้อยเพียงใดเมื่อเทียบกับค่าเฉลี่ย (Mean) ในชุดข้อมูลนั้น ค่า Standard Deviation ที่ต่ำเป็นที่ต้องการเพราะบอกว่าข้อมูลมีความน่าเชื่อถือมากกว่า เนื่องจากกระจุกตัวอยู่รอบๆ ค่าเฉลี่ย ในทางตรงกันข้าม ค่า Standard Deviation ที่สูงบ่งชี้ว่าข้อมูลกระจายตัวอยู่ในช่วงกว้างมากขึ้น
สัญลักษณ์ทั่วไปสำหรับ Standard Deviation คือ sd อย่างไรก็ตาม Standard Deviation มีสองสูตร (รวมถึงสองสัญลักษณ์) ขึ้นอยู่กับว่าคำนวณสำหรับ Population ทั้งหมดหรือ Sample
สัญลักษณ์สำหรับ Population Standard Deviation แทนด้วยตัวอักษรกรีกตัวพิมพ์เล็ก Sigma σ ในขณะที่สัญลักษณ์สำหรับ Sample Standard Deviation คือตัวอักษร s ที่คุ้นเคยมากกว่า
สูตร Population Standard Deviation
โดยที่:
- σ = Population Standard Deviation
- μ = Population Mean
- N = ขนาด Population
สูตร Sample Standard Deviation
โดยที่:
- s = Sample Standard Deviation
- x̄ = Sample Mean
- n = ขนาด Sample
- n-1 = Bessel's Correction (Degrees of Freedom)
อาจมีความสับสนเกี่ยวกับ Standard Deviation ไม่ว่าจะเป็นสัญลักษณ์ การคำนวณ และการใช้งานที่ถูกต้องในงานวิจัยทางสถิติ โชคดีที่ฉันมีวิธีแก้ไขที่สมบูรณ์แบบ! ลองใช้เวลาสักครู่อ่านบทเรียน Population vs. Sample Standard Deviation อธิบายละเอียด ก่อน แล้วคุณจะรู้สึกมั่นใจเมื่อจะเริ่มใช้งาน R
การคำนวณ Standard Deviation ใน R
ใน R, Function ที่ใช้สำหรับ Standard Deviation คือ sd() และโดยพื้นฐานแล้วจะคำนวณรากที่สองของ Variance ในชุดข้อมูลที่ป้อนเข้าไป ชุดข้อมูลและค่าต่างๆ ที่มีอยู่จะถูกกำหนดก่อน จากนั้นจึงนำไปใส่เป็น Input ใน sd() Function เพื่อทำการคำนวณ
สำคัญ: sd() Function ใน R คำนวณ Sample Standard Deviation (ใช้ n-1 ในตัวหาร) หากคุณต้องการ Population Standard Deviation คุณจะต้องปรับค่าด้วย Correction Factor
ต่อไป มาเรียนรู้วิธีการคำนวณ Standard Deviation ใน R โดยใช้ sd() Function พร้อมตัวอย่างทีละขั้นตอน
การใช้งานกับชุดข้อมูล Excel
เริ่มต้นด้วยการคำนวณ Standard Deviation ของอายุใน R สำหรับกลุ่มผู้ตอบแบบสอบถามในชุดข้อมูล Excel
คุณสามารถทำตามได้โดยดาวน์โหลดไฟล์ Standard-Deviation-on-R.xlsx จากแถบด้านข้าง เมื่อดาวน์โหลดแล้ว ให้นำเข้าชุดข้อมูล Excel ใน RStudio โดยไปที่ File → Import Dataset → From Excel และเลือกไฟล์ที่ดาวน์โหลดมา
ชุดข้อมูล Excel ตัวอย่างของเรามีสองคอลัมน์: age และ weight ดังที่เห็นในรูปต่อไปนี้

รูปที่ 1: ชุดข้อมูล Excel ตัวอย่างที่มีคอลัมน์ Age และ Weight สำหรับวิเคราะห์ Standard Deviation ใน R
ขั้นตอนที่ 1: นำเข้าไฟล์ Excel
ใน RStudio ไปที่:
- File → Import Dataset → From Excel
- เลือกไฟล์ Standard-Deviation-on-R.xlsx
ขั้นตอนที่ 2: คำนวณ Standard Deviation สำหรับคอลัมน์ Age
เพื่อหา Standard Deviation ใน R สำหรับส่วนย่อย age ในชุดข้อมูล Excel ที่นำเข้า ให้พิมพ์ใน RStudio Console:
sd(Standard_Deviation_on_R$Age)โดยที่:
- sd() = Standard Deviation Function ใน R
- Standard_Deviation_on_R = ชุดข้อมูล Excel Object
- $ = Operator ที่ใช้ดึงส่วนเฉพาะของชุดข้อมูล เช่น คอลัมน์ age
และ Standard Deviation สำหรับ Age คือ 14.46402 ลองคำนวณ Standard Deviation สำหรับส่วนย่อย weight ในไฟล์ Excel เดียวกัน

รูปที่ 2: หน้าจอ RStudio Console แสดง Standard Deviation เท่ากับ 14.46402 สำหรับคอลัมน์ Age
ขั้นตอนที่ 3: คำนวณ Standard Deviation สำหรับคอลัมน์ Weight
sd(Standard_Deviation_on_R$Weight)การใช้งานกับ Data Frame
ใน R, Data Frame ประกอบด้วยสามส่วนหลัก: แถว, คอลัมน์ และ ข้อมูล โดยสรุป Data Frame คือทุกอย่างที่สามารถเก็บข้อมูลในรูปแบบตารางได้
เราสามารถนำเข้า Data Frame ใน R จากไฟล์ Text หรือ Excel (เหมือนที่เราทำก่อนหน้านี้) หรือสร้าง Data Frame ด้วยตนเองและดึง Standard Deviation ของคอลัมน์ตัวเลขออกมาโดยใช้ sd() Function ใน R
ก่อนอื่น เรามาสร้าง Data Frame ใน R ที่ประกอบด้วยบริษัทเทคโนโลยีชั้นนำห้าบริษัทและราคาต่อหุ้น (NASDAQ) ณ เวลาที่เขียนบทความนี้:
| APPL | MSFT | AMZN | GOOGL | TSLA |
|---|---|---|---|---|
| 174.24 | 308.31 | 3259.95 | 2781.35 | 1078 |
ขั้นตอนที่ 1: สร้าง Data Frame
เราจะใช้ data.frame() Function เพื่อสร้าง df Object ใน R Data Frame นี้จะมีห้าคอลัมน์และสองแถว คล้ายกับตารางด้านบน ประกอบด้วย Company ID (1 ถึง 5), ชื่อบริษัท และราคาหุ้นของแต่ละบริษัท
นี่คือวิธีสร้าง Data Frame ใน R โดยใช้คำสั่งเดียว:
df <- data.frame(company_id = c(1:5),
company_name = c("APPL", "MSFT", "AMZN", "GOOGL", "TSLA"),
share_price = c(174.24, 308.31, 3259.95, 2781.35, 1078),
stringsAsFactors = FALSE)โดยที่:
- df = Data Frame Object ที่มี Company ID, ชื่อบริษัท และราคาหุ้นของบริษัทเทคโนโลยีชั้นนำห้าบริษัทของสหรัฐฯ
- stringsAsFactors = Argument สำหรับ data.frame() Function และใช้เพื่อกำหนดว่า String ใน Data Frame ควรถือเป็น Factor หรือเป็น String ธรรมดา ในกรณีนี้เราต้องการให้ข้อมูลเป็น Character String ดังนั้นเราจึงเพิ่ม FALSE Flag ใน stringsAsFactors Argument
ขั้นตอนที่ 2: คำนวณ Standard Deviation สำหรับคอลัมน์ share_price
สุดท้าย มาคำนวณ Standard Deviation ใน R สำหรับราคาหุ้นของบริษัทเทคโนโลยีชั้นนำห้าบริษัทของสหรัฐฯ โดยใช้ sd() Function ที่เรารู้จักกันดีแล้ว:
sd(df$share_price)
รูปที่ 3: ผลลัพธ์ Standard Deviation เท่ากับ 1422.415 สำหรับราคาหุ้นบริษัทเทคใน Data Frame ของ R
อย่างที่เห็น ค่า Standard Deviation ที่คำนวณได้สำหรับราคาหุ้นคือ 1422.415
แน่นอนว่า เราสามารถเพิ่มแถวและคอลัมน์เพิ่มเติมใน Data Frame และขยายการวิเคราะห์ Standard Deviation ใน R ให้กว้างขึ้นนอกเหนือจากแค่ราคาหุ้น
การใช้งานกับ Vector
Vector เป็นโครงสร้างข้อมูลพื้นฐานที่สุดใน R และประกอบด้วยชุดของข้อมูลที่เป็นประเภทเดียวกัน
ตัวอย่างเช่น ใน R Vector 1:10 จะมีค่าตั้งแต่ 1 ถึง 10 คือ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
นอกจากนี้ Vector สามารถมีค่าเฉพาะเจาะจงได้เช่นกัน ตัวอย่างเช่น Vector c(2,4,6) จะมีค่า 2, 4 และ 6
ขั้นตอนที่ 1: สร้าง Vector
เริ่มต้นด้วยการสร้าง Vector vc โดยใช้ Operator (:) และส่วนประกอบ Vector ที่มีค่าตั้งแต่ 1 ถึง 10
vc <- 1:10ขั้นตอนที่ 2: แสดง Vector (ตัวเลือก)
คุณสามารถแสดงส่วนประกอบของ Vector vc โดยใช้คำสั่ง Concatenate cat ดังนี้:
cat(vc)ขั้นตอนที่ 3: คำนวณ Standard Deviation
ต่อไป คำนวณ Standard Deviation ใน R สำหรับ vc Object โดยใช้คำสั่ง:
sd(vc)นี่คือผลลัพธ์ทั้งหมด อย่างที่เราเห็น Standard Deviation ใน R สำหรับ Vector vc คือ 3.02765

รูปที่ 4: Standard Deviation เท่ากับ 3.02765 คำนวณสำหรับ Vector ที่มีค่าตั้งแต่ 1 ถึง 10 ใน RStudio
การใช้งานกับ Array
ใน R, Array คือชุดของ Object ที่อาจมีข้อมูลตั้งแต่สองมิติขึ้นไป (Multi-dimensional) และเก็บค่าที่เป็นประเภทข้อมูลเดียวกัน Array ไม่ควรสับสนกับ Vector ที่มีลักษณะเป็นมิติเดียว (Uni-dimensional)
เพื่อหา Standard Deviation สำหรับ Array ใน R เราต้องสร้าง Array โดยใช้ array() Function ที่มีมาให้ เราจะใช้สอง Vector เป็น Argument (เช่น vc1 และ vc2) จากนั้นจึงตั้งค่ามิติของ Matrix โดยใช้ dim Function
ขั้นตอนที่ 1: สร้าง Vector แรก
ก่อนอื่น ให้กำหนด Vector vc1 ที่มีองค์ประกอบ 12 และ 8 โดยใช้คำสั่ง:
vc1 <- c(12,8)ขั้นตอนที่ 2: สร้าง Vector ที่สอง
และตั้งค่า Vector vc2 ที่ประกอบด้วยองค์ประกอบ 39 และ 17:
vc2 <- c(39,17)ขั้นตอนที่ 3: สร้าง Array จาก Vector
ต่อไป เราต้องสร้าง Array โดยใช้ Vector vc1 และ vc2 และใช้ dim Function เพื่อตั้งค่ามิติของ Matrix (คอลัมน์ต่อแถว) ดังนี้:
arr <- array(c(vc1, vc2), dim = c(2, 2))ขั้นตอนที่ 4: คำนวณ Standard Deviation สำหรับ Array
และสุดท้าย เราสามารถใช้ sd() Function เพื่อคำนวณ Standard Deviation ใน R สำหรับ Array Object ที่สร้างขึ้นใหม่:
sd(arr)ด้านล่างนี้คือผลลัพธ์ทั้งหมดใน R สำหรับคำสั่งข้างต้น อย่างที่เห็น Standard Deviation สำหรับ Array arr คือ 13.832

รูปที่ 5: Standard Deviation เท่ากับ 13.832 คำนวณสำหรับ Array ขนาด 2x2 ที่สร้างจาก Vector ใน RStudio
Population vs. Sample Standard Deviation ใน R
ดังที่กล่าวไว้ก่อนหน้านี้ sd() Function ใน R คำนวณ Sample Standard Deviation โดยค่าเริ่มต้น (ใช้ Bessel's Correction ด้วย n-1)
หากคุณต้องการคำนวณ Population Standard Deviation ใน R คุณจะต้องปรับค่าด้วย Correction Factor:
# Sample Standard Deviation (default)
sample_sd <- sd(data)
# Population Standard Deviation
n <- length(data)
population_sd <- sd(data) * sqrt((n-1)/n)ตัวอย่าง: Population Standard Deviation
มาคำนวณ Population Standard Deviation สำหรับตัวอย่าง Vector ของเรา:
# สร้าง Vector
vc <- 1:10
# Sample Standard Deviation
sd(vc) # ส่งคืนค่า 3.02765
# Population Standard Deviation
n <- length(vc)
sd(vc) * sqrt((n-1)/n) # ส่งคืนค่า 2.872281คำถามที่พบบ่อย
สรุป
ในบทช่วยสอน R สำหรับสถิตินี้ เราได้เรียนรู้วิธีการคำนวณ Standard Deviation ใน RStudio สำหรับชุดข้อมูล Excel ที่นำเข้า, Data Frame, Vector และ Array
แม้ว่าการคำนวณ Standard Deviation ใน SPSS หรือ Excel จะตรงไปตรงมากว่าบ้าง แต่ R ให้ความยืดหยุ่นและควบคุมข้อมูลที่เราป้อนและจัดการได้มาก
สิ่งสำคัญที่ควรจำ:
- sd() Function คือ Function ที่มีมาให้ใน R สำหรับ Standard Deviation
- R คำนวณ Sample Standard Deviation โดยค่าเริ่มต้น (ใช้ n-1)
- ใช้ Correction Factor
sd(x) * sqrt((n-1)/n)สำหรับ Population Standard Deviation - $ Operator ดึงคอลัมน์จาก Data Frame
- Standard Deviation ใช้ได้กับการนำเข้า Excel, Data Frame, Vector และ Array
หวังว่าคุณจะได้รับประโยชน์จากบทช่วยสอน R นี้ หากเป็นเช่นนั้น กรุณาช่วยแบ่งปันความรู้โดยแชร์บทความนี้กับเพื่อนและเพื่อนร่วมงานของคุณ
เอกสารอ้างอิง
Field, A., Miles, J., & Field, Z. (2012). Discovering statistics using R. SAGE Publications.