# Gọi bộ dữ liệu
library(AER)
## Loading required package: car
## Loading required package: carData
## Loading required package: lmtest
## Loading required package: zoo
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
## Loading required package: sandwich
## Loading required package: survival
data(CASchools)
# Xem nội dung của biến Teachers
gv <- unique(CASchools$teachers)
# Xem 10 dòng đầu của biến Teachers
head(gv, 10)
## [1] 10.90 11.15 82.90 14.00 71.50 6.40 10.00 42.50 19.00 108.00
# Xem 10 dòng cuối của biến Teachers
tail(gv, 10)
## [1] 32.87 98.42 87.06 12.33 44.59 124.09 59.73 208.48 20.15 93.40
# Xem 4 dòng ở giữa của biến Teachers
CASchools$teachers[(length(CASchools$teachers)/2 - 2):(length(CASchools$teachers)/2 + 1)]
## [1] 150.00 107.21 6.05 61.99
# Gán lệnh unique(CASchools$school) vào sc
sc <- unique(CASchools$school)
# Xem 6 dòng đầu tiên của biến School
head(sc, 6)
## [1] "Sunol Glen Unified" "Manzanita Elementary"
## [3] "Thermalito Union Elementary" "Golden Feather Union Elementary"
## [5] "Palermo Union Elementary" "Burrel Union Elementary"
# Xem 10 dòng cuối của biến School
tail(sc, 10)
## [1] "Orinda Union Elementary" "Hillsborough City Elementary"
## [3] "Cold Spring Elementary" "Portola Valley Elementary"
## [5] "Saratoga Union Elementary" "Las Lomitas Elementary"
## [7] "Los Altos Elementary" "Somis Union Elementary"
## [9] "Plumas Elementary" "Wheatland Elementary"
# Xem nội dung 6 dòng ở giữa của biến Schools
CASchools$school[(length(CASchools$school)/2 - 2):(length(CASchools$school)/2 + 3)]
## [1] "Rosemead Elementary" "Grass Valley Elementary"
## [3] "Buena Vista Elementary" "Kernville Union Elementary"
## [5] "Galt Joint Union Elementary" "Southside Elementary"
# Xem danh sách các biến trong bộ dữ liệu CASchools
names(CASchools)
## [1] "district" "school" "county" "grades" "students"
## [6] "teachers" "calworks" "lunch" "computer" "expenditure"
## [11] "income" "english" "read" "math"
# Sử dụng hàm summary để xem thống kê mô tả của biến expenditure
summary(CASchools$expenditure)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 3926 4906 5215 5312 5601 7712
# Sắp xếp dữ liệu và hiển thị một số mẫu đầu tiên
head(sort(CASchools$expenditure))
## [1] 3926.070 4016.416 4023.532 4079.129 4136.251 4138.306
Lệnh này sẽ sắp xếp các giá trị chi tiêu cho mỗi học sinh trong bộ dữ liệu “CASchools” theo thứ tự tăng dần, sau đó hiển thị một số mẫu đầu tiên trong danh sách đã sắp xếp.
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 ...
Hàm trên sẽ hiển thị thông tin về các biến trong bộ dữ liệu CASchools, bao gồm tên biến, loại dữ liệu và một số giá trị mẫu. Ta có thể xem đâu là biến có loại dữ liệu định tính chr (character) và đâu là biến có loại dữ liệu định lượng num (numeric)
# Sử dụng hàm class để xem biến math
class(CASchools$math)
## [1] "numeric"
Kết quả trả về là numeric, đây là biến định lượng
# Sử dụng hàm class để xem biến district
class(CASchools$district)
## [1] "character"
Kết quả trả về là character, đây là biến định tính
sapply(CASchools, class)
## district school county grades students teachers
## "character" "character" "factor" "factor" "numeric" "numeric"
## calworks lunch computer expenditure income english
## "numeric" "numeric" "numeric" "numeric" "numeric" "numeric"
## read math
## "numeric" "numeric"
Được sử dụng để biểu diễn tỷ lệ phần trăm của các biến định tính
# Vẽ biểu đồ pie chart của biến district
library(ggplot2)
ggplot(CASchools, aes(x = "", fill = district)) +
geom_bar(width = 1) +
coord_polar("y", start = 0) +
theme_void()
Ý nghĩa của biểu đồ hình tròn là hiển thị tỷ lệ phần trăm của các giá trị khác nhau của biến district trong bộ dữ liệu. Mỗi phần trăm được biểu diễn bằng một phần trong đồ tròn, và màu sắc của mỗi phần tương ứng với giá trị của district.
Được sử dụng để hiển thị mức độ tương quan giữa các biến định lượng
# Cài đặt các gói cần thiết
options(repos = "https://cran.rstudio.com/")
install.packages("corrplot")
## Installing package into 'C:/Users/Heckler Koch/AppData/Local/R/win-library/4.3'
## (as 'lib' is unspecified)
## package 'corrplot' successfully unpacked and MD5 sums checked
##
## The downloaded binary packages are in
## C:\Users\Heckler Koch\AppData\Local\Temp\RtmpaO4xl0\downloaded_packages
library(ggplot2)
update.packages("corrplot")
library(corrplot)
## corrplot 0.92 loaded
# Vẽ biểu đồ tương quan giữa các biến students,expenditure,calworks,lunch
tq <- CASchools[c("students", "expenditure", "calworks","lunch")]
bieudo <- cor(tq)
corrplot(bieudo, method = "circle")
Biểu đồ histogram là một công cụ phân tích dữ liệu thường được sử dụng để hiển thị phân phối tần suất của một biến số.
# vẽ biểu đồ histogram cho biến income trong bộ dữ liệu CASchools
library(ggplot2)
ggplot(CASchools, aes(x = income)) +
geom_histogram()
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
Phân tích mối quan hệ giữa số lượng học sinh và kinh phí giáo dục.Ta có thể coi biến students là biến phụ thuộc và biến expenditure là biến độc lập. Mục tiêu của phân tích hồi quy tuyến tính là xem liệu có mối tương quan và ảnh hưởng giữa kinh phí giáo dục và số lượng học sinh trong các trường học.
# Sử dụng hàm lm để phân tích hồi quy
sm <- lm(students ~ expenditure, data = CASchools)
summary(sm)
##
## Call:
## lm(formula = students ~ expenditure, data = CASchools)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3433.7 -2192.7 -1398.1 325.6 24929.8
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 6310.8178 1605.0426 3.932 9.86e-05 ***
## expenditure -0.6931 0.3000 -2.310 0.0214 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 3893 on 418 degrees of freedom
## Multiple R-squared: 0.01261, Adjusted R-squared: 0.01025
## F-statistic: 5.337 on 1 and 418 DF, p-value: 0.02136
Dựa vào kết quả chạy ta thấy:
Residuals: Mô tả về các giá trị dư thừa (residuals) của mô hình, bao gồm giá trị tối thiểu Min = -3433.7, phân vị thứ nhất (1Q)= -2192.7, trung vị (Median)= -1398.1, phân vị thứ ba (3Q)= 325.6 và giá trị tối đa (Max)= 24929.8
Coefficients: Hiển thị các hệ số ước lượng trong mô hình
Ước lượng hệ số (Estimate):
Độ lệch chuẩn của ước lượng (Standard Error):
Giá trị t (t value):
Giá trị p (Pr(>|t|)):
Độ lỗi chuẩn của dư thừa (Residual standard error): 3893
R-quadrat (Multiple R-squared): 0.01261 (cho biết mức độ giải thích của mô hình)
R-quadrat đã điều chỉnh (Adjusted R-squared): 0.01025 (đã điều chỉnh dựa trên số lượng biến trong mô hình)
Giá trị F (F-statistic): 5.337 (để kiểm tra toàn bộ mô hình)
Giá trị p của F (p-value): 0.02136 (thấp, cho thấy mô hình có ý nghĩa đáng kể)
#Gọi package AER và bộ dữ liệu CASchools
library(AER)
data(CASchools)
tapply(CASchools$students, CASchools$county, mean)
## Alameda Butte Calaveras Contra Costa El Dorado
## 195.0000 1152.5000 777.0000 2725.8571 1372.9000
## Fresno Glenn Humboldt Imperial Inyo
## 504.4167 137.6667 379.7059 1936.0000 1510.0000
## Kern Kings Lake Lassen Los Angeles
## 3108.3333 1507.4444 445.0000 565.2000 5830.9259
## Madera Marin Mendocino Merced Monterey
## 1021.8000 1642.8750 337.0000 2112.0000 3549.4286
## Nevada Orange Placer Riverside Sacramento
## 951.0000 8223.9091 1880.8182 2848.5000 3511.4286
## San Benito San Bernardino San Diego San Joaquin San Luis Obispo
## 2146.6667 6469.7000 6170.2857 366.0000 217.5000
## San Mateo Santa Barbara Santa Clara Santa Cruz Shasta
## 3289.2353 2409.2727 5931.9000 1184.5714 936.7692
## Siskiyou Sonoma Stanislaus Sutter Tehama
## 430.2222 984.0000 3006.0000 259.1667 859.1250
## Trinity Tulare Tuolumne Ventura Yuba
## 294.0000 898.9583 652.1667 4627.7778 939.5000
tapply(CASchools$expenditure, CASchools$county, mean)
## Alameda Butte Calaveras Contra Costa El Dorado
## 6384.911 5776.724 5482.677 5269.445 5309.967
## Fresno Glenn Humboldt Imperial Inyo
## 5396.978 4363.346 5449.528 5036.141 5189.628
## Kern Kings Lake Lassen Los Angeles
## 5165.863 5267.910 5762.261 4944.442 5055.672
## Madera Marin Mendocino Merced Monterey
## 5587.214 6158.656 6089.911 5227.237 5171.937
## Nevada Orange Placer Riverside Sacramento
## 5560.375 4980.176 5026.351 4904.150 5212.460
## San Benito San Bernardino San Diego San Joaquin San Luis Obispo
## 5137.167 5015.355 5412.878 4885.268 5058.711
## San Mateo Santa Barbara Santa Clara Santa Cruz Shasta
## 5715.444 5307.868 5560.497 5889.167 5479.120
## Siskiyou Sonoma Stanislaus Sutter Tehama
## 6241.181 5660.046 4855.546 4613.043 5008.996
## Trinity Tulare Tuolumne Ventura Yuba
## 5827.908 4852.233 5408.842 4964.327 5384.865
# Biểu đồ phân phối số học sinh
hist(CASchools$students, xlab = "Số lượng học sinh trong trường", main = "Phân phối số học sinh")
# Biểu đồ phân phối kinh phí giáo dục
hist(CASchools$expenditure, xlab = "Kinh phí giáo dục của trường", main = "Phân phối kinh phí giáo dục")
Để phân tích hồi quy dữ liệu trong bộ dữ liệu CASchools từ gói AER trong R, ta sử dụng hàm lm() để thực hiện mô hình hồi quy.
# Phân tích hồi quy với biến phụ thuộc là "students" (Số lượng học sinh trong trường) và biến độc lập là "teachers" (số lượng giáo viên):
lm(students ~ teachers, data = CASchools)
##
## Call:
## lm(formula = students ~ teachers, data = CASchools)
##
## Coefficients:
## (Intercept) teachers
## -51.16 20.76
# Gán hàm lm(students ~ teachers, data = CASchools) vào us
us <- lm(students ~ teachers, data = CASchools)
# Tóm tắt mô hình hồi quy
summary(us)
##
## Call:
## lm(formula = students ~ teachers, data = CASchools)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2444.60 -65.53 10.21 55.35 1878.92
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -51.1628 17.6074 -2.906 0.00386 **
## teachers 20.7640 0.0773 268.620 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 297.3 on 418 degrees of freedom
## Multiple R-squared: 0.9942, Adjusted R-squared: 0.9942
## F-statistic: 7.216e+04 on 1 and 418 DF, p-value: < 2.2e-16
# Tải gói dữ liệu
library(ggplot2)
library(AER)
# Tạo ma trận biểu đồ phân tán
ggplot(CASchools, aes(x = students, y = teachers)) +
geom_point(aes(color = expenditure)) +
labs(x = "Số lượng học sinh trong trường", y = "Số lượng giáo viên") +
geom_smooth(method = "lm", se = FALSE)
## `geom_smooth()` using formula = 'y ~ x'
Qua đồ thị, chúng ta có thể quan sát mẫu mực chung về quan hệ giữa số
lượng học sinh và số lượng giáo viên trong các trường học. Nếu có sự
tương quan dương mạnh, chúng ta có thể thấy rằng các trường học có số
lượng học sinh cao thường có số lượng giáo viên tương đối cao và ngược
lại. Điều này có thể cho thấy một sự phụ thuộc giữa số lượng học sinh và
số lượng giáo viên trong hệ thống giáo dục.
ggplot(CASchools, aes(x = expenditure, y = income)) +
geom_point(aes(color = expenditure)) +
labs(x = "Chi tiêu cho mỗi học sinh", y = "Thu nhập trung bình của quận") +
geom_smooth(method = "lm", se = FALSE)
## `geom_smooth()` using formula = 'y ~ x'
Qua đồ thị, chúng ta có thể quan sát mẫu mực chung về quan hệ giữa chi tiêu cho mỗi học sinh và thu nhập trung bình của quận. Nếu có sự tương quan dương, chúng ta có thể thấy rằng các trường học có chi tiêu cho học sinh cao thường có thu nhập trung bình trong khu vực tương đối cao và ngược lại. Điều này có thể cho thấy một mối quan hệ giữa kinh phí giáo dục và thu nhập trung bình trong khu vực trong hệ thống giáo dục.
dùng để chuyển đổi dữ liệu từ dạng rộng (wide) sang dạng dài (long)
library(dplyr)
##
## Attaching package: 'dplyr'
## The following object is masked from 'package:car':
##
## recode
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(tidyr)
library(AER)
data("CASchools")
# Chuyển đổi dữ liệu từ dạng rộng sang dạng dài
long <- CASchools %>%
pivot_longer(cols = c(income, expenditure, students),
names_to = "variable",
values_to = "value")
# Hiển thị kết quả
head(long)
## # A tibble: 6 × 13
## district school county grades teachers calworks lunch computer english read
## <chr> <chr> <fct> <fct> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 75119 Sunol G… Alame… KK-08 10.9 0.510 2.04 67 0 692.
## 2 75119 Sunol G… Alame… KK-08 10.9 0.510 2.04 67 0 692.
## 3 75119 Sunol G… Alame… KK-08 10.9 0.510 2.04 67 0 692.
## 4 61499 Manzani… Butte KK-08 11.1 15.4 47.9 101 4.58 660.
## 5 61499 Manzani… Butte KK-08 11.1 15.4 47.9 101 4.58 660.
## 6 61499 Manzani… Butte KK-08 11.1 15.4 47.9 101 4.58 660.
## # ℹ 3 more variables: math <dbl>, variable <chr>, value <dbl>
data(CASchools)
correlation <- cor(CASchools$students, CASchools$teachers)
print(correlation)
## [1] 0.9971161
Kết quả kiểm định tương quan giữa số lượng học sinh (students) và số lượng giáo viên (teachers) là 0.9971161. Giá trị tương quan này gần bằng 1, cho thấy có một mối quan hệ dương rất mạnh giữa số lượng học sinh và số lượng giáo viên trong bộ dữ liệu CASchools.
Ý nghĩa của giá trị tương quan này là khi số lượng học sinh tăng, số lượng giáo viên cũng có xu hướng tăng theo và ngược lại. Kết quả này hợp lý với nhận thức chung rằng các trường học thường cần có đủ giáo viên để đảm bảo chất lượng giảng dạy cho số lượng học sinh tăng lên.
correlation <- cor(CASchools$calworks, CASchools$lunch)
print(correlation)
## [1] 0.7394218
Kết quả kiểm định tương quan giữa calworks (tỷ lệ học sinh nhận trợ cấp ) và lunch (tỷ lệ học sinh tham gia chương trình bữa trưa miễn phí) là 0.7394218. Giá trị tương quan này có giá trị dương mạnh, cho thấy có một mối quan hệ đáng kể giữa tỷ lệ học sinh nhận trợ cấp và tỷ lệ học sinh tham gia chương trình bữa trưa miễn phí trong bộ dữ liệu CASchools.
Ý nghĩa của giá trị tương quan này là khi tỷ lệ học sinh nhận trợ cấp calworks tăng, tỷ lệ học sinh tham gia chương trình bữa trưa miễn phí cũng có xu hướng tăng theo và ngược lại. Điều này có thể chỉ ra rằng các trường học có tỷ lệ cao hơn của học sinh nhận trợ cấp CalWORKs cũng có xu hướng có tỷ lệ cao hơn của học sinh tham gia chương trình bữa trưa miễn phí.
correlation <- cor(CASchools$expenditure, CASchools$income)
print(correlation)
## [1] 0.3144845
Kết quả kiểm định tương quan giữa kinh phí giáo dục (expenditure) và thu nhập trung bình trong khu vực (income) là 0.3144845. Giá trị tương quan này cho thấy có một mối quan hệ tương đối yếu giữa kinh phí giáo dục và thu nhập trung bình trong khu vực trong bộ dữ liệu CASchools.
Ý nghĩa của giá trị tương quan này là có một mức độ tương quan nhất định giữa kinh phí giáo dục và thu nhập trung bình trong khu vực, tuy nhiên mối quan hệ này không mạnh. Điều này có thể chỉ ra rằng trong bộ dữ liệu CASchools, mức độ tăng/giảm kinh phí giáo dục không thể giải thích bởi mức độ tăng/giảm thu nhập trung bình trong khu vực.
summary(CASchools[c("students", "teachers", "expenditure", "income")])
## students teachers expenditure income
## Min. : 81.0 Min. : 4.85 Min. :3926 Min. : 5.335
## 1st Qu.: 379.0 1st Qu.: 19.66 1st Qu.:4906 1st Qu.:10.639
## Median : 950.5 Median : 48.56 Median :5215 Median :13.728
## Mean : 2628.8 Mean : 129.07 Mean :5312 Mean :15.317
## 3rd Qu.: 3008.0 3rd Qu.: 146.35 3rd Qu.:5601 3rd Qu.:17.629
## Max. :27176.0 Max. :1429.00 Max. :7712 Max. :55.328
cor_matrix <- cor(CASchools[c("students", "teachers", "expenditure", "income")])
cor_matrix
## students teachers expenditure income
## students 1.00000000 0.99711606 -0.11228455 0.02839221
## teachers 0.99711606 1.00000000 -0.09519483 0.04300655
## expenditure -0.11228455 -0.09519483 1.00000000 0.31448448
## income 0.02839221 0.04300655 0.31448448 1.00000000
plot(CASchools$students, CASchools$teachers, xlab = "Số lượng học sinh trong trường", ylab = "Số lượng giáo viên")
plot(CASchools$calworks, CASchools$lunch, xlab = "Tỷ lệ học sinh nhận trợ cấp", ylab = "Tỷ lệ học sinh tham gia chương trình bữa trưa miễn phí")
Bộ dữ liệu chứa dữ liệu về hiệu suất kiểm tra, đặc điểm của trường học và nền tảng nhân khẩu học của học sinh cho các học khu ở California.
Khung dữ liệu chứa 240 quan sát và 14 biến. Gồm :
library(AER)
# Tải tệp dữ liệu CASchools
data("CASchools")
# Gán dữ liệu CASchools vào cas
cas <- CASchools
table(cas$county)
##
## Alameda Butte Calaveras Contra Costa El Dorado
## 1 6 1 7 10
## Fresno Glenn Humboldt Imperial Inyo
## 12 3 17 6 1
## Kern Kings Lake Lassen Los Angeles
## 27 9 2 5 27
## Madera Marin Mendocino Merced Monterey
## 5 8 1 11 7
## Nevada Orange Placer Riverside Sacramento
## 9 11 11 4 7
## San Benito San Bernardino San Diego San Joaquin San Luis Obispo
## 3 10 21 6 2
## San Mateo Santa Barbara Santa Clara Santa Cruz Shasta
## 17 11 20 7 13
## Siskiyou Sonoma Stanislaus Sutter Tehama
## 9 29 7 6 8
## Trinity Tulare Tuolumne Ventura Yuba
## 2 24 6 9 2
Từ kết quả trên ta thấy số lần xuất hiện của mỗi giá trị của biến “county” trong bộ dữ liệu. Cụ thể, nó cho biết số lượng trường học trong mỗi hạt (county) và số lượng trường học tương ứng với mỗi hạt. Ví dụ,Alameda có 1 trường học, Butte có 6 trường học, Calaveras có 1 trường học , các chỉ số còn lại tương tự
# Cấu trúc cơ bản của bộ dữ liệu gồm số lượng quan sát và giá trị
str(cas)
## '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 ...
# Tập hợp các biến số vào vas
vas <- setdiff(names(cas),c("district","school","county","grades","read","math"))
# Mức độ chi tiêu cho mỗi học sinh khác nhau
round(t(psych::describe(cas$expenditure)), 1)
## X1
## vars 1.0
## n 420.0
## mean 5312.4
## sd 633.9
## median 5214.5
## trimmed 5252.9
## mad 487.2
## min 3926.1
## max 7711.5
## range 3785.4
## skew 1.1
## kurtosis 1.9
## se 30.9
# Biểu đồ mức độ chi tiêu cho mỗi học sinh khác nhau
library(ggplot2)
qplot(expenditure, data = cas) + xlim(0, 8000) + xlab("Số tiền chi tiêu cho mỗi học sinh ($)") + ylab("Số lượng trường học")
## Warning: `qplot()` was deprecated in ggplot2 3.4.0.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## Warning: Removed 2 rows containing missing values (`geom_bar()`).
corExp <- cor(cas["expenditure"], cas[setdiff(vas,"expenditure")])
corExp <- round(t(corExp), 2)
corExp[order(corExp[, 1], decreasing = TRUE), , drop = FALSE]
## expenditure
## income 0.31
## calworks 0.07
## lunch -0.06
## computer -0.07
## english -0.07
## teachers -0.10
## students -0.11
Từ kết quả ta thấy
# Mối tương quan giữa tỷ lệ học sinh nhận trợ cấp và tỷ lệ học sinh tham gia chương trình bữa trưa miễn phí
cor(CASchools$calworks, CASchools$lunch)
## [1] 0.7394218
Giá trị tương quan 0.7394218 cho thấy có một mối liên hệ dương mạnh giữa hai biến. Điều này có thể được hiểu như sau: Khi tỷ lệ % đủ điều kiện hỗ trợ thu nhập tăng, thì tỷ lệ bữa trưa cũng có xu hướng tăng, khi tỷ lệ % đủ điều kiện hỗ trợ thu nhập giảm, tỷ lệ bữa trưa cũng có xu hướng giảm. Mối tương quan này cho thấy có sự tương quan tích cực giữa hai biến này trong bộ dữ liệu CASchools.
summary(cas$math)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 605.4 639.4 652.5 653.3 665.9 709.5
Ý nghĩa của các giá trị này là:
summary(cas$read)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 604.5 640.4 655.8 655.0 668.7 704.0
Ý nghĩa của các giá trị này là:
Hàm tính trung bình
Trung bình điểm đọc
mean(cas$read)
## [1] 654.9705
Trung bình điểm toán
mean(cas$math)
## [1] 653.3426
Hàm lượng tử
quantile(cas$math,0.6)
## 60%
## 657.78
Có 60 % điểm trung bình môn toán dưới 657.78
quantile(cas$read,0.35)
## 35%
## 646.685
Có 35 % điểm đọc trung bình dưới 646.685
Hàm phương sai Var
var (cas$read)
## [1] 404.3309
Phương sai 404.3309 cho biết rằng các giá trị trong biến read của bộ dữ liệu CASchool có sự biến đổi lớn quanh giá trị trung bình. Điều này có thể cho thấy sự đa dạng và phân tán của khả năng đọc trong các học sinh trong bộ dữ liệu này
var (cas$math)
## [1] 351.7201
Phương sai 351.7201 cho biết rằng các giá trị trong biến math của bộ dữ liệu CASchool có sự biến đổi lớn quanh giá trị trung bình. Điều này có thể cho thấy sự đa dạng và phân tán của khả năng toán học trong các học sinh trong bộ dữ liệu này.
Vẽ đồ thị cho biến math
library(ggplot2)
library(AER)
data(CASchools)
ggplot(data = CASchools, aes(x = 1:nrow(CASchools), y = math)) +
geom_line() +
labs(x = "Index", y = "Điểm toán", title = "Đồ thị điểm toán trung bình")
Vẽ đồ thị cho biến read
plot(CASchools$read, type = "l", xlab = "Index", ylab = "Điểm đọc trung bình", main = "Đồ thị điểm đọc trung bình")
Bộ dữ liệu chứa dữ liệu về hiệu suất kiểm tra, đặc điểm của trường học và nền tảng nhân khẩu học của học sinh cho các học khu ở California.
Khung dữ liệu chứa 240 quan sát và 14 biến. Gồm :
Gọi thư viện package AER
Hiển thị cấu trúc bên trong của gói dữ liệu
data("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 ...
summary(CASchools)
## district school county grades
## Length:420 Length:420 Sonoma : 29 KK-06: 61
## Class :character Class :character Kern : 27 KK-08:359
## Mode :character Mode :character Los Angeles: 27
## Tulare : 24
## San Diego : 21
## Santa Clara: 20
## (Other) :272
## students teachers calworks lunch
## Min. : 81.0 Min. : 4.85 Min. : 0.000 Min. : 0.00
## 1st Qu.: 379.0 1st Qu.: 19.66 1st Qu.: 4.395 1st Qu.: 23.28
## Median : 950.5 Median : 48.56 Median :10.520 Median : 41.75
## Mean : 2628.8 Mean : 129.07 Mean :13.246 Mean : 44.71
## 3rd Qu.: 3008.0 3rd Qu.: 146.35 3rd Qu.:18.981 3rd Qu.: 66.86
## Max. :27176.0 Max. :1429.00 Max. :78.994 Max. :100.00
##
## computer expenditure income english
## Min. : 0.0 Min. :3926 Min. : 5.335 Min. : 0.000
## 1st Qu.: 46.0 1st Qu.:4906 1st Qu.:10.639 1st Qu.: 1.941
## Median : 117.5 Median :5215 Median :13.728 Median : 8.778
## Mean : 303.4 Mean :5312 Mean :15.317 Mean :15.768
## 3rd Qu.: 375.2 3rd Qu.:5601 3rd Qu.:17.629 3rd Qu.:22.970
## Max. :3324.0 Max. :7712 Max. :55.328 Max. :85.540
##
## read math
## Min. :604.5 Min. :605.4
## 1st Qu.:640.4 1st Qu.:639.4
## Median :655.8 Median :652.5
## Mean :655.0 Mean :653.3
## 3rd Qu.:668.7 3rd Qu.:665.9
## Max. :704.0 Max. :709.5
##
Trong 420 quan sát :
students : Số lượng học sinh trong trường
teachers : Số lượng giáo viên
calworks : Tỷ lệ học sinh nhận trợ cấp
lunch : Tỷ lệ học sinh tham gia chương trình bữa trưa miễn phí
computer : Số lượng máy tính
expenditure : Kinh phí giáo dục của trường
income : Thu nhập trung bình trong khu vực, tính theo 1000 USD - Thu nhập trung bình trong khu vực thấp nhất là 5.335 - Thu nhập trung bình trong khu vực trung bình là 13.728 - Thu nhập trung bình trong khu vực cao nhất là 55.328
english : Điểm trung bình môn tiếng anh trong trường
read : Điểm đọc trung bình
math : Điểm trung bình môn toán
# Gán tên mới là từ viết tắt cho các biến trong CASchools
names(CASchools) <- c("dis","sch","cou","gra","stu","tea","cal","lun","com","exp","inc","eng","rea","mat")
# Lấy 4 dòng đầu tiên của bảng dữ liệu
head(CASchools,4)
## dis sch cou gra stu tea cal
## 1 75119 Sunol Glen Unified Alameda KK-08 195 10.90 0.5102
## 2 61499 Manzanita Elementary Butte KK-08 240 11.15 15.4167
## 3 61549 Thermalito Union Elementary Butte KK-08 1550 82.90 55.0323
## 4 61457 Golden Feather Union Elementary Butte KK-08 243 14.00 36.4754
## lun com exp inc eng rea mat
## 1 2.0408 67 6384.911 22.690 0.000000 691.6 690.0
## 2 47.9167 101 5099.381 9.824 4.583333 660.5 661.9
## 3 76.3226 169 5501.955 8.978 30.000002 636.3 650.9
## 4 77.0492 85 7101.831 8.978 0.000000 651.9 643.5
# Lấy 4 dòng cuối của bảng dữ liệu
tail(CASchools,4)
## dis sch cou gra stu tea cal lun
## 417 69518 Los Altos Elementary Santa Clara KK-08 3724 208.48 1.0741 1.5038
## 418 72611 Somis Union Elementary Ventura KK-08 441 20.15 3.5635 37.1938
## 419 72744 Plumas Elementary Yuba KK-08 101 5.00 11.8812 59.4059
## 420 72751 Wheatland Elementary Yuba KK-08 1778 93.40 6.9235 47.5712
## com exp inc eng rea mat
## 417 721 5741.463 41.73411 4.726101 704.0 709.5
## 418 45 4402.832 23.73300 24.263039 648.3 641.7
## 419 14 4776.336 9.95200 2.970297 667.9 676.5
## 420 313 5993.393 12.50200 5.005624 660.5 651.0
# Gán biến mat trong bộ dữ liệu CASchools vào bn
bn <- CASchools$mat
# Phân tổ dữ liệu cho biến math, phân thành 5 tổ
cut(bn,5)
## [1] (689,710] (647,668] (647,668] (626,647] (626,647] (605,626] (605,626]
## [8] (605,626] (605,626] (605,626] (605,626] (605,626] (605,626] (605,626]
## [15] (605,626] (605,626] (605,626] (605,626] (605,626] (605,626] (605,626]
## [22] (605,626] (605,626] (605,626] (605,626] (605,626] (605,626] (626,647]
## [29] (626,647] (605,626] (626,647] (626,647] (626,647] (605,626] (626,647]
## [36] (626,647] (626,647] (605,626] (626,647] (626,647] (626,647] (626,647]
## [43] (626,647] (626,647] (626,647] (626,647] (626,647] (626,647] (626,647]
## [50] (626,647] (626,647] (626,647] (626,647] (626,647] (626,647] (626,647]
## [57] (626,647] (626,647] (626,647] (626,647] (626,647] (626,647] (626,647]
## [64] (626,647] (626,647] (626,647] (626,647] (626,647] (626,647] (626,647]
## [71] (626,647] (626,647] (626,647] (626,647] (626,647] (626,647] (626,647]
## [78] (605,626] (626,647] (626,647] (626,647] (626,647] (626,647] (626,647]
## [85] (626,647] (626,647] (626,647] (626,647] (626,647] (626,647] (626,647]
## [92] (626,647] (626,647] (626,647] (626,647] (626,647] (626,647] (626,647]
## [99] (626,647] (626,647] (626,647] (626,647] (626,647] (626,647] (626,647]
## [106] (626,647] (626,647] (626,647] (626,647] (626,647] (626,647] (626,647]
## [113] (626,647] (626,647] (626,647] (626,647] (626,647] (626,647] (626,647]
## [120] (626,647] (626,647] (647,668] (626,647] (626,647] (626,647] (626,647]
## [127] (647,668] (647,668] (626,647] (626,647] (626,647] (647,668] (626,647]
## [134] (626,647] (626,647] (626,647] (626,647] (626,647] (626,647] (626,647]
## [141] (626,647] (626,647] (647,668] (626,647] (626,647] (626,647] (626,647]
## [148] (647,668] (626,647] (626,647] (626,647] (647,668] (647,668] (626,647]
## [155] (626,647] (647,668] (647,668] (626,647] (647,668] (647,668] (626,647]
## [162] (626,647] (626,647] (647,668] (647,668] (647,668] (626,647] (647,668]
## [169] (647,668] (647,668] (626,647] (647,668] (647,668] (647,668] (626,647]
## [176] (626,647] (626,647] (647,668] (647,668] (626,647] (647,668] (647,668]
## [183] (647,668] (626,647] (647,668] (647,668] (647,668] (647,668] (647,668]
## [190] (647,668] (647,668] (647,668] (647,668] (647,668] (626,647] (647,668]
## [197] (647,668] (647,668] (647,668] (647,668] (647,668] (647,668] (647,668]
## [204] (647,668] (647,668] (647,668] (647,668] (647,668] (647,668] (647,668]
## [211] (647,668] (647,668] (647,668] (647,668] (647,668] (647,668] (647,668]
## [218] (647,668] (647,668] (647,668] (647,668] (647,668] (647,668] (647,668]
## [225] (647,668] (647,668] (647,668] (647,668] (647,668] (647,668] (647,668]
## [232] (647,668] (647,668] (647,668] (647,668] (647,668] (647,668] (647,668]
## [239] (626,647] (647,668] (647,668] (647,668] (647,668] (647,668] (647,668]
## [246] (647,668] (647,668] (647,668] (647,668] (647,668] (647,668] (647,668]
## [253] (647,668] (647,668] (647,668] (647,668] (647,668] (647,668] (647,668]
## [260] (647,668] (647,668] (647,668] (647,668] (647,668] (647,668] (647,668]
## [267] (647,668] (647,668] (647,668] (647,668] (647,668] (647,668] (668,689]
## [274] (647,668] (647,668] (647,668] (647,668] (647,668] (647,668] (647,668]
## [281] (647,668] (647,668] (647,668] (647,668] (647,668] (668,689] (668,689]
## [288] (647,668] (647,668] (647,668] (647,668] (647,668] (647,668] (647,668]
## [295] (647,668] (647,668] (647,668] (647,668] (647,668] (668,689] (647,668]
## [302] (647,668] (647,668] (647,668] (647,668] (647,668] (647,668] (647,668]
## [309] (647,668] (647,668] (647,668] (668,689] (647,668] (647,668] (668,689]
## [316] (647,668] (647,668] (647,668] (647,668] (647,668] (668,689] (647,668]
## [323] (647,668] (668,689] (668,689] (647,668] (668,689] (668,689] (668,689]
## [330] (668,689] (668,689] (668,689] (647,668] (647,668] (668,689] (668,689]
## [337] (647,668] (668,689] (668,689] (668,689] (668,689] (668,689] (668,689]
## [344] (668,689] (647,668] (647,668] (668,689] (668,689] (647,668] (668,689]
## [351] (668,689] (668,689] (668,689] (668,689] (668,689] (668,689] (668,689]
## [358] (647,668] (668,689] (668,689] (647,668] (668,689] (668,689] (668,689]
## [365] (668,689] (668,689] (668,689] (668,689] (668,689] (668,689] (668,689]
## [372] (668,689] (668,689] (668,689] (668,689] (668,689] (668,689] (668,689]
## [379] (668,689] (668,689] (668,689] (668,689] (668,689] (668,689] (668,689]
## [386] (668,689] (668,689] (668,689] (668,689] (668,689] (668,689] (668,689]
## [393] (668,689] (668,689] (668,689] (668,689] (668,689] (668,689] (689,710]
## [400] (668,689] (668,689] (668,689] (689,710] (689,710] (689,710] (689,710]
## [407] (689,710] (689,710] (689,710] (689,710] (689,710] (689,710] (689,710]
## [414] (689,710] (689,710] (689,710] (689,710] (626,647] (668,689] (647,668]
## Levels: (605,626] (626,647] (647,668] (668,689] (689,710]
# Lập bảng tần số cho biến math
table(cut(bn,5))
##
## (605,626] (626,647] (647,668] (668,689] (689,710]
## 26 132 168 77 17
Từ bảng tần số ta thấy số điểm (605,626) có 26 người đạt được, số điểm ( 626,647) có 132 người đạt được, số điểm (647,668) có 168 người đạt được, số điểm ( 668,689) có 77 người đạt được và số điểm ( 689,710) có 17 người đạt được.