วันนี้ผมเอาข้อมูลผลการออกเลขท้าย 2 ตัวของลอตเตอรี่ (สลากกินแบ่งรัฐบาล) ตลอด 10 ปีมาวิเคราะห์ดูด้วย R (เพื่อการศึกษา) ซึ่งสำนักงานสลากกินแบ่งก็ได้ทำสถิติไว้ให้ดูเช่นกันแต่ว่าอยู่ในรูปของตัวเลข จากข้อมูลเราก็ copy มาลง Excel แล้วก็เอาเฉพาะข้อมูลเลขท้าย 2 ตัวมาสร้างเป็นไฟล์ csv จากนั้นก็อ่านค่าเข้ามาที่ R
> file <-file.choose()
> lotto <-read.csv(file,header=FALSE)
> lotto
V1
1 45
2 62
3 7
4 6
5 89
6 40
7 53
8 49
9 26
10 5
สังเกตว่าเลขที่เป็นเลขตัวเดียว หมายความว่ามี "0" อยู่ข้างหน้า เช่น 6 คือ 06 เป็นต้น
เราลองใช้การสร้างฮิสโตแกรมแบบง่ายที่สุดก่อน
> hist(lotto$V1)
จะเห็นว่า R แบ่งช่วงข้อมูล เป็น 10 ช่วง ช่วงละ 10 เมื่อดูแบบนี้จะเห็นว่าเลขท้าย 2 ตัว ของสลากกินแบ่งตลอด 10 ปีที่ผ่านมานั้นมีการกระจายที่ค่อนข้างจะสม่ำเสมอ ถ้าเราอยากจะดูให้ละเอียดลงไปอีก เราอาจจะลองปรับช่วงข้อมูลที่ใช้พล็อตดู เช่นปรับเป็น 20 ช่วง ด้วยการใช้ breaks = 20
> hist(lotto$V1, breaks=20)
หากเราต้องการข้อมูลความถี่ของแต่ละหมายเลข เราอาจใช้ stem-and -leaf plot ก็ได้เช่น
> stem(lotto$V1)
The decimal point is 1 digit(s) to the right of the |
0 | 00112233
0 | 55555556667777888999
1 | 000111112222344
1 | 555777888
2 | 0001222344
2 | 55556666677788888999
3 | 0012233444
3 | 55556678889
4 | 01112333344444
4 | 5555678888999
5 | 00011122233344
5 | 556667788899
6 | 001222233344
6 | 555666677788999999
7 | 01112334
7 | 56667999999
8 | 0011111223
8 | 55556667778889
9 | 0001122233334444
9 | 5555566667777889
หากอยากรู้ว่าเลขใดมีความถี่บ่อยสุด เราจะใช้การสร้างตารางความถี่ด้วย table()
> table <-table(lotto$V1)
จากนั้นปรับตารางเป็น data.frame เพื่อให้ดูข้อมูลได้ง่าย
> t <-as.data.frame(table)
> t
Var1 Freq
1 0 2
2 1 2
3 2 2
4 3 2
5 5 7
6 6 3
7 7 4
8 8 3
9 9 3
10 10 3
เราสามารถเรียงลำดับความถี่ให้เรียงจากความถี่สูงสูงสุดไปน้อยสุดโดยใช้ sort() ในข้อมูล table
> table_sort<-sort(table,decreasing=TRUE)
> t<-as.data.frame(table_sort)
> t
table_sort
5 7
69 6
79 6
11 5
26 5
28 5
44 5
81 5
95 5
อย่างไรก็ดี มีบางเลขที่ไม่เคยออกรางวัลเลย
> x<-0:99 # สร้างตัวเลข 0-99
> test<-x %in% lotto$V1 # ทดสอบว่ามี x ในผลการออกรางวัล lotto$V1 หรือไม่
> x[test == FALSE] #แสดง x ที่มีผลทดสอบเป็น FALSE (ไม่เคยออกรางวัล)
[1] 4 16 19 78 84
ไม่มีความคิดเห็น:
แสดงความคิดเห็น