วิธีสร้างมาตรฐานข้อมูลใน r: พร้อมตัวอย่าง


การทำให้ ชุดข้อมูลเป็นมาตรฐานหมายถึงการปรับค่าทั้งหมดในชุดข้อมูลโดยให้ค่าเฉลี่ยเป็น 0 และค่าเบี่ยงเบนมาตรฐานเป็น 1

วิธีที่พบบ่อยที่สุดในการทำเช่นนี้คือการใช้มาตรฐาน z-score ซึ่งจะปรับขนาดค่าโดยใช้สูตรต่อไปนี้:

(x ผมx ) / วินาที

ทอง:

  • x i : ค่า ที่ i ของชุดข้อมูล
  • x : หมายถึงตัวอย่าง
  • s : ค่าเบี่ยงเบนมาตรฐานของกลุ่มตัวอย่าง

ตัวอย่างต่อไปนี้แสดงวิธีใช้ฟังก์ชัน scale() กับแพ็คเกจ dplyr ใน R เพื่อปรับขนาดตัวแปรตั้งแต่หนึ่งตัวขึ้นไปในกรอบข้อมูลโดยใช้มาตรฐาน z-score

สร้างมาตรฐานให้กับตัวแปรตัวเดียว

รหัสต่อไปนี้แสดงวิธีการปรับขนาดตัวแปรเดี่ยวในกรอบข้อมูลด้วยตัวแปรสามตัว:

 library (dplyr)

#make this example reproducible 
set.seed(1)

#create original data frame
df <- data.frame(var1= runif(10, 0, 50), 
                 var2= runif(10, 2, 23),
                 var3= runif(10, 5, 38))

#view original data frame
df

        var1 var2 var3
1 13.275433 6.325466 35.845273
2 18.606195 5.707692 12.000703
3 28.642668 16.427480 26.505234
4 45.410389 10.066178 9.143318
5 10.084097 18.166670 13.818282
6 44.919484 12.451684 17.741765
7 47.233763 17.069989 5.441881
8 33.039890 22.830028 17.618803
9 31.455702 9.980739 33.699798
10 3.089314 18.326350 16.231517

#scale var1 to have mean = 0 and standard deviation = 1
df2 <- df %>% mutate_at (c(' var1 '), ~( scale (.) %>% as.vector ))
df2

          var1 var2 var3
1 -0.90606801 6.325466 35.845273
2 -0.56830963 5.707692 12.000703
3 0.06760377 16.427480 26.505234
4 1.13001072 10.066178 9.143318
5 -1.10827188 18.166670 13.818282
6 1.09890684 12.451684 17.741765
7 1.24554014 17.069989 5.441881
8 0.34621281 22.830028 17.618803
9 0.24583830 9.980739 33.699798
10 -1.55146305 18.326350 16.231517

โปรดทราบว่ามีเพียงตัวแปรแรกเท่านั้นที่ได้รับการปรับขนาด ในขณะที่อีกสองตัวแปรยังคงเหมือนเดิม เราสามารถยืนยันได้อย่างรวดเร็วว่าตัวแปรที่ปรับขนาดใหม่มีค่าเฉลี่ยเป็น 0 และค่าเบี่ยงเบนมาตรฐานเป็น 1:

 #calculate mean of scaled variable
mean(df2$var1)

[1] -4.18502e-18 #basically zero

#calculate standard deviation of scaled variable 
sd(df2$var1)

[1] 1

สร้างมาตรฐานให้กับตัวแปรหลายตัว

รหัสต่อไปนี้แสดงวิธีการปรับขนาดตัวแปรหลายตัวในกรอบข้อมูลพร้อมกัน:

 library (dplyr)

#make this example reproducible 
set.seed(1)

#create original data frame
df <- data.frame(var1= runif(10, 0, 50), 
                 var2= runif(10, 2, 23),
                 var3= runif(10, 5, 38))

#scale var1 and var2 to have mean = 0 and standard deviation = 1
df3 <- df %>% mutate_at (c(' var1 ', ' var2 '), ~( scale (.) %>% as.vector ))
df3

          var1 var2 var3
1 -0.90606801 -1.3045574 35.845273
2 -0.56830963 -1.4133223 12.000703
3 0.06760377 0.4739961 26.505234
4 1.13001072 -0.6459703 9.143318
5 -1.10827188 0.7801967 13.818282
6 1.09890684 -0.2259798 17.741765
7 1.24554014 0.5871157 5.441881
8 0.34621281 1.6012242 17.618803
9 0.24583830 -0.6610127 33.699798
10 -1.55146305 0.8083098 16.231517

สร้างมาตรฐานให้กับตัวแปรทั้งหมด

รหัสต่อไปนี้แสดงวิธีการปรับขนาดตัวแปร ทั้งหมด ในกรอบข้อมูลโดยใช้ฟังก์ชัน mutate_all :

 library (dplyr)

#make this example reproducible 
set.seed(1)

#create original data frame
df <- data.frame(var1= runif(10, 0, 50), 
                 var2= runif(10, 2, 23),
                 var3= runif(10, 5, 38))

#scale all variables to have mean = 0 and standard deviation = 1
df4 <- df %>% mutate_all (~( scale (.) %>% as.vector ))
df4

          var1 var2 var3
1 -0.90606801 -1.3045574 1.6819976
2 -0.56830963 -1.4133223 -0.6715858
3 0.06760377 0.4739961 0.7600871
4 1.13001072 -0.6459703 -0.9536246
5 -1.10827188 0.7801967 -0.4921813
6 1.09890684 -0.2259798 -0.1049130
7 1.24554014 0.5871157 -1.3189757
8 0.34621281 1.6012242 -0.1170501
9 0.24583830 -0.6610127 1.4702281
10 -1.55146305 0.8083098 -0.2539824

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

บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการงานทั่วไปอื่นๆ ใน R:

วิธีทำให้ข้อมูลเป็นมาตรฐานใน R
วิธีการคำนวณค่าเบี่ยงเบนมาตรฐานใน R
วิธีใส่ค่าที่หายไปทั้งหมดใน R
วิธีแปลงข้อมูลใน R (Log, Square Root, Cube Root)

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

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