การอ่านข้อมูลหลายตัวแปร

การแจกแจงความน่าจะเป็นหลายตัวแปรใน R

Surajit Ray

Professor, University of Glasgow

หัวข้อในคอร์สนี้

  • อ่านและวิเคราะห์ข้อมูลหลายตัวแปร
  • สำรวจเทคนิคการสร้างกราฟ
  • ใช้การแจกแจงทางสถิติที่พบบ่อย

    • การแจกแจงแบบเกาส์เซียนและ T
  • เทคนิคสำหรับข้อมูลมิติสูง

    • การวิเคราะห์องค์ประกอบหลัก (PCA)
การแจกแจงความน่าจะเป็นหลายตัวแปรใน R

โครงสร้างของข้อมูลหลายตัวแปร

  • มีรูปแบบสี่เหลี่ยม — จัดเรียงเป็นแถวและคอลัมน์
    • แถวแทนการสังเกต
    • คอลัมน์แทนตัวแปร
  • อาจมีหรือไม่มีก็ได้:
    • ชื่อหรือหมายเลขแถว
    • ส่วนหัวของคอลัมน์
  • อาจมีข้อมูลที่หายไป
การแจกแจงความน่าจะเป็นหลายตัวแปรใน R

ตัวอย่างข้อมูลหลายตัวแปร

ข้อมูล Iris จาก เว็บไซต์ Cambridge University

5.1  3.5  1.4  0.2  1
4.9  3.0  1.4  0.2  1
4.7  3.2  1.3  0.2  1

ข้อมูลน้ำหนักแรกเกิด (CSV พร้อมส่วนหัวคอลัมน์)

"","case","bwt","gestation","parity","age","height","weight","smoke"
"1",1,120,284,0,27,62,100,0
"2",2,113,282,0,33,64,135,0
การแจกแจงความน่าจะเป็นหลายตัวแปรใน R

การอ่านข้อมูล

จาก URL

iris_url <- "https://mlg.eng.cam.ac.uk/teaching/3f3/1011/iris.data"
iris_raw <- read.table(iris_url,  sep = "", header = FALSE)

จากเครื่องในเครื่อง

iris_raw <- read.table("iris.txt", sep = "", header = FALSE)
การแจกแจงความน่าจะเป็นหลายตัวแปรใน R

การดูชุดข้อมูล

head(iris_raw, n = 4)
     V1  V2  V3  V4 V5
1   5.1 3.5 1.4 0.2  1  
2   4.9 3.0 1.4 0.2  1  
3   4.7 3.2 1.3 0.2  1  
4   4.6 3.1 1.5 0.2  1
การแจกแจงความน่าจะเป็นหลายตัวแปรใน R

การกำหนดชื่อคอลัมน์

colnames(iris_raw) <- c("Sepal.Length", "Sepal.Width", "Petal.Length","Petal.Width", "Species" )
head(iris_raw)
  Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1          5.1         3.5          1.4         0.2       1
2          4.9         3.0          1.4         0.2       1
3          4.7         3.2          1.3         0.2       1
4          4.6         3.1          1.5         0.2       1
5          5.0         3.6          1.4         0.2       1
6          5.4         3.9          1.7         0.4       1
การแจกแจงความน่าจะเป็นหลายตัวแปรใน R

การเข้าถึงคอลัมน์เฉพาะ

ตรวจสอบชื่อคอลัมน์ปัจจุบัน

names(iris_raw)
"Sepal.Length" "Sepal.Width"  "Petal.Length" "Petal.Width"  "Species"

$$

เข้าถึงคอลัมน์ Sepal length และ Sepal width

iris_raw[, 1:2] 
iris[, c('Sepal.Length', 'Sepal.Width')]
การแจกแจงความน่าจะเป็นหลายตัวแปรใน R

การเปลี่ยนชนิดข้อมูล

เปลี่ยนตัวแปรสุดท้าย Species ให้เป็น factor

iris_raw$species <- as.factor(iris_raw$species)
str(iris_raw)
'data.frame':    150 obs. of  5 variables:
 $ Sepal.Length: num  5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
 $ Sepal.Width : num  3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
 $ Petal.Length: num  1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
 $ Petal.Width : num  0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
 $ Species     : Factor w/ 3 levels "1","2","3": 1 1 1 1 1 1 1 1 1 1 ...
การแจกแจงความน่าจะเป็นหลายตัวแปรใน R

การกำหนดป้ายกำกับ factor

เปลี่ยนป้ายกำกับสปีชีส์จาก 1, 2 และ 3 เป็น setosa, versicolor และ virginica

  • กำหนดป้ายกำกับ factor
  • เปลี่ยนตัวแปรแรกให้เป็น factor
library(car) 
iris_raw$Species <- recode(iris_raw$Species,
                          " 1 ='setosa'; 2 = 'versicolor'; 3 = 'virginica'")
str(iris_raw)
'data.frame':    150 obs. of  5 variables:
 $ Sepal.Length: num  5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
 $ Sepal.Width : num  3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
 $ Petal.Length: num  1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
 $ Petal.Width : num  0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
 $ Species     : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...
การแจกแจงความน่าจะเป็นหลายตัวแปรใน R

การอ่านข้อมูล CSV ที่มีชื่อคอลัมน์

ข้อมูลน้ำหนักแรกเกิด (CSV พร้อมส่วนหัวคอลัมน์)

"","case","bwt","gestation","parity","age","height","weight","smoke"
"1",1,120,284,0,27,62,100,0
"2",2,113,282,0,33,64,135,0
"3",3,128,279,0,28,64,115,1

การอ่านข้อมูลน้ำหนักแรกเกิด

bwt <- read.csv("birthweight.csv", row.names = 1)
head(bwt, n = 3)
  case bwt gestation parity age height weight smoke
1    1 120       284      0  27     62    100     0
2    2 113       282      0  33     64    135     0
3    3 128       279      0  28     64    115     1
การแจกแจงความน่าจะเป็นหลายตัวแปรใน R

มาฝึกกันเถอะ!

การแจกแจงความน่าจะเป็นหลายตัวแปรใน R

Preparing Video For Download...