1 BÀI TẬP TUẦN 4

1.1 NHẬP DỮ LIỆU

Số liệu của Y (chi tiêu tiêu dùng cá nhân) và X (tổng sản phẩm quốc nội) trong các năm 1980-1991 của Hoa kỳ cho trong bảng sau: (đơn vị tính là tỉ đô la năm 1987)

1.1.1 Nhập dữ liệu thủ công

nam <- c(1980,  1981,   1982,   1983,   1984,   1985,   1986,   1987,   1988,   1989, 1990, 1991 )
tongspquocnoi <- c( 3776.3, 3843.1, 3760.3, 3906.6, 4148.5, 4279.8, 4404.5, 4539.9, 4718.6, 4838, 4877.5, 4821 )
chitieutdcanhan <- c( 2447.1, 2476.9, 2503.7, 2619.4, 2746.1, 2865.8, 2969.1, 3052.2, 3162.4, 3223.3, 3260.4, 4821 )
xyz <- data.frame( nam, tongspquocnoi , chitieutdcanhan )
head(xyz, 5)
##    nam tongspquocnoi chitieutdcanhan
## 1 1980          3776            2447
## 2 1981          3843            2477
## 3 1982          3760            2504
## 4 1983          3907            2619
## 5 1984          4148            2746

1.1.2 Trang tính Excel

Để chèn dữ liệu từ file Excel, ta sử dụng package “readxl”

library("readxl")
  • Chúng ta đang có 1 file Excel Hoiquy1.xlsx có sẵn trong ổ đĩa C:/, đọc dữ liệu như sau:
hoiquy1 <- read_excel("C:/Users/asus/Downloads/Hoiquy1.xlsx", sheet="Sheet1")
View(hoiquy1)

1.2 TRỰC QUAN HÓA DỮ LIỆU & GGPLOT2

1.2.1 Mô tả dữ liệu

Một khung dữ liệu với 100 quan sát trên 3 biến sau

Expt Số thí nghiệm, từ 1 đến 5

Run Số lần chạy trong mỗi thử nghiệm

Speed Đo tốc độ ánh sáng

data("morley")
head(morley,5)
##     Expt Run Speed
## 001    1   1   850
## 002    1   2   740
## 003    1   3   900
## 004    1   4  1070
## 005    1   5   930

1.2.2 Đồ thị dạng scatter

1.2.2.1 Với đataset morley ta vẽ được đồ thị scatter như sau

morley |> ggplot(map = aes(x = Run, y = Speed)) + geom_point(color="red") + xlab("Run") + ylab("Speed") + labs(title = 'Đồ thị scatter thể hiện mối liên hệ giữa biến Run và Speed')

Vẽ thêm đường hồi quy tương ứng với đồ thị biểu thị mối liên hệ run và speed .

morley |> ggplot(map = aes(x = Run, y = Speed)) + geom_point(color="red") + xlab("Run") + ylab("Speed") + 
   geom_smooth(formula = y ~ x, method = 'lm', color = 'black') +
  labs(title="Biểu đồ thể hiện sự tương quan ")

Chúng ta cũng có thể nối các điểm trong đồ thị dạng scatter lại với nhau.

morley |> ggplot(aes(x = Run, y = Speed)) +
  geom_point(color = 'blue') +
  geom_line(color = 'red')

2 Đồ thị dạng cột

data("SportsCards")
- Đồ thị dạng cột 1 biến 

Đồ thì dạng cột cho biến card

SportsCards |> ggplot(aes(x = gender )) + geom_bar(fill = 'blue')

Thay vì trên các trục thể hiện bằng số đếm thì chúng ta có thể thì chúng ta sẽ thể hiện bằng tỉ lệ % như sau:

SportsCards |> group_by(gender) |>
  summarise(n = n()) |> mutate(pG = percent(n/sum(n),accuracy = ,01)) |>  ggplot(aes(x =gender , y =pG)) +
  geom_col(fill = 'blue') + theme_classic() + labs(x = 'Tần số', y = 'Tỷ lệ %')

Chúng ta có thể ghi chú tỷ lệ % hoặc số đếm lên đỉnh mỗi cột như sau:

SportsCards |> ggplot(aes(x = gender, y = after_stat(count))) + geom_bar(fill = 'blue') + geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat = 'count', color = 'red', vjust = - 0.5) + theme_classic() + labs(x = 'Nam/Nữ', y = 'Tần số')

Ngoài việc tính tỷ lệ % và đếm số người theo giới tính chúng ta có thể phân chia đồ thị theo một một số tiêu chí (biến) khác để phân tích. Ví dụ chúng ta phân chia theo biến : Majorcards

SportsCards |> ggplot(aes(x = gender, y = after_stat(count))) +
  geom_bar(fill = 'blue') +
  geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat = 'count', color = 'red', vjust = - .5) + facet_grid(. ~ income) +
  theme_classic() +
  labs(x = 'Khoảng thu nhập theo giới tính', y = 'tần số')

  • Hoặc phân chia theo biến education
SportsCards|> count(education) |>
  mutate(pC = percent(n/sum(n),accuracy = 0.01)) |>
  ggplot(aes(x = education , y = n)) +
  geom_col(fill = 'blue') +
  geom_text(aes(label = pC),color = 'yellow', vjust = 2, size = 5) +
  ylab('Tần số') +
  xlab('Trình độ giáo dục ')

Với biểu đồ như trên chúng ta có thể quay ngang như sau:

SportsCards|> count(education) |>
  mutate(pC = percent(n/sum(n),accuracy = 0.01)) |>
  ggplot(aes(x = education , y = n)) +
  geom_col(fill = 'blue') +
  geom_text(aes(label = pC),color = 'yellow', vjust = 2, size = 5) +
  ylab('Tần số') +
  xlab('Trình độ giáo dục ')+
  coord_flip()

Chúng ta cũng có thể vẽ đồ thi dạng cột theo biến education nhưng đồng thời chúng ta sẽ phân đồ thì này thành 2 nhóm theo biến card như sau:

SportsCards |> ggplot(aes(x = education, y = after_stat(count),fill = gender )) +
  geom_bar(position = 'dodge') +
  ylab('Tần số ') +
  xlab('Trình độ giáo dục')

Với dạng đồ thị như trên thay vì để 2 cột cạnh nhau, chúng ta có thể chồng nó lên nhau như sau để dễ phân tích hơn.

SportsCards |> ggplot(aes(x = education)) + geom_bar(aes(y = after_stat(count), fill = gender ), stat = 'count') +
 ylab('Tần số ') +
  xlab('Trình độ giáo dục')

Tương tự như trường hợp ở trên, chúng ta cũng có thể thêm ghi chú và đồ thị để người đọc dễ so sánh như sau:

SportsCards |> count( education , gender ) |>
  group_by(education) |>
  mutate(pH = n/sum(n)) |>
  ggplot(aes(x = education , y = n, fill = gender)) +
  geom_col() +
  geom_text(aes(label = percent(pH, accuracy = .01)), position = position_stack(vjust = 0.5 ), size = 3) +
  ylab('Tần số ') +
  xlab('Trình độ học vấn')

2.0.1 Đồ thị dạng tròn

BangThuNhap2 <- cut(income, breaks = c(5, 10, 20, 40, 56), labels = c("thap", "trungbinh", "trungbinhcao","cao"), right = TRUE)
tabThuNhap2 = table(BangThuNhap2)
pie(tabThuNhap2, main = "Biểu đồ tròn của biến Thu Nhập")

2.1 PHÂN TÍCH HỒI QUY ĐƠN

2.1.1 Dữ liệu từ file Excel Hoiquydon.xlsx

2.1.1.1 Mô tả dữ liệu:

Số liệu của Y (chi tiêu tiêu dùng cá nhân) và X (tổng sản phẩm quốc nội) trong các năm 1980-1991 của Hoa kỳ cho như sau: (đơn vị tính là tỉ đô la năm 1987)

hoiquy1 <- read_excel("C:/Users/asus/Downloads/Hoiquy1.xlsx", sheet="Sheet1")
head(hoiquy1,3)
## # A tibble: 2 × 13
##   nam      `1980` `1981` `1982` `1983` `1984` `1985` `1986` `1987` `1988` `1989`
##   <chr>     <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>
## 1 tongspq…  3776.  3843.  3760.  3907.  4148.  4280.  4404.  4540.  4719.  4838 
## 2 chitieu…  2447.  2477.  2504.  2619.  2746.  2866.  2969.  3052.  3162.  3223.
## # ℹ 2 more variables: `1990` <dbl>, `1991` <dbl>

2.1.1.2 Các hệ số tương quan tuyến tính

2.1.1.2.1 Hệ số tương quan là gì
  • Hệ số tương quan (r) là một chỉ số thống kê đo lường mối liên hệ tương quan giữa hai biến số, như giữa độ tuổi (x) và cholesterol (y). Hệ số tương quan có giá trị từ -1 đến
  1. Hệ số tương quan bằng 0 (hay gần 0) có nghĩa là hai biến số không có liên hệ gì với nhau; ngược lại nếu hệ số bằng -1 hay 1 có nghĩa là hai biến số có một mối liên hệ tuyệt đối. Nếu giá trị của hệ số tương quan là âm (r <0) có nghĩa là khi x tăng cao thì y giảm (và ngược lại, khi x giảm thì y tăng); nếu giá trị hệ số tương quan là dương (r > 0) có nghĩa là khi x tăng cao thì y cũng tăng, và khi x tăng cao thì y cũng giảm theo
2.1.1.2.2 Hệ số tương quan Person
  • Hệ số tương quan Pearson còn được gọi là hệ số Pearson (Pearson Correlation Coefficient) trong thống kê được định nghĩa là thước đo mối quan hệ thống kê giữa hai biến và sự liên kết của chúng với nhau
cor.test(tongspquocnoi, chitieutdcanhan)
## 
##  Pearson's product-moment correlation
## 
## data:  tongspquocnoi and chitieutdcanhan
## t = 3.5, df = 10, p-value = 0.006
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.2960 0.9234
## sample estimates:
##    cor 
## 0.7436

Kết luận: ta có p-value < alpha nên hai biến tổng sản phẩm quốc nội và chi tiêu tiêu dùng cá nhân có quan hệ tương quan tuyến tính với nhau

2.1.1.2.3 Hệ số tương quan Spearman

Ý nghĩa: Hệ số tương quan Pearson chỉ hợp lí nếu biến số x và y tuân theo luật phân phối chuẩn. Nếu x và y không tuân theo luật phân phối chuẩn, chúng ta phải sử dụng một hệ số tương quan khác tên là Spearman, một phương pháp phân tích phi tham số. Hệ số này được ước tính bằng cách biến đổi hai biến số x và y thành thứ bậc (rank), và xem độ tương quan giữa hai dãy số bậc. Do đó, hệ số còn có tên tiếng Anh là Spearman’s Rank correlation

Giả sử tổng sản phẩm quốc nội và chi tiêu tiêu dùng cá nhân không có phân phối chuẩn, ta có:

 cor.test(tongspquocnoi, chitieutdcanhan,  method="spearman") 
## 
##  Spearman's rank correlation rho
## 
## data:  tongspquocnoi and chitieutdcanhan
## S = 12, p-value <2e-16
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
##   rho 
## 0.958

Kết luận: ta có p-value < alpha nên hai biến tổng sản phẩm quốc nội và chi tiêu tiêu dùng cá nhân có quan hệ tương quan tuyến tính với nhau

2.1.1.2.4 Hệ số tương quan Kendall

Ý nghĩa: Hệ số tương quan Kendall (cũng là một phương pháp phân tích phi tham số) được ước tính bằng cách tìm các cặp số (x, y) “song hành” với nhau. Một cặp (x, y) song hành ở đây được định nghĩa là hiệu (độ khác biệt) trên trục hoành có cùng dấu hiệu (dương hay âm) với hiệu trên trục tung. Nếu hai biến số x và y không có liên hệ với nhau, thì số cặp song hành bằng hay tương đương với số cặp không song hành.

cor.test(tongspquocnoi, chitieutdcanhan, method="kendall")
## 
##  Kendall's rank correlation tau
## 
## data:  tongspquocnoi and chitieutdcanhan
## T = 62, p-value = 5e-06
## alternative hypothesis: true tau is not equal to 0
## sample estimates:
##    tau 
## 0.8788

Kết luận: ta có p-value < alpha nên hai biến tổng sản phẩm quốc nội và chi tiêu tiêu dùng cá nhân có quan hệ tương quan tuyến tính với nhau

2.1.1.3 Hồi quy tuyến tính đơn biến

2.1.1.3.1 Viết hàm hồi quy tuyến tính mẫu SRF

Hàm lm (viết tắt từ linear model) trong R có thể tính toán các giá trị của α và β trong mô hình hồi quy đơn: α + β.X

lm(tongspquocnoi ~ chitieutdcanhan)
## 
## Call:
## lm(formula = tongspquocnoi ~ chitieutdcanhan)
## 
## Coefficients:
##     (Intercept)  chitieutdcanhan  
##        2805.006            0.505

Kết quả: như vậy mô hình hồi quy đơn có dạng là: SRF= 2805.006 + 0.505β

2.1.1.3.2 Kiểm định các giả thuyết

Trước tiên ta lập bảng thống kê hồi quy để lấy các kết quả kiểm định:

reg <- lm(tongspquocnoi ~ chitieutdcanhan)
summary(reg)
## 
## Call:
## lm(formula = tongspquocnoi ~ chitieutdcanhan)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -418.6 -232.0   -7.8  224.3  426.0 
## 
## Coefficients:
##                 Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     2805.006    441.416    6.35  8.3e-05 ***
## chitieutdcanhan    0.505      0.144    3.52   0.0056 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 305 on 10 degrees of freedom
## Multiple R-squared:  0.553,  Adjusted R-squared:  0.508 
## F-statistic: 12.4 on 1 and 10 DF,  p-value: 0.00557

Kiểm định sự phù hợp mô hình: ta có F= 12.4>C nên mô hình trên là phù hợp

2.1.1.3.3 Dự báo mô hình hồi quy đơn

Ta dự đoán mức phân bón bằng 50 vào hàm SRF-hồi quy tuyến tính mẫu, SRF= 2805.006 + 0.505β

ketqua <- 2805.006 + 0.505*50
ketqua
## [1] 2830

Vậy kết quả khi X=50 thì chi tiêu tiêu dùng cá nhân sẽ là 2830 tỉ USD

3 BÀI TẬP TUẦN 3

3.0.1 Tạo 1 data.fram mới để thực hành hàm Pivot_longer

3.0.1.1 Tạo data.fram

df <- data.frame(player=c('A', 'B', 'C', 'D', "E", "F"),
                 year1=c(13, 15, 19, 19, 20 ,21),
                 year2=c(22, 29, 18, 12, 13, 16))
df
##   player year1 year2
## 1      A    13    22
## 2      B    15    29
## 3      C    19    18
## 4      D    19    12
## 5      E    20    13
## 6      F    21    16

3.0.1.2 Định dạng dữ liệu từ “ngang-sang-dọc”

df %>% pivot_longer(cols=c('year1', 'year2'),
                    names_to='year',
                    values_to='points')
## # A tibble: 12 × 3
##    player year  points
##    <chr>  <chr>  <dbl>
##  1 A      year1     13
##  2 A      year2     22
##  3 B      year1     15
##  4 B      year2     29
##  5 C      year1     19
##  6 C      year2     18
##  7 D      year1     19
##  8 D      year2     12
##  9 E      year1     20
## 10 E      year2     13
## 11 F      year1     21
## 12 F      year2     16

3.0.2 Pivot_longer với dataset “billboard”

3.0.2.1 Gọi dữ liệu

data("billboard")
bi <- billboard

3.0.2.2 Định dạng dữ liệu từ ngang sang dọc

dy <- bi |> pivot_longer(cols=starts_with("wk"), names_to="tuần", values_to="hạng")
head(dy, 5)
## # A tibble: 5 × 5
##   artist track                   date.entered tuần   hạng
##   <chr>  <chr>                   <date>       <chr> <dbl>
## 1 2 Pac  Baby Don't Cry (Keep... 2000-02-26   wk1      87
## 2 2 Pac  Baby Don't Cry (Keep... 2000-02-26   wk2      82
## 3 2 Pac  Baby Don't Cry (Keep... 2000-02-26   wk3      72
## 4 2 Pac  Baby Don't Cry (Keep... 2000-02-26   wk4      77
## 5 2 Pac  Baby Don't Cry (Keep... 2000-02-26   wk5      87

3.0.3 Hàm pivot_wider

3.0.3.1 Định dạng dữ liệu dọc sang sang ngang từ dữ liệu billboard

dx <- dy |> pivot_wider(names_from="tuần", values_from="hạng")
head(dx, 5)
## # A tibble: 5 × 79
##   artist      track date.entered   wk1   wk2   wk3   wk4   wk5   wk6   wk7   wk8
##   <chr>       <chr> <date>       <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 2 Pac       Baby… 2000-02-26      87    82    72    77    87    94    99    NA
## 2 2Ge+her     The … 2000-09-02      91    87    92    NA    NA    NA    NA    NA
## 3 3 Doors Do… Kryp… 2000-04-08      81    70    68    67    66    57    54    53
## 4 3 Doors Do… Loser 2000-10-21      76    76    72    69    67    65    55    59
## 5 504 Boyz    Wobb… 2000-04-15      57    34    25    17    17    31    36    49
## # ℹ 68 more variables: wk9 <dbl>, wk10 <dbl>, wk11 <dbl>, wk12 <dbl>,
## #   wk13 <dbl>, wk14 <dbl>, wk15 <dbl>, wk16 <dbl>, wk17 <dbl>, wk18 <dbl>,
## #   wk19 <dbl>, wk20 <dbl>, wk21 <dbl>, wk22 <dbl>, wk23 <dbl>, wk24 <dbl>,
## #   wk25 <dbl>, wk26 <dbl>, wk27 <dbl>, wk28 <dbl>, wk29 <dbl>, wk30 <dbl>,
## #   wk31 <dbl>, wk32 <dbl>, wk33 <dbl>, wk34 <dbl>, wk35 <dbl>, wk36 <dbl>,
## #   wk37 <dbl>, wk38 <dbl>, wk39 <dbl>, wk40 <dbl>, wk41 <dbl>, wk42 <dbl>,
## #   wk43 <dbl>, wk44 <dbl>, wk45 <dbl>, wk46 <dbl>, wk47 <dbl>, wk48 <dbl>, …

3.1 Biên tập dữ liệu

3.1.1 Tách rời dữ liệu

3.1.1.1 - Chỉ riêng các trường tại Los Angeles

LA <- subset(CASchools, county=="Los Angeles")
head(LA,5)
##    district                   school      county grades students teachers
## 19    64709        Lennox Elementary Los Angeles  KK-08     6880    303.0
## 33    64816 Mountain View Elementary Los Angeles  KK-08    10012    464.9
## 36    64758    Los Nietos Elementary Los Angeles  KK-08     2267    103.7
## 46    65078   Valle Lindo Elementary Los Angeles  KK-08     1235     53.0
## 51    64592     Hawthorne Elementary Los Angeles  KK-08     8935    444.5
##    calworks lunch computer expenditure income english  read  math
## 19   21.282 94.97      960        5065  7.022   77.01 619.1 620.5
## 33   29.764 91.59      721        5036  8.127   65.12 620.8 629.8
## 36   19.152 84.43      177        5272 11.333   35.47 625.4 628.2
## 46    8.218 62.13      175        4360  7.332   30.28 630.2 629.4
## 51   36.945 79.51      786        5017 14.062   44.09 628.4 633.7

3.1.1.2 - Chỉ riêng các trường có số học sinh trên 1000

Tren1000 <- subset(CASchools, students>1000)
head(Tren1000,5)
##    district                      school      county grades students teachers
## 3     61549 Thermalito Union Elementary       Butte  KK-08     1550     82.9
## 5     61523    Palermo Union Elementary       Butte  KK-08     1335     71.5
## 10    67306 Del Paso Heights Elementary  Sacramento  KK-06     2247    108.0
## 19    64709           Lennox Elementary Los Angeles  KK-08     6880    303.0
## 20    63560           Lamont Elementary        Kern  KK-08     2688    135.0
##    calworks lunch computer expenditure income english  read  math
## 3     55.03 76.32      169        5502  8.978   30.00 636.3 650.9
## 5     33.11 78.43      171        5236  9.080   13.86 641.8 639.9
## 10    78.99 87.32        0        5036 11.613   40.28 611.9 613.4
## 19    21.28 94.97      960        5065  7.022   77.01 619.1 620.5
## 20    23.44 93.23      139        5434  5.699   49.81 621.3 619.3

3.1.1.3 - Chỉ riêng những trường có số học sinh trên 1000 tại Los Angeles

SD <- subset(CASchools, students>1000 & county=="Los Angeles")
head(SD,10)
##    district                    school      county grades students teachers
## 19    64709         Lennox Elementary Los Angeles  KK-08     6880    303.0
## 33    64816  Mountain View Elementary Los Angeles  KK-08    10012    464.9
## 36    64758     Los Nietos Elementary Los Angeles  KK-08     2267    103.7
## 46    65078    Valle Lindo Elementary Los Angeles  KK-08     1235     53.0
## 51    64592      Hawthorne Elementary Los Angeles  KK-08     8935    444.5
## 55    65110  Whittier City Elementary Los Angeles  KK-08     7151    318.6
## 56    64477 Eastside Union Elementary Los Angeles  KK-08     2404    105.0
## 57    64691       Lawndale Elementary Los Angeles  KK-08     5804    283.1
## 67    65037 South Whittier Elementary Los Angeles  KK-08     4340    209.8
## 72    64642   Keppel Union Elementary Los Angeles  KK-08     2987    141.2
##    calworks lunch computer expenditure income english  read  math
## 19   21.282 94.97      960        5065  7.022   77.01 619.1 620.5
## 33   29.764 91.59      721        5036  8.127   65.12 620.8 629.8
## 36   19.152 84.43      177        5272 11.333   35.47 625.4 628.2
## 46    8.218 62.13      175        4360  7.332   30.28 630.2 629.4
## 51   36.945 79.51      786        5017 14.062   44.09 628.4 633.7
## 55   18.548 61.74      560        5245 15.404   31.07 634.2 629.7
## 56   20.927 52.94      202        4838 13.762   18.26 633.5 630.5
## 57   28.343 81.12      480        5368 14.184   34.70 631.4 633.0
## 67   17.703 93.92      284        5182 14.602   31.20 631.9 636.2
## 72   21.259 68.40      273        4827 13.731   14.43 637.7 631.1

3.1.2 Chiết số liệu từ 1 data.frame

3.1.2.1 Chỉ lấy biến Truong, Thanhpho, Hocsinh

data235 <- S[, c(2,3,5)]
head(data235,5)
##                            Truong Thanhpho Hocsinh
## 1              Sunol Glen Unified  Alameda     195
## 2            Manzanita Elementary    Butte     240
## 3     Thermalito Union Elementary    Butte    1550
## 4 Golden Feather Union Elementary    Butte     243
## 5        Palermo Union Elementary    Butte    1335

3.1.3 Bổ sung dữ liệu mới

Hocsinhmoi <- (Hocsinh + Giaovien)
Maytinhmoi <- (CO+2)

3.2 Các hàm phân phối nhị phân và phân phối poisson

3.2.1 Hàm phân phối nhị phân

Bangdiemx <- cut(M, breaks = c(0, 650, 1000), labels = c("dưới 650 điểm" , "trên 650 điểm"), right = TRUE)
tabdiemx=table(Bangdiemx)
tabdiemx
## Bangdiemx
## dưới 650 điểm trên 650 điểm 
##           191           229
  • Ý nghĩa: Biết rằng trong một quần thể quan sát có khoảng 191/420 người dưới 650; nếu chúng ta tiến hành chọn mẫu 1000 lần, mỗi lần chọn 20 người trong quần thể đó một cách ngẫu nhiên, sự phân phối đó sẽ như thế nào?
b <- rbinom(1000, 20, 191/420)
table(b)
## b
##   2   3   4   5   6   7   8   9  10  11  12  13  14  15  17 
##   1   4  16  29  77 103 155 172 174 126  72  43  18   9   1
  • => Đồ thị thể hiện:
hist(b, main="Phân phối nhị phân của biến điểm toán") 

3.3 Biểu diễn số liệu bằng đồ thị

3.3.1 Biểu đồ cột

3.3.1.1 Biểu đồ biến THu nhập

BangThuNhap2 <- cut(income, breaks = c(5, 10, 20, 40, 56), labels = c("thap", "trungbinh", "trungbinhcao","cao"), right = TRUE)
tabThuNhap2 = table(BangThuNhap2)
barplot(tabThuNhap2, main= "Biểu đồ biến thu nhập")

### Biểu đồ Strip

stripchart(I, main= "Biểu đồ Strip của biến Thu Nhập", xlab = "Thu Nhập")

stripchart(Hocsinh, main= "Biểu đồ Strip của số học sinh", xlab = "Học sinh")

3.3.2 Biểu đồ cột cho 2 biến

3.3.2.1 + Chú thích: màu đen -> màu xám trắng: thu nhập thấp -> cao

tabTND = table(BangThuNhap2, Bangdiemx)
barplot(tabTND, beside=TRUE, xlab="Độ tuổi", ylab= "Tần số")

3.3.3 Biểu đồ tròn

pie(tabThuNhap2, main = "Biểu đồ tròn của biến Thu Nhập")

pie(tabdiemx, main = "Biểu đồ tròn của biến điểm Toán" )

3.3.4 Biểu đồ tán xạ của Biến Thu Nhập và Số Học sinh

plot(income,Hocsinh)

4 BÀI TẬP TUẦN 2

Phân tích dữ liệu chéo của biến định lượng “students” của dataset: “CASchool” lên biến định lượng “income” thuộc package “AER” ## Mô tả dữ liệu - Biến định lượng Income - Biến định lượng Students ## Đánh giá dữ liệu

library(AER)
data("CASchools")
### Tạo dữ liệu bản sau “S” từ “CASchools"
S <- CASchools
### Đặt lại tên cho các thuộc tính 
names(S) <- c("D","SC","C","G","ST","T","CA","L","CO","E","I","EN","R","M")

4.1 Biến income

4.1.1 Trung bình

mean(S$I)
## [1] 15.32

4.1.2 Trung vị

median(S$I, na.rm = FALSE)
## [1] 13.73

4.1.3 Phương sai

var(S$I)
## [1] 52.21

4.1.4 Tính tổng

sum(S$I)
## [1] 6433

4.1.5 Độ lệch chuẩn

sd(S$I)
## [1] 7.226

4.2 Biến student

4.2.1 Trung bình

mean(S$ST)
## [1] 2629

4.2.2 Trung vị

median(S$ST, na.rm = FALSE)
## [1] 950.5

4.2.3 Độ lệch chuẩn

sd(S$ST)
## [1] 3913

4.2.4 Phương sai

var(S$ST)
## [1] 15312391

4.2.5 Tính tổng

sum(S$ST)
## [1] 1104093

4.3 LẬP BẢNG TẦN SỐ

4.3.1 Biến Thu nhập (income)

4.3.1.1 Lập bảng tần số của biến thu nhập (income) như sau:

I <- S$I
BangI <- cut(I, breaks = c(5, 15, 25, 35, 50 ), labels = c("thấp", "trung bình" , "trung bình cao", "rất cao"), right = TRUE)
tabincome= table(BangI)
tabincome
## BangI
##           thấp     trung bình trung bình cao        rất cao 
##            255            132             17             14

4.3.1.2 Nhận xét: Dựa vào bảng tần số ta có thể thấy mức thu nhập Thấp chiếm tỷ lệ rất cao và ngược lại mức thu nhập Rất Cao lại chiếm tỷ lệ thấp nhất.

4.3.2 Lập bảng tần số cho biến Students

ST <- S$ST
BangST <- cut(ST, breaks = c(200,400,600,1000), labels = c("Ít", "Vừa", "Đông"), right = TRUE)
tabde=table(BangST)
tabde
## BangST
##   Ít  Vừa Đông 
##   52   61   46

4.4 Phân tích sự tác động giữa 2 biến định lượng

tabearnde = table(BangI, BangST)
tabearnde
##                 BangST
## BangI            Ít Vừa Đông
##   thấp           36  46   26
##   trung bình     15  13   15
##   trung bình cao  0   0    3
##   rất cao         1   2    1

4.5 Kiểm định chi bình phương (chi-squared):

4.5.1 Trong kiểm định này, chúng ta phải kiểm tra các giá trị p-value và đặt ra bài toán kiểm định gồm có giả thuyết H0 và H1.

4.5.2 Chúng ta sẽ bác bỏ giả thuyết H0 nếu giá trị p-value xuất hiện trong kết quả nhỏ hơn mức ý nghĩa xác định trước, mức ý nghĩa thường là 0,05.

4.5.2.1 H0: Hai biến độc lập

4.5.2.2 H1: Hai biến phụ thuộc

chisq.test(I, ST, correct=FALSE)
## Warning in chisq.test(I, ST, correct = FALSE): Chi-squared approximation may be
## incorrect
## 
##  Pearson's Chi-squared test
## 
## data:  I and ST
## X-squared = 131671, df = 131040, p-value = 0.1

4.5.3 Vì giá trị p-value=0.1089 nhỏ hơn mức ý nghĩa nên bác bỏ H0.

4.5.4 Kết luận: Giữa 2 biến có sự liên quan đến nhau hay nói cách khác đây là hai biến phụ thuộc.

5 BÀI TẬP TUẦN 1

5.1 Mô tả dữ liệu

Một khung dữ liệu chứa 420 quan sát trên 14 biến.

district: Mã huyện

school: Tên trường

county: Thành phố

grades: nhân tố biểu thị nhịp độ của huyện.

students: tổng Số học sinh ghi danh

teachers: Số giáo viên

calworks: Phần trăm đủ điều kiện cho hỗ trợ thu nhập

lunch: phần trăm đủ điều kiện cho bữa ăn trưa giảm giá

computer: Số lượng máy tính

expenditure: Chi tiêu cho mỗi sinh viên

income: thu nhập bình quân của huyện (tính theo USD 1.000)

english: tỷ lệ người học tiếng Anh

read: Điểm đọc trung bình

math: Điểm toán trung bình

5.2 Xử lý dữ liệu

5.2.1 Khai báo sử dụng package “AER” từ thư viện và sử dụng tập dữ liệu “CASchool”

library(AER)
data("CASchools")
### Tạo dữ liệu bản sau “S” từ “CASchools""
S <- CASchools
### Đặt lại tên cho các thuộc tính 
names(S) <- c("D","SC","C","G","ST","T","CA","L","CO","E","I","EN","R","M")
### Xem cấu trúc dữ liệu “CASchools”
str(CASchools)
## 'data.frame':    420 obs. of  14 variables:
##  $ district   : chr  "75119" "61499" "61549" "61457" ...
##  $ school     : chr  "Sunol Glen Unified" "Manzanita Elementary" "Thermalito Union Elementary" "Golden Feather Union Elementary" ...
##  $ county     : Factor w/ 45 levels "Alameda","Butte",..: 1 2 2 2 2 6 29 11 6 25 ...
##  $ grades     : Factor w/ 2 levels "KK-06","KK-08": 2 2 2 2 2 2 2 2 2 1 ...
##  $ students   : num  195 240 1550 243 1335 ...
##  $ teachers   : num  10.9 11.1 82.9 14 71.5 ...
##  $ calworks   : num  0.51 15.42 55.03 36.48 33.11 ...
##  $ lunch      : num  2.04 47.92 76.32 77.05 78.43 ...
##  $ computer   : num  67 101 169 85 171 25 28 66 35 0 ...
##  $ expenditure: num  6385 5099 5502 7102 5236 ...
##  $ income     : num  22.69 9.82 8.98 8.98 9.08 ...
##  $ english    : num  0 4.58 30 0 13.86 ...
##  $ read       : num  692 660 636 652 642 ...
##  $ math       : num  690 662 651 644 640 ...

5.2.2 Xem thử 6 dòng đầu của dữ liệu “S”

head(S)
##       D                              SC       C     G   ST     T      CA      L
## 1 75119              Sunol Glen Unified Alameda KK-08  195 10.90  0.5102  2.041
## 2 61499            Manzanita Elementary   Butte KK-08  240 11.15 15.4167 47.917
## 3 61549     Thermalito Union Elementary   Butte KK-08 1550 82.90 55.0323 76.323
## 4 61457 Golden Feather Union Elementary   Butte KK-08  243 14.00 36.4754 77.049
## 5 61523        Palermo Union Elementary   Butte KK-08 1335 71.50 33.1086 78.427
## 6 62042         Burrel Union Elementary  Fresno KK-08  137  6.40 12.3188 86.956
##    CO    E      I     EN     R     M
## 1  67 6385 22.690  0.000 691.6 690.0
## 2 101 5099  9.824  4.583 660.5 661.9
## 3 169 5502  8.978 30.000 636.3 650.9
## 4  85 7102  8.978  0.000 651.9 643.5
## 5 171 5236  9.080 13.858 641.8 639.9
## 6  25 5580 10.415 12.409 605.7 605.4
### Lấy biến C của dữ liệu S làm dữ liệu mới
tea <- S$T
### Lấy dữ liệu có điều kiện
tea20 <- tea[tea<20]
tea20den80 <- tea[tea>20&tea<80]
### Xem dòng 3 của dữ  liệu tea
tea[3]
## [1] 82.9
### Lấy dữ liệu khi biến E>6000 hoặc biến I<10
teavv <- S[S$E>6000|S$I<10,]
### Thêm 2 biến 
S$logEN <- log(S$EN)
S$sumR <- sum(S$R)
### Lập bảng tần số của biến Cou thuộc dữ liệu S
Cou <- S$CO
cut(Cou,5)
##   [1] (-3.32,665]         (-3.32,665]         (-3.32,665]        
##   [4] (-3.32,665]         (-3.32,665]         (-3.32,665]        
##   [7] (-3.32,665]         (-3.32,665]         (-3.32,665]        
##  [10] (-3.32,665]         (-3.32,665]         (-3.32,665]        
##  [13] (-3.32,665]         (-3.32,665]         (-3.32,665]        
##  [16] (-3.32,665]         (-3.32,665]         (-3.32,665]        
##  [19] (665,1.33e+03]      (-3.32,665]         (-3.32,665]        
##  [22] (-3.32,665]         (-3.32,665]         (-3.32,665]        
##  [25] (-3.32,665]         (-3.32,665]         (665,1.33e+03]     
##  [28] (-3.32,665]         (-3.32,665]         (-3.32,665]        
##  [31] (-3.32,665]         (-3.32,665]         (665,1.33e+03]     
##  [34] (-3.32,665]         (1.33e+03,1.99e+03] (-3.32,665]        
##  [37] (-3.32,665]         (-3.32,665]         (-3.32,665]        
##  [40] (-3.32,665]         (1.33e+03,1.99e+03] (-3.32,665]        
##  [43] (-3.32,665]         (-3.32,665]         (-3.32,665]        
##  [46] (-3.32,665]         (1.33e+03,1.99e+03] (-3.32,665]        
##  [49] (2.66e+03,3.33e+03] (665,1.33e+03]      (665,1.33e+03]     
##  [52] (-3.32,665]         (665,1.33e+03]      (665,1.33e+03]     
##  [55] (-3.32,665]         (-3.32,665]         (-3.32,665]        
##  [58] (-3.32,665]         (-3.32,665]         (-3.32,665]        
##  [61] (-3.32,665]         (-3.32,665]         (665,1.33e+03]     
##  [64] (-3.32,665]         (-3.32,665]         (-3.32,665]        
##  [67] (-3.32,665]         (-3.32,665]         (-3.32,665]        
##  [70] (-3.32,665]         (-3.32,665]         (-3.32,665]        
##  [73] (-3.32,665]         (665,1.33e+03]      (-3.32,665]        
##  [76] (-3.32,665]         (-3.32,665]         (-3.32,665]        
##  [79] (-3.32,665]         (-3.32,665]         (665,1.33e+03]     
##  [82] (-3.32,665]         (-3.32,665]         (-3.32,665]        
##  [85] (-3.32,665]         (-3.32,665]         (-3.32,665]        
##  [88] (665,1.33e+03]      (665,1.33e+03]      (-3.32,665]        
##  [91] (-3.32,665]         (-3.32,665]         (-3.32,665]        
##  [94] (-3.32,665]         (-3.32,665]         (-3.32,665]        
##  [97] (-3.32,665]         (665,1.33e+03]      (-3.32,665]        
## [100] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [103] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [106] (-3.32,665]         (665,1.33e+03]      (-3.32,665]        
## [109] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [112] (665,1.33e+03]      (-3.32,665]         (-3.32,665]        
## [115] (-3.32,665]         (-3.32,665]         (1.33e+03,1.99e+03]
## [118] (1.33e+03,1.99e+03] (-3.32,665]         (-3.32,665]        
## [121] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [124] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [127] (-3.32,665]         (665,1.33e+03]      (-3.32,665]        
## [130] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [133] (665,1.33e+03]      (-3.32,665]         (1.33e+03,1.99e+03]
## [136] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [139] (-3.32,665]         (665,1.33e+03]      (-3.32,665]        
## [142] (-3.32,665]         (1.33e+03,1.99e+03] (-3.32,665]        
## [145] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [148] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [151] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [154] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [157] (665,1.33e+03]      (-3.32,665]         (665,1.33e+03]     
## [160] (2.66e+03,3.33e+03] (-3.32,665]         (-3.32,665]        
## [163] (-3.32,665]         (1.99e+03,2.66e+03] (665,1.33e+03]     
## [166] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [169] (665,1.33e+03]      (-3.32,665]         (-3.32,665]        
## [172] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [175] (-3.32,665]         (-3.32,665]         (665,1.33e+03]     
## [178] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [181] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [184] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [187] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [190] (-3.32,665]         (665,1.33e+03]      (-3.32,665]        
## [193] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [196] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [199] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [202] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [205] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [208] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [211] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [214] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [217] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [220] (665,1.33e+03]      (-3.32,665]         (-3.32,665]        
## [223] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [226] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [229] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [232] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [235] (1.99e+03,2.66e+03] (665,1.33e+03]      (-3.32,665]        
## [238] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [241] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [244] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [247] (-3.32,665]         (-3.32,665]         (1.33e+03,1.99e+03]
## [250] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [253] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [256] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [259] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [262] (-3.32,665]         (-3.32,665]         (1.33e+03,1.99e+03]
## [265] (-3.32,665]         (1.33e+03,1.99e+03] (-3.32,665]        
## [268] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [271] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [274] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [277] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [280] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [283] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [286] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [289] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [292] (-3.32,665]         (665,1.33e+03]      (-3.32,665]        
## [295] (-3.32,665]         (665,1.33e+03]      (-3.32,665]        
## [298] (665,1.33e+03]      (-3.32,665]         (-3.32,665]        
## [301] (-3.32,665]         (665,1.33e+03]      (-3.32,665]        
## [304] (1.33e+03,1.99e+03] (665,1.33e+03]      (-3.32,665]        
## [307] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [310] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [313] (-3.32,665]         (665,1.33e+03]      (-3.32,665]        
## [316] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [319] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [322] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [325] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [328] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [331] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [334] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [337] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [340] (665,1.33e+03]      (665,1.33e+03]      (-3.32,665]        
## [343] (665,1.33e+03]      (665,1.33e+03]      (-3.32,665]        
## [346] (-3.32,665]         (665,1.33e+03]      (-3.32,665]        
## [349] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [352] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [355] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [358] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [361] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [364] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [367] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [370] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [373] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [376] (665,1.33e+03]      (-3.32,665]         (-3.32,665]        
## [379] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [382] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [385] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [388] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [391] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [394] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [397] (-3.32,665]         (-3.32,665]         (1.99e+03,2.66e+03]
## [400] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [403] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [406] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [409] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [412] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## [415] (-3.32,665]         (-3.32,665]         (665,1.33e+03]     
## [418] (-3.32,665]         (-3.32,665]         (-3.32,665]        
## 5 Levels: (-3.32,665] (665,1.33e+03] ... (2.66e+03,3.33e+03]
table(cut(Cou,5))
## 
##         (-3.32,665]      (665,1.33e+03] (1.33e+03,1.99e+03] (1.99e+03,2.66e+03] 
##                 365                  39                  11                   3 
## (2.66e+03,3.33e+03] 
##                   2