Package: AER - Dataset: Prestige (Uy tín của Nghề nghiệp Canada)
Mô tả dữ liệu: Khung dữ liệu Uy tín có 102 hàng và 6 cột. Các quan sát là nghề nghiệp.
Giải thích các biến:
education: Trình độ học vấn trung bình của những người đương nhiệm trong nghề nghiệp, các năm, vào năm 1971.
income: Thu nhập trung bình của những người đương nhiệm, đô la, năm 1971.
women: Tỷ lệ người đương nhiệm là phụ nữ.
prestige: Điểm uy tín của Pineo-Porter cho nghề nghiệp, từ một cuộc khảo sát xã hội được thực hiện vào giữa những năm 1960.
census: Điều tra dân số Canada mã nghề nghiệp
type: Loại nghề nghiệp. Một yếu tố với các cấp độ (lưu ý: không theo thứ tự): bc, Blue Collar; prof, Professional, Managerial, and Technical; wc, Cổ trắng.
Gọi bộ dữ liệu Prestige trong package AER bằng lệnh library và gán nó cho biến Pre để tạo thành một bộ dữ liệu mới. Sau đó, gán data Prestige vào biến có tên là Pre.
library(AER)## Warning: package 'AER' was built under R version 4.2.3
## Loading required package: car
## Warning: package 'car' was built under R version 4.2.3
## Loading required package: carData
## Warning: package 'carData' was built under R version 4.2.3
## Loading required package: lmtest
## Warning: package 'lmtest' was built under R version 4.2.3
## Loading required package: zoo
## Warning: package 'zoo' was built under R version 4.2.3
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
## Loading required package: sandwich
## Warning: package 'sandwich' was built under R version 4.2.3
## Loading required package: survival
library(tidyverse)## Warning: package 'tidyverse' was built under R version 4.2.3
## Warning: package 'ggplot2' was built under R version 4.2.3
## Warning: package 'tibble' was built under R version 4.2.3
## Warning: package 'tidyr' was built under R version 4.2.3
## Warning: package 'readr' was built under R version 4.2.3
## Warning: package 'purrr' was built under R version 4.2.3
## Warning: package 'dplyr' was built under R version 4.2.3
## Warning: package 'stringr' was built under R version 4.2.3
## Warning: package 'forcats' was built under R version 4.2.3
## Warning: package 'lubridate' was built under R version 4.2.3
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.2 ✔ readr 2.1.4
## ✔ forcats 1.0.0 ✔ stringr 1.5.0
## ✔ ggplot2 3.4.2 ✔ tibble 3.2.1
## ✔ lubridate 1.9.2 ✔ tidyr 1.3.0
## ✔ purrr 1.0.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ✖ dplyr::recode() masks car::recode()
## ✖ purrr::some() masks car::some()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
data("Prestige")
Pre <- PrestigeSau đó đặt tên lần lượt cho 6 biến trong bộ dữ liệu là “e”,“i”,“w”,“p”,“c”,“t” bằng lệnh names
names(Pre) <- c("e","i","w","p","c","t" )Dùng lệnh summary để tổng quan dữ liệu
summary(Pre)## e i w p
## Min. : 6.380 Min. : 611 Min. : 0.000 Min. :14.80
## 1st Qu.: 8.445 1st Qu.: 4106 1st Qu.: 3.592 1st Qu.:35.23
## Median :10.540 Median : 5930 Median :13.600 Median :43.60
## Mean :10.738 Mean : 6798 Mean :28.979 Mean :46.83
## 3rd Qu.:12.648 3rd Qu.: 8187 3rd Qu.:52.203 3rd Qu.:59.27
## Max. :15.970 Max. :25879 Max. :97.510 Max. :87.20
## c t
## Min. :1113 bc :44
## 1st Qu.:3120 prof:31
## Median :5135 wc :23
## Mean :5402 NA's: 4
## 3rd Qu.:8312
## Max. :9517
Để xem qua 6 dòng đầu và 6 dòng cuối của dữ liệu bao gồm các thông tin về trình độ học vấn trung bình,thu nhập trung bình,tỷ lệ người đương nhiệm là phụ nữ, điểm uy tín của Pineo-Porter cho nghề nghiệp, điều tra dân số Canada mã nghề nghiệp, loại nghề nghiệp ta sử dụng lệnh head và tail
head(Pre)## e i w p c t
## gov.administrators 13.11 12351 11.16 68.8 1113 prof
## general.managers 12.26 25879 4.02 69.1 1130 prof
## accountants 12.77 9271 15.70 63.4 1171 prof
## purchasing.officers 11.42 8865 9.11 56.8 1175 prof
## chemists 14.62 8403 11.68 73.5 2111 prof
## physicists 15.64 11030 5.13 77.6 2113 prof
tail(Pre)## e i w p c t
## train.engineers 8.49 8845 0.00 48.9 9131 bc
## bus.drivers 7.58 5562 9.47 35.9 9171 bc
## taxi.drivers 7.93 4224 3.59 25.1 9173 bc
## longshoremen 8.37 4753 0.00 26.1 9313 bc
## typesetters 10.00 6462 13.58 42.2 9511 bc
## bookbinders 8.55 3617 70.87 35.2 9517 bc
Trước khi thực hiện phân tích bộ dữ liệu thì cũng cần xem qua cấu trúc của nó. Ta dùng lệnh str
str(Pre)## 'data.frame': 102 obs. of 6 variables:
## $ e: num 13.1 12.3 12.8 11.4 14.6 ...
## $ i: int 12351 25879 9271 8865 8403 11030 8258 14163 11377 11023 ...
## $ w: num 11.16 4.02 15.7 9.11 11.68 ...
## $ p: num 68.8 69.1 63.4 56.8 73.5 77.6 72.6 78.1 73.1 68.8 ...
## $ c: int 1113 1130 1171 1175 2111 2113 2133 2141 2143 2153 ...
## $ t: Factor w/ 3 levels "bc","prof","wc": 2 2 2 2 2 2 2 2 2 2 ...
Lệnh pivot_longer giúp chuyển đổi bảng dữ liệu rộng thành dài.
ttd <- Pre %>% pivot_longer(cols = c('i','w'),names_to = "h1",values_to = "value")table(ttd$h1)##
## i w
## 102 102
Kết quả thu được là tập dữ liệu ttd với 204 quan sát và 6 biến, dài gấp đôi so với tập dữ liệu gốc ban đầu.
tts <- Pre %>% pivot_longer(cols = starts_with('e'),names_to = "e", values_to = 'al')
tts## # A tibble: 102 × 7
## i w p c t e al
## <int> <dbl> <dbl> <int> <fct> <chr> <dbl>
## 1 12351 11.2 68.8 1113 prof e 13.1
## 2 25879 4.02 69.1 1130 prof e 12.3
## 3 9271 15.7 63.4 1171 prof e 12.8
## 4 8865 9.11 56.8 1175 prof e 11.4
## 5 8403 11.7 73.5 2111 prof e 14.6
## 6 11030 5.13 77.6 2113 prof e 15.6
## 7 8258 25.6 72.6 2133 prof e 15.1
## 8 14163 2.69 78.1 2141 prof e 15.4
## 9 11377 1.03 73.1 2143 prof e 14.5
## 10 11023 0.94 68.8 2153 prof e 14.6
## # ℹ 92 more rows
Trong câu lệnh này, chúng ta tiến hành trình bày lại cột dữ liệu education (trình độ học vấn trung bình của những người đương nhiệm trong nghề nghiệp, các năm, vào năm 1971) thành một cột dữ liệu và đặt tên cho cột dữ liệu mới này là e, các giá trị của e đã được đưa vào một cột mới và cột này được đặt tên là al.
ei <- Pre %>% pivot_wider(names_from = i, values_from = e)
ei## # A tibble: 102 × 104
## w p c t `12351` `25879` `9271` `8865` `8403` `11030` `8258`
## <dbl> <dbl> <int> <fct> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 11.2 68.8 1113 prof 13.1 NA NA NA NA NA NA
## 2 4.02 69.1 1130 prof NA 12.3 NA NA NA NA NA
## 3 15.7 63.4 1171 prof NA NA 12.8 NA NA NA NA
## 4 9.11 56.8 1175 prof NA NA NA 11.4 NA NA NA
## 5 11.7 73.5 2111 prof NA NA NA NA 14.6 NA NA
## 6 5.13 77.6 2113 prof NA NA NA NA NA 15.6 NA
## 7 25.6 72.6 2133 prof NA NA NA NA NA NA 15.1
## 8 2.69 78.1 2141 prof NA NA NA NA NA NA NA
## 9 1.03 73.1 2143 prof NA NA NA NA NA NA NA
## 10 0.94 68.8 2153 prof NA NA NA NA NA NA NA
## # ℹ 92 more rows
## # ℹ 93 more variables: `14163` <dbl>, `11377` <dbl>, `11023` <dbl>,
## # `5902` <dbl>, `7059` <dbl>, `8425` <dbl>, `8049` <dbl>, `7405` <dbl>,
## # `6336` <dbl>, `19263` <dbl>, `6112` <dbl>, `9593` <dbl>, `4686` <dbl>,
## # `12480` <dbl>, `5648` <dbl>, `8034` <dbl>, `25308` <dbl>, `14558` <dbl>,
## # `17498` <dbl>, `4614` <dbl>, `3485` <dbl>, `5092` <dbl>, `10432` <dbl>,
## # `5180` <dbl>, `6197` <dbl>, `7562` <dbl>, `8206` <dbl>, `4036` <dbl>, …
ip <- Pre %>% group_by(e,p) %>% summarise(sgh=sum(i),.groups = 'drop') %>% pivot_wider(names_from = p, values_from = sgh)
ip## # A tibble: 96 × 93
## e `28.2` `36.2` `27.3` `33.3` `28.8` `44.1` `38.9` `17.3` `20.8` `23.2`
## <dbl> <int> <int> <int> <int> <int> <int> <int> <int> <int> <int>
## 1 6.38 2847 NA NA NA NA NA NA NA NA NA
## 2 6.6 NA 5959 NA NA NA NA NA NA NA NA
## 3 6.67 NA NA 4696 NA NA NA NA NA NA NA
## 4 6.69 NA NA NA 4443 NA NA NA NA NA NA
## 5 6.74 NA NA NA NA 3485 NA NA NA NA NA
## 6 6.84 NA NA NA NA NA 3643 NA NA NA NA
## 7 6.92 NA NA NA NA NA NA 5299 NA NA NA
## 8 7.11 NA NA NA NA NA NA NA 3472 NA NA
## 9 7.33 NA NA NA NA NA NA NA NA 3000 NA
## 10 7.42 NA NA NA NA NA NA NA NA NA 1890
## # ℹ 86 more rows
## # ℹ 82 more variables: `26.5` <int>, `20.1` <int>, `35.9` <int>, `25.2` <int>,
## # `34.8` <int>, `29.7` <int>, `29.9` <int>, `41.8` <int>, `25.1` <int>,
## # `38.1` <int>, `51.1` <int>, `42.9` <int>, `26.1` <int>, `48.9` <int>,
## # `20.2` <int>, `35.2` <int>, `21.5` <int>, `50.8` <int>, `43.7` <int>,
## # `44.2` <int>, `35.3` <int>, `40.9` <int>, `30.9` <int>, `36.1` <int>,
## # `34.9` <int>, `25.9` <int>, `43.5` <int>, `14.8` <int>, `41.5` <int>, …
e4 <- Pre %>% mutate (level = substr(e,1,4),edu= substr(e,5,8))
print(e4)## e i w p c t level edu
## gov.administrators 13.11 12351 11.16 68.8 1113 prof 13.1 1
## general.managers 12.26 25879 4.02 69.1 1130 prof 12.2 6
## accountants 12.77 9271 15.70 63.4 1171 prof 12.7 7
## purchasing.officers 11.42 8865 9.11 56.8 1175 prof 11.4 2
## chemists 14.62 8403 11.68 73.5 2111 prof 14.6 2
## physicists 15.64 11030 5.13 77.6 2113 prof 15.6 4
## biologists 15.09 8258 25.65 72.6 2133 prof 15.0 9
## architects 15.44 14163 2.69 78.1 2141 prof 15.4 4
## civil.engineers 14.52 11377 1.03 73.1 2143 prof 14.5 2
## mining.engineers 14.64 11023 0.94 68.8 2153 prof 14.6 4
## surveyors 12.39 5902 1.91 62.0 2161 prof 12.3 9
## draughtsmen 12.30 7059 7.83 60.0 2163 prof 12.3
## computer.programers 13.83 8425 15.33 53.8 2183 prof 13.8 3
## economists 14.44 8049 57.31 62.2 2311 prof 14.4 4
## psychologists 14.36 7405 48.28 74.9 2315 prof 14.3 6
## social.workers 14.21 6336 54.77 55.1 2331 prof 14.2 1
## lawyers 15.77 19263 5.13 82.3 2343 prof 15.7 7
## librarians 14.15 6112 77.10 58.1 2351 prof 14.1 5
## vocational.counsellors 15.22 9593 34.89 58.3 2391 prof 15.2 2
## ministers 14.50 4686 4.14 72.8 2511 prof 14.5
## university.teachers 15.97 12480 19.59 84.6 2711 prof 15.9 7
## primary.school.teachers 13.62 5648 83.78 59.6 2731 prof 13.6 2
## secondary.school.teachers 15.08 8034 46.80 66.1 2733 prof 15.0 8
## physicians 15.96 25308 10.56 87.2 3111 prof 15.9 6
## veterinarians 15.94 14558 4.32 66.7 3115 prof 15.9 4
## osteopaths.chiropractors 14.71 17498 6.91 68.4 3117 prof 14.7 1
## nurses 12.46 4614 96.12 64.7 3131 prof 12.4 6
## nursing.aides 9.45 3485 76.14 34.9 3135 bc 9.45
## physio.therapsts 13.62 5092 82.66 72.1 3137 prof 13.6 2
## pharmacists 15.21 10432 24.71 69.3 3151 prof 15.2 1
## medical.technicians 12.79 5180 76.04 67.5 3156 wc 12.7 9
## commercial.artists 11.09 6197 21.03 57.2 3314 prof 11.0 9
## radio.tv.announcers 12.71 7562 11.15 57.6 3337 wc 12.7 1
## athletes 11.44 8206 8.13 54.1 3373 <NA> 11.4 4
## secretaries 11.59 4036 97.51 46.0 4111 wc 11.5 9
## typists 11.49 3148 95.97 41.9 4113 wc 11.4 9
## bookkeepers 11.32 4348 68.24 49.4 4131 wc 11.3 2
## tellers.cashiers 10.64 2448 91.76 42.3 4133 wc 10.6 4
## computer.operators 11.36 4330 75.92 47.7 4143 wc 11.3 6
## shipping.clerks 9.17 4761 11.37 30.9 4153 wc 9.17
## file.clerks 12.09 3016 83.19 32.7 4161 wc 12.0 9
## receptionsts 11.04 2901 92.86 38.7 4171 wc 11.0 4
## mail.carriers 9.22 5511 7.62 36.1 4172 wc 9.22
## postal.clerks 10.07 3739 52.27 37.2 4173 wc 10.0 7
## telephone.operators 10.51 3161 96.14 38.1 4175 wc 10.5 1
## collectors 11.20 4741 47.06 29.4 4191 wc 11.2
## claim.adjustors 11.13 5052 56.10 51.1 4192 wc 11.1 3
## travel.clerks 11.43 6259 39.17 35.7 4193 wc 11.4 3
## office.clerks 11.00 4075 63.23 35.6 4197 wc 11
## sales.supervisors 9.84 7482 17.04 41.5 5130 wc 9.84
## commercial.travellers 11.13 8780 3.16 40.2 5133 wc 11.1 3
## sales.clerks 10.05 2594 67.82 26.5 5137 wc 10.0 5
## newsboys 9.62 918 7.00 14.8 5143 <NA> 9.62
## service.station.attendant 9.93 2370 3.69 23.3 5145 bc 9.93
## insurance.agents 11.60 8131 13.09 47.3 5171 wc 11.6
## real.estate.salesmen 11.09 6992 24.44 47.1 5172 wc 11.0 9
## buyers 11.03 7956 23.88 51.1 5191 wc 11.0 3
## firefighters 9.47 8895 0.00 43.5 6111 bc 9.47
## policemen 10.93 8891 1.65 51.6 6112 bc 10.9 3
## cooks 7.74 3116 52.00 29.7 6121 bc 7.74
## bartenders 8.50 3930 15.51 20.2 6123 bc 8.5
## funeral.directors 10.57 7869 6.01 54.9 6141 bc 10.5 7
## babysitters 9.46 611 96.53 25.9 6147 <NA> 9.46
## launderers 7.33 3000 69.31 20.8 6162 bc 7.33
## janitors 7.11 3472 33.57 17.3 6191 bc 7.11
## elevator.operators 7.58 3582 30.08 20.1 6193 bc 7.58
## farmers 6.84 3643 3.60 44.1 7112 <NA> 6.84
## farm.workers 8.60 1656 27.75 21.5 7182 bc 8.6
## rotary.well.drillers 8.88 6860 0.00 35.3 7711 bc 8.88
## bakers 7.54 4199 33.30 38.9 8213 bc 7.54
## slaughterers.1 7.64 5134 17.26 25.2 8215 bc 7.64
## slaughterers.2 7.64 5134 17.26 34.8 8215 bc 7.64
## canners 7.42 1890 72.24 23.2 8221 bc 7.42
## textile.weavers 6.69 4443 31.36 33.3 8267 bc 6.69
## textile.labourers 6.74 3485 39.48 28.8 8278 bc 6.74
## tool.die.makers 10.09 8043 1.50 42.5 8311 bc 10.0 9
## machinists 8.81 6686 4.28 44.2 8313 bc 8.81
## sheet.metal.workers 8.40 6565 2.30 35.9 8333 bc 8.4
## welders 7.92 6477 5.17 41.8 8335 bc 7.92
## auto.workers 8.43 5811 13.62 35.9 8513 bc 8.43
## aircraft.workers 8.78 6573 5.78 43.7 8515 bc 8.78
## electronic.workers 8.76 3942 74.54 50.8 8534 bc 8.76
## radio.tv.repairmen 10.29 5449 2.92 37.2 8537 bc 10.2 9
## sewing.mach.operators 6.38 2847 90.67 28.2 8563 bc 6.38
## auto.repairmen 8.10 5795 0.81 38.1 8581 bc 8.1
## aircraft.repairmen 10.10 7716 0.78 50.3 8582 bc 10.1
## railway.sectionmen 6.67 4696 0.00 27.3 8715 bc 6.67
## electrical.linemen 9.05 8316 1.34 40.9 8731 bc 9.05
## electricians 9.93 7147 0.99 50.2 8733 bc 9.93
## construction.foremen 8.24 8880 0.65 51.1 8780 bc 8.24
## carpenters 6.92 5299 0.56 38.9 8781 bc 6.92
## masons 6.60 5959 0.52 36.2 8782 bc 6.6
## house.painters 7.81 4549 2.46 29.9 8785 bc 7.81
## plumbers 8.33 6928 0.61 42.9 8791 bc 8.33
## construction.labourers 7.52 3910 1.09 26.5 8798 bc 7.52
## pilots 12.27 14032 0.58 66.1 9111 prof 12.2 7
## train.engineers 8.49 8845 0.00 48.9 9131 bc 8.49
## bus.drivers 7.58 5562 9.47 35.9 9171 bc 7.58
## taxi.drivers 7.93 4224 3.59 25.1 9173 bc 7.93
## longshoremen 8.37 4753 0.00 26.1 9313 bc 8.37
## typesetters 10.00 6462 13.58 42.2 9511 bc 10
## bookbinders 8.55 3617 70.87 35.2 9517 bc 8.55
m <- cor (Pre[,c("e","i","w")])
print(m)## e i w
## e 1.00000000 0.5775802 0.06185286
## i 0.57758023 1.0000000 -0.44105927
## w 0.06185286 -0.4410593 1.00000000
Ta sẽ gọi dữ liệu longley
Sau đó sẽ gán dataset longley vào lony
-Sử dụng lệnh names để đặt tên cho 7 biến trong bộ dữ liệu lony
data("longley")
l <- longley
names(l) <- c('Gd','G','U','A','P','Y','E')Dùng hàm summary để tóm tắt thống kê cho toàn bộ dữ liệu. Qua đó, ta có thể đọc được các giá trị về giá trị nhỏ nhất, giá trị lớn nhất, tứ phân vị, trung bình, trung vị cho từng biến có trong bộ data. Nếu muốn quan sát riêng, thì ta dùng $ để gọi biến có trong data đó.
summary(l$G)## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 234.3 317.9 381.4 387.7 454.1 554.9
summary(l$E)## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 60.17 62.71 65.50 65.32 68.29 70.55
summary(l$U)## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 187.0 234.8 314.4 319.3 384.2 480.6
mean(l$G)## [1] 387.6984
mean(l$E)## [1] 65.317
Tổng sản lượng quốc gia trung bình là 387.6984. Tổng số người có việc làm trung bình là 65.317
var (l$G)## [1] 9879.354
var (l$U)## [1] 8732.234
9879.354 đại diện cho mức độ phân tán của các giá trị về sản lượng quốc gia quanh giá trị trung bình; 8732.234 đại diện cho mức độ phân tán của các giá trị số người thất nghiệp quanh giá trị trung bình.
sd(l$Gd)## [1] 10.79155
10.79155: Độ lệch chuẩn đo lường mức độ phân tán của các giá trị của biến Gd.
quantile(l$G, 0.65)## 65%
## 436.8718
quantile(l$A, 0.46)## 46%
## 263.05
Có 65% quốc gia có tổng sản lượng quốc gia dưới mức 436.8718. Có 46% quốc gia có số người trong lực lượng vũ trang dưới 263.05
Dùng sum để tính toán tổng chỉ số giảm phát giá ngầm định GNP, sản phẩm quốc gia, số người thất nghiệp, số người trong lực lượng vũ trang, dân số ‘phi thể chế hóa’≥ 14 tuổi, số người có việc làm.
sum(l$Gd)## [1] 1626.9
sum(l$G)## [1] 6203.175
sum(l$E)## [1] 1045.072
sum(l$A)## [1] 4170.7
sum(l$U)## [1] 5109.3
sum(l$P)## [1] 1878.784
Qua đó, ta thấy được biến G (tổng sản lượng quốc gia) là cao nhất, thấp nhất là số người có việc làm
Hàm aggregate giúp tổng hợp dữ liệu theo nhóm. Các câu lệnh phía trên sẽ trả về kết quả tổng hợp mức chỉ số giảm phát giá ngầm định GNP, sản phẩm quốc gia, số người thất nghiệp, số người trong lực lượng vũ trang, dân số ‘phi thể chế hóa’≥ 14 tuổi, số người có việc làm theo các năm khác nhau
aggregate(l$Y,list(l$Gd),FUN ='mean')## Group.1 x
## 1 83.0 1947
## 2 88.2 1949
## 3 88.5 1948
## 4 89.5 1950
## 5 96.2 1951
## 6 98.1 1952
## 7 99.0 1953
## 8 100.0 1954
## 9 101.2 1955
## 10 104.6 1956
## 11 108.4 1957
## 12 110.8 1958
## 13 112.6 1959
## 14 114.2 1960
## 15 115.7 1961
## 16 116.9 1962
Kết quả trên hiển thị cho mức chỉ số giảm phát giá ngầm định GNP theo từng năm. Năm có chỉ số thấp nhất là năm 1947 với 83, năm có chỉ số cao nhất là năm 1962 với 116.9
aggregate(l$Y,list(l$G),FUN ='mean')## Group.1 x
## 1 234.289 1947
## 2 258.054 1949
## 3 259.426 1948
## 4 284.599 1950
## 5 328.975 1951
## 6 346.999 1952
## 7 363.112 1954
## 8 365.385 1953
## 9 397.469 1955
## 10 419.180 1956
## 11 442.769 1957
## 12 444.546 1958
## 13 482.704 1959
## 14 502.601 1960
## 15 518.173 1961
## 16 554.894 1962
Kết quả trên hiển thị cho mức tổng sản lượng quốc gia theo từng năm. Năm có tổng sản lượng thấp nhất là năm 1947 với 234.289, năm có tổng sản lượng cao nhất là năm 1962 với 554.894
aggregate(l$Y,list(l$E),FUN ='mean')## Group.1 x
## 1 60.171 1949
## 2 60.323 1947
## 3 61.122 1948
## 4 61.187 1950
## 5 63.221 1951
## 6 63.639 1952
## 7 63.761 1954
## 8 64.989 1953
## 9 66.019 1955
## 10 66.513 1958
## 11 67.857 1956
## 12 68.169 1957
## 13 68.655 1959
## 14 69.331 1961
## 15 69.564 1960
## 16 70.551 1962
aggregate(l$Y,list(l$U),FUN ='mean')## Group.1 x
## 1 187.0 1953
## 2 193.2 1952
## 3 209.9 1951
## 4 232.5 1948
## 5 235.6 1947
## 6 282.2 1956
## 7 290.4 1955
## 8 293.6 1957
## 9 335.1 1950
## 10 357.8 1954
## 11 368.2 1949
## 12 381.3 1959
## 13 393.1 1960
## 14 400.7 1962
## 15 468.1 1958
## 16 480.6 1961
aggregate(l$Y,list(l$A),FUN ='mean')## Group.1 x
## 1 145.6 1948
## 2 159.0 1947
## 3 161.6 1949
## 4 165.0 1950
## 5 251.4 1960
## 6 255.2 1959
## 7 257.2 1961
## 8 263.7 1958
## 9 279.8 1957
## 10 282.7 1962
## 11 285.7 1956
## 12 304.8 1955
## 13 309.9 1951
## 14 335.0 1954
## 15 354.7 1953
## 16 359.4 1952
aggregate(l$Y,list(l$P),FUN ='mean')## Group.1 x
## 1 107.608 1947
## 2 108.632 1948
## 3 109.773 1949
## 4 110.929 1950
## 5 112.075 1951
## 6 113.270 1952
## 7 115.094 1953
## 8 116.219 1954
## 9 117.388 1955
## 10 118.734 1956
## 11 120.445 1957
## 12 121.950 1958
## 13 123.366 1959
## 14 125.368 1960
## 15 127.852 1961
## 16 130.081 1962
hist(l$G)hist(l$E,breaks =3.5)hist(l$Gd,counts =2)## Warning in plot.window(xlim, ylim, "", ...): "counts" is not a graphical
## parameter
## Warning in title(main = main, sub = sub, xlab = xlab, ylab = ylab, ...):
## "counts" is not a graphical parameter
## Warning in axis(1, ...): "counts" is not a graphical parameter
## Warning in axis(2, at = yt, ...): "counts" is not a graphical parameter
Giải thích: Data(longley): Longley’s Economic Regression Data
Description: The Longley dataset contains various US macroeconomic variables that are known to be highly collinear. It has been used to appraise the accuracy of least squares routines.
GNP.deflator: Chỉ số giảm phát giá ngầm định GNP (1954 = 100).
GNP: Tổng sản phẩm quốc gia.
Unemployed: số người thất nghiệp.
Armed.Forces: số người trong lực lượng vũ trang.
Population: dân số ‘phi thể chế hóa’≥ 14 tuổi
Year: số năm (thời gian)
Employed: số người có việc làm.
data("longley")l <- longleySau đó ta thể hiện cấu trúc của dataset (longley) gồm mấy biến và có những biến nào:
str(longley)## 'data.frame': 16 obs. of 7 variables:
## $ GNP.deflator: num 83 88.5 88.2 89.5 96.2 ...
## $ GNP : num 234 259 258 285 329 ...
## $ Unemployed : num 236 232 368 335 210 ...
## $ Armed.Forces: num 159 146 162 165 310 ...
## $ Population : num 108 109 110 111 112 ...
## $ Year : int 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 ...
## $ Employed : num 60.3 61.1 60.2 61.2 63.2 ...
names(l) <- c('Gd','G','U','A','P','Y','E')head(l)## Gd G U A P Y E
## 1947 83.0 234.289 235.6 159.0 107.608 1947 60.323
## 1948 88.5 259.426 232.5 145.6 108.632 1948 61.122
## 1949 88.2 258.054 368.2 161.6 109.773 1949 60.171
## 1950 89.5 284.599 335.1 165.0 110.929 1950 61.187
## 1951 96.2 328.975 209.9 309.9 112.075 1951 63.221
## 1952 98.1 346.999 193.2 359.4 113.270 1952 63.639
Year <- l$Y
Year## [1] 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961
## [16] 1962
Year50_60 <- Year[Year>1950&Year<1960]
Year50_60## [1] 1951 1952 1953 1954 1955 1956 1957 1958 1959
EMPLOYED <- l$E
EMPLOYED## [1] 60.323 61.122 60.171 61.187 63.221 63.639 64.989 63.761 66.019 67.857
## [11] 68.169 66.513 68.655 69.564 69.331 70.551
YEAR55EMPLOYED62 <- l[l$Y>1955|l$E>62,]
YEAR55EMPLOYED62## Gd G U A P Y E
## 1951 96.2 328.975 209.9 309.9 112.075 1951 63.221
## 1952 98.1 346.999 193.2 359.4 113.270 1952 63.639
## 1953 99.0 365.385 187.0 354.7 115.094 1953 64.989
## 1954 100.0 363.112 357.8 335.0 116.219 1954 63.761
## 1955 101.2 397.469 290.4 304.8 117.388 1955 66.019
## 1956 104.6 419.180 282.2 285.7 118.734 1956 67.857
## 1957 108.4 442.769 293.6 279.8 120.445 1957 68.169
## 1958 110.8 444.546 468.1 263.7 121.950 1958 66.513
## 1959 112.6 482.704 381.3 255.2 123.366 1959 68.655
## 1960 114.2 502.601 393.1 251.4 125.368 1960 69.564
## 1961 115.7 518.173 480.6 257.2 127.852 1961 69.331
## 1962 116.9 554.894 400.7 282.7 130.081 1962 70.551
cut(Year,4)## [1] (1947,1951] (1947,1951] (1947,1951] (1947,1951] (1951,1954] (1951,1954]
## [7] (1951,1954] (1951,1954] (1954,1958] (1954,1958] (1954,1958] (1954,1958]
## [13] (1958,1962] (1958,1962] (1958,1962] (1958,1962]
## Levels: (1947,1951] (1951,1954] (1954,1958] (1958,1962]
table(cut(Year,4))##
## (1947,1951] (1951,1954] (1954,1958] (1958,1962]
## 4 4 4 4
Giải thích: trong bảng tần số trên của biến YEAR thì các nhóm (1947,1951],(1951,1954],(1954,1958],(1958,1962] đều có 4 giá trị chiếm tỷ trọng 25%
table(cut(Year,4),l$Gd)##
## 83 88.2 88.5 89.5 96.2 98.1 99 100 101.2 104.6 108.4 110.8 112.6
## (1947,1951] 1 1 1 1 0 0 0 0 0 0 0 0 0
## (1951,1954] 0 0 0 0 1 1 1 1 0 0 0 0 0
## (1954,1958] 0 0 0 0 0 0 0 0 1 1 1 1 0
## (1958,1962] 0 0 0 0 0 0 0 0 0 0 0 0 1
##
## 114.2 115.7 116.9
## (1947,1951] 0 0 0
## (1951,1954] 0 0 0
## (1954,1958] 0 0 0
## (1958,1962] 1 1 1
Giải thích: bảng tần số của biến Year theo biến GNP.deflator thì nhóm năm từ (1947,1951] có chỉ số giảm phát giá ngầm định GNP từ 83 đến 89.5, nhóm năm từ (1951,1954] có chỉ số giảm phát giá ngầm định GNP từ 96.2 đến 100, nhóm năm từ (1954,1958] có chỉ số giảm phát giá ngầm định GNP từ 101.2 đến 110.8, nhóm năm từ (1958,1962] có chỉ số giảm phát giá ngầm định GNP từ 112.6 đến 116.9
table(cut(Year,4),l$G)##
## 234.289 258.054 259.426 284.599 328.975 346.999 363.112 365.385
## (1947,1951] 1 1 1 1 0 0 0 0
## (1951,1954] 0 0 0 0 1 1 1 1
## (1954,1958] 0 0 0 0 0 0 0 0
## (1958,1962] 0 0 0 0 0 0 0 0
##
## 397.469 419.18 442.769 444.546 482.704 502.601 518.173 554.894
## (1947,1951] 0 0 0 0 0 0 0 0
## (1951,1954] 0 0 0 0 0 0 0 0
## (1954,1958] 1 1 1 1 0 0 0 0
## (1958,1962] 0 0 0 0 1 1 1 1
Giải thích: bảng tần số của biến Year theo biến GNP thì nhóm năm từ (1947,1951] có tổng sản phẩm quốc gia từ 234.239 đến 584.599, nhóm năm từ (1951,1954] có tổng sản phẩm quốc gia từ 328.975 đến 365.385, nhóm năm từ (1954,1958] có tổng sản phẩm quốc gia từ 397.469 đến 444.546, nhóm năm từ (1958,1962] có tổng sản phẩm quốc gia từ 482.704 đến 554.894
table(cut(Year,4),l$U)##
## 187 193.2 209.9 232.5 235.6 282.2 290.4 293.6 335.1 357.8 368.2
## (1947,1951] 0 0 0 1 1 0 0 0 1 0 1
## (1951,1954] 1 1 1 0 0 0 0 0 0 1 0
## (1954,1958] 0 0 0 0 0 1 1 1 0 0 0
## (1958,1962] 0 0 0 0 0 0 0 0 0 0 0
##
## 381.3 393.1 400.7 468.1 480.6
## (1947,1951] 0 0 0 0 0
## (1951,1954] 0 0 0 0 0
## (1954,1958] 0 0 0 1 0
## (1958,1962] 1 1 1 0 1
Giải thích: bảng tần số của biến Year theo biến Unemployed thì nhóm năm từ (1947,1951] có số người thất nghiệp là 232.5 , 235.6 , 335.1 , 368.2 ; nhóm năm từ (1951,1954] có số người thất nghiệp từ 187 đến 209.9 và 357.8, nhóm năm từ (1954,1958] có số người thất nghiệp từ 282.2 đến 293.6 và 468.1, nhóm năm từ (1958,1962] có số người thất nghiệp từ 381.3 đến 4007.7 và 480.6
table(cut(Year,4),l$E)##
## 60.171 60.323 61.122 61.187 63.221 63.639 63.761 64.989 66.019
## (1947,1951] 1 1 1 1 0 0 0 0 0
## (1951,1954] 0 0 0 0 1 1 1 1 0
## (1954,1958] 0 0 0 0 0 0 0 0 1
## (1958,1962] 0 0 0 0 0 0 0 0 0
##
## 66.513 67.857 68.169 68.655 69.331 69.564 70.551
## (1947,1951] 0 0 0 0 0 0 0
## (1951,1954] 0 0 0 0 0 0 0
## (1954,1958] 1 1 1 0 0 0 0
## (1958,1962] 0 0 0 1 1 1 1
Giải thích: bảng tần số của biến Year theo biến Employed thì nhóm năm từ (1947,1951] có số người có việc làm là 60.171 đến 61.187 ; nhóm năm từ (1951,1954] có số người có việc làm từ 187 đến 63.221 và 64.989, nhóm năm từ (1954,1958] có số người có việc làm từ 66.019 đến 68.169, nhóm năm từ (1958,1962] có số người có việc làm từ 68.655 đến 70.551
cut(EMPLOYED,4)## [1] (60.2,62.8] (60.2,62.8] (60.2,62.8] (60.2,62.8] (62.8,65.4] (62.8,65.4]
## [7] (62.8,65.4] (62.8,65.4] (65.4,68] (65.4,68] (68,70.6] (65.4,68]
## [13] (68,70.6] (68,70.6] (68,70.6] (68,70.6]
## Levels: (60.2,62.8] (62.8,65.4] (65.4,68] (68,70.6]
table(cut(EMPLOYED,4))##
## (60.2,62.8] (62.8,65.4] (65.4,68] (68,70.6]
## 4 4 3 5
Giải thích: trong bảng tần số của biến Employed thì các nhóm (60.2,62.8],(62.8,65.4] đều có 4 giá trị (chiếm 25%) ;(65.4,68] có 3 giá trị (chiếm 18,75%),(68,70.6] có 5 giá trị (chiếm 31,25%)
Arm <- l$A
cut(Arm,4)## [1] (145,199] (145,199] (145,199] (145,199] (306,360] (306,360] (306,360]
## [8] (306,360] (252,306] (252,306] (252,306] (252,306] (252,306] (199,252]
## [15] (252,306] (252,306]
## Levels: (145,199] (199,252] (252,306] (306,360]
table(cut(Arm,4))##
## (145,199] (199,252] (252,306] (306,360]
## 4 1 7 4
Giải thích: trong bảng tần số của biến Arm thì các nhóm (145,199],(306,360] đều có 4 giá trị (chiếm 25%) ;(199,252] có 1 giá trị (chiếm 6,25%),(252,306] có 7 giá trị (chiếm 43,75%)
##Bảng tần số giữ số người có việc làm với tổng sản lượng quốc gia
table(cut(l$E,4),cut(l$G,4))##
## (234,314] (314,395] (395,475] (475,555]
## (60.2,62.8] 4 0 0 0
## (62.8,65.4] 0 4 0 0
## (65.4,68] 0 0 3 0
## (68,70.6] 0 0 1 4
Nhận xét:
Có tổng cộng 4 giá trị mà số người có việc làm nằm trong nhóm (60.2,62.8] chiếm 25%, Có 4 giá trị mà số người có việc làm nằm trong nhóm (62.8,65.4] chiếm 25%, Có 3 giá trị mà số người có việc làm nằm trong nhóm (65.4,68]chiếm 18,75%, Có 5 giá trị mà số người có việc làm nằm trong nhóm (68,70.6] chiếm 31,25%
Ở mỗi mức tổng sản lượng quốc gia đều có 4 giá trị nằm ở các mức là (234,314], (314,395], (395,475], (475,555] đều chiếm 25%
##Bảng tần số giữ số người có việc làm với dân số
table(cut(l$E,4),cut(l$P,4))##
## (108,113] (113,119] (119,124] (124,130]
## (60.2,62.8] 4 0 0 0
## (62.8,65.4] 1 3 0 0
## (65.4,68] 0 2 1 0
## (68,70.6] 0 0 2 3
Nhận xét:
Có tổng cộng 4 giá trị mà số người có việc làm nằm trong nhóm (60.2,62.8] chiếm 25%, Có 4 giá trị mà số người có việc làm nằm trong nhóm (62.8,65.4] chiếm 25%, Có 3 giá trị mà số người có việc làm nằm trong nhóm (65.4,68]chiếm 18,75%, Có 5 giá trị mà số người có việc làm nằm trong nhóm (68,70.6] chiếm 25%
Có 2 mức có dân số từ (108,113] và từ (113,119] chiếm 5 (mỗi tổ sẽ có tỷ trọng là 31.25%), Có 2 mức có dân số từ (119,124] và từ (124,130] chiếm 3 (mỗi tổ sẽ có tỷ trọng là 18.75%)
##Tính toán tần suất bảng tần số
x=table(cut(l$Y,4),EMPLOYED)
prop.table(x)## EMPLOYED
## 60.171 60.323 61.122 61.187 63.221 63.639 63.761 64.989 66.019
## (1947,1951] 0.0625 0.0625 0.0625 0.0625 0.0000 0.0000 0.0000 0.0000 0.0000
## (1951,1954] 0.0000 0.0000 0.0000 0.0000 0.0625 0.0625 0.0625 0.0625 0.0000
## (1954,1958] 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0625
## (1958,1962] 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
## EMPLOYED
## 66.513 67.857 68.169 68.655 69.331 69.564 70.551
## (1947,1951] 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
## (1951,1954] 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
## (1954,1958] 0.0625 0.0625 0.0625 0.0000 0.0000 0.0000 0.0000
## (1958,1962] 0.0000 0.0000 0.0000 0.0625 0.0625 0.0625 0.0625
YEAR55UNEMPLOYED290.4 <- l[l$Y>1955|l$U==290.4,]
dim(YEAR55UNEMPLOYED290.4)## [1] 8 7
Nhận xét: có số năm lớn hơn 1955 chiếm 8, số người thất nghiệp trong những năm lơn hơn 1955 và có số người gần bằng 290 chiếm 10
#Xem dữ liệu dòng 12 biến ARM
l$A[12]## [1] 263.7
l1 <- l[sample(nrow(l),2),]
l1## Gd G U A P Y E
## 1953 99.0 365.385 187.0 354.7 115.094 1953 64.989
## 1961 115.7 518.173 480.6 257.2 127.852 1961 69.331
l$logE <- log(l$E)
l$logE## [1] 4.099713 4.112872 4.097191 4.113935 4.146637 4.153226 4.174218 4.155142
## [9] 4.189943 4.217403 4.221990 4.197397 4.229094 4.242247 4.238892 4.256336
l$logU <- log(l$U)
l$logU## [1] 5.462135 5.448890 5.908626 5.814429 5.346631 5.263726 5.231109 5.879974
## [9] 5.671259 5.642616 5.682218 6.148682 5.943586 5.974064 6.175035 5.993213
l$logA <- log(l$A)
l$logA## [1] 5.068904 4.980863 5.085124 5.105945 5.736250 5.884436 5.871272 5.814131
## [9] 5.719656 5.654942 5.634075 5.574812 5.542048 5.527045 5.549854 5.644386