ในบทเรียนที่แล้ว เราได้เรียนรู้วิธีการคำนวณ 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 ดังที่เห็นในรูปต่อไปนี้
ชุดข้อมูล 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 เดียวกัน
หน้าจอ 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)
ผลลัพธ์ 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
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
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.