library(AER )
library(scales)
library(ggplot2)
library(tidyverse)
library(DT)
library(graphics)
library(corrplot)
library(gridExtra)
library(WDI)
library(rvest)
library(dplyr)

1 TUẦN 7

1.1 các indicator

1.1.1 hai indicator về nông nghiệp

nn<- WDIsearch('Agriculture ')
m<- WDI(indicator = 'SPI.D4.1.5.AGSVY')
m<- na.omit(m)

SPI.D4.1.5.AGSVY cho biết số điểm về một cuộc khảo sát nông nghiệp trong vòng 16 năm từ 2004 đến 2019 ở một số nước.

WDI(indicator = 'SPI.D4.1.5.AGSVY', country = 'VNM')
##    country iso2c iso3c year SPI.D4.1.5.AGSVY
## 1  Vietnam   VNM       2019                0
## 2  Vietnam   VNM       2018                0
## 3  Vietnam   VNM       2017                0
## 4  Vietnam   VNM       2016                0
## 5  Vietnam   VNM       2015                0
## 6  Vietnam   VNM       2014                0
## 7  Vietnam   VNM       2013                0
## 8  Vietnam   VNM       2012                0
## 9  Vietnam   VNM       2011                0
## 10 Vietnam   VNM       2010                0
## 11 Vietnam   VNM       2009                0
## 12 Vietnam   VNM       2008                0
## 13 Vietnam   VNM       2007                0
## 14 Vietnam   VNM       2006                0
## 15 Vietnam   VNM       2005                0
## 16 Vietnam   VNM       2004                0

điểm số trong khảo sát nông nghiệp của Việt Nam trong 16 năm đều bằng 0.

length(unique(m$country))
## [1] 190
table(m$SPI.D4.1.5.AGSVY)
## 
##    0 0.33 0.67    1 
## 2087  227  141  585

có 4 mức điểm gồm : 0,0.33,0.67,1; trong cuộc khảo sát gồm 190 quốc gia trong đó 0 điểm chiếm số lượng nhiều nhất và 1 điểm có số lượng nhiều thứ hai

d<- filter(m,SPI.D4.1.5.AGSVY == 0.67)
length(unique(d$country))
## [1] 48

ta khảo sát tập d có 141 giá trị có điểm số khảo sát bằng 0.67 trong đó có 48 nằm trong tập d này.

table(d$country)
## 
##          Argentina            Austria            Bolivia             Brazil 
##                  4                  1                  5                  1 
##           Bulgaria       Burkina Faso           Colombia            Croatia 
##                  2                  1                  4                  3 
##     Czech Republic            Finland             France        Gambia, The 
##                  2                  4                  2                 10 
##          Guatemala           Honduras            Hungary            Iceland 
##                  1                  1                  2                  4 
##              India              Italy             Kuwait             Latvia 
##                  4                  2                  1                  2 
##            Lesotho          Lithuania               Mali              Malta 
##                  2                  6                  1                  2 
##             Mexico         Mozambique              Niger            Nigeria 
##                  3                 10                  6                  2 
##    North Macedonia               Peru        Philippines             Poland 
##                  4                  1                  1                  6 
##           Portugal            Romania             Rwanda       Saudi Arabia 
##                  1                  6                  2                  2 
##            Senegal    Slovak Republic           Slovenia       South Africa 
##                  1                  2                  2                  1 
##              Spain             Sweden           Tanzania             Turkey 
##                  1                  4                  2                  1 
##     United Kingdom West Bank and Gaza             Zambia           Zimbabwe 
##                  2                 10                  2                  2
filter(m,country=='Mali')
##    country iso2c iso3c year SPI.D4.1.5.AGSVY
## 1     Mali   MLI       2019             1.00
## 2     Mali   MLI       2018             1.00
## 3     Mali   MLI       2017             1.00
## 4     Mali   MLI       2016             1.00
## 5     Mali   MLI       2015             1.00
## 6     Mali   MLI       2014             1.00
## 7     Mali   MLI       2013             1.00
## 8     Mali   MLI       2012             1.00
## 9     Mali   MLI       2011             1.00
## 10    Mali   MLI       2010             1.00
## 11    Mali   MLI       2009             1.00
## 12    Mali   MLI       2008             1.00
## 13    Mali   MLI       2007             0.67
## 14    Mali   MLI       2006             0.33
## 15    Mali   MLI       2005             0.33
## 16    Mali   MLI       2004             0.00

các quốc gia có trong tập điểm khảo sát 0.67 có số năm đạt mức điểm này chủ yếu từ 1- 6 năm . ta lọc điểm khảo sát của Mali và thấy được điểm của quốc gia này tăng dân theo năm từ 0-1.

e<-filter(m,SPI.D4.1.5.AGSVY == 0)
table(e$country)
## 
##                    Afghanistan                        Albania 
##                             16                             14 
##                        Algeria                        Andorra 
##                             16                             16 
##                         Angola            Antigua and Barbuda 
##                             16                             16 
##                        Armenia                     Azerbaijan 
##                              4                             16 
##                   Bahamas, The                        Bahrain 
##                             16                             16 
##                     Bangladesh                       Barbados 
##                              5                             16 
##                        Belarus                        Belgium 
##                             16                              9 
##                         Belize                          Benin 
##                             16                             16 
##                         Bhutan                        Bolivia 
##                             16                              4 
##         Bosnia and Herzegovina                       Botswana 
##                             16                             16 
##                         Brazil              Brunei Darussalam 
##                              9                             16 
##                        Burundi                     Cabo Verde 
##                              7                             16 
##                       Cambodia                       Cameroon 
##                             16                             16 
##       Central African Republic                           Chad 
##                             16                             16 
##                          Chile                          China 
##                             16                             16 
##                        Comoros               Congo, Dem. Rep. 
##                             16                             16 
##                    Congo, Rep.                     Costa Rica 
##                             16                             16 
##                  Cote d'Ivoire                        Croatia 
##                             12                              1 
##                       Djibouti                       Dominica 
##                             16                             16 
##             Dominican Republic                        Ecuador 
##                             16                             16 
##               Egypt, Arab Rep.                    El Salvador 
##                             16                             16 
##              Equatorial Guinea                        Eritrea 
##                             16                             16 
##                       Eswatini                           Fiji 
##                             16                             16 
##                        Finland                          Gabon 
##                              9                             16 
##                    Gambia, The                        Georgia 
##                              4                              8 
##                          Ghana                        Grenada 
##                             16                             16 
##                      Guatemala                         Guinea 
##                              9                             16 
##                  Guinea-Bissau                         Guyana 
##                             16                             16 
##                          Haiti                       Honduras 
##                             16                              2 
##                        Iceland                      Indonesia 
##                              9                             16 
##             Iran, Islamic Rep.                           Iraq 
##                             16                             16 
##                         Israel                        Jamaica 
##                             16                             16 
##                          Japan                         Jordan 
##                             16                             16 
##                     Kazakhstan                          Kenya 
##                             16                             16 
##                       Kiribati                         Kosovo 
##                             16                             11 
##                Kyrgyz Republic                        Lao PDR 
##                             16                             16 
##                        Lebanon                        Lesotho 
##                             16                              5 
##                        Liberia                          Libya 
##                             16                             16 
##                      Lithuania                     Luxembourg 
##                              1                             16 
##                     Madagascar                         Malawi 
##                             16                             16 
##                       Malaysia                       Maldives 
##                             16                             16 
##                           Mali               Marshall Islands 
##                              1                             16 
##                     Mauritania                      Mauritius 
##                             16                              5 
##                         Mexico          Micronesia, Fed. Sts. 
##                              8                             16 
##                        Moldova                       Mongolia 
##                             16                             16 
##                     Montenegro                        Morocco 
##                             12                             16 
##                     Mozambique                        Myanmar 
##                              4                             16 
##                        Namibia                          Nauru 
##                             16                             16 
##                          Nepal                    Netherlands 
##                             16                             16 
##                      Nicaragua                          Niger 
##                             16                              7 
##                        Nigeria                North Macedonia 
##                              1                              9 
##                           Oman                       Pakistan 
##                             16                             16 
##                          Palau                         Panama 
##                             16                             16 
##               Papua New Guinea                       Paraguay 
##                             16                             16 
##                           Peru                    Philippines 
##                             10                              4 
##                         Poland                          Qatar 
##                              1                             16 
##                        Romania             Russian Federation 
##                              1                             16 
##                          Samoa          Sao Tome and Principe 
##                             16                             16 
##                   Saudi Arabia                        Senegal 
##                             13                              1 
##                         Serbia                     Seychelles 
##                             14                             16 
##                   Sierra Leone                      Singapore 
##                             16                             16 
##                Solomon Islands                        Somalia 
##                             16                             16 
##                   South Africa                    South Sudan 
##                              4                             16 
##                      Sri Lanka            St. Kitts and Nevis 
##                             12                             16 
##                      St. Lucia St. Vincent and the Grenadines 
##                             16                             16 
##                          Sudan                       Suriname 
##                             16                             16 
##                         Sweden           Syrian Arab Republic 
##                              9                             16 
##                     Tajikistan                       Tanzania 
##                             16                              5 
##                       Thailand                    Timor-Leste 
##                              4                             16 
##                           Togo                          Tonga 
##                             16                             16 
##            Trinidad and Tobago                        Tunisia 
##                             16                              5 
##                         Turkey                   Turkmenistan 
##                              2                             16 
##                         Tuvalu                         Uganda 
##                             16                             16 
##                        Ukraine           United Arab Emirates 
##                             16                             16 
##                        Uruguay                     Uzbekistan 
##                             16                             16 
##                        Vanuatu                  Venezuela, RB 
##                             16                             16 
##                        Vietnam                    Yemen, Rep. 
##                             16                             16 
##                       Zimbabwe 
##                              8

với tập e là tập các giá trị có điểm khảo sát được bằng 0, ta thấy hầu hết các quốc gia có trong nhóm điểm này đều duy trì mức điểm trong 16 năm, không có sự thay đổi điểm như tập 0.67 đã khảo sát trước đó.

n<- WDI(indicator = 'AG.PRD.AGRI.XD')
n<- na.omit(n)

Chỉ số FAO về sản xuất nông nghiệp cho thấy mức độ tương đối của tổng sản lượng nông nghiệp trong mỗi năm so với giai đoạn cơ sở 1999-2001. Chúng dựa trên tổng số lượng các mặt hàng nông sản được tính theo trọng số giá sau khi đã trừ đi các lượng sử dụng làm hạt giống và thức ăn với cách tính tương tự. Tổng kết quả thu được đại diện cho tất cả mục đích sản xuất, ngoại trừ làm hạt giống và thức ăn.

length(unique(n$country))
## [1] 59
summary(n$AG.PRD.AGRI.XD)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   13.42   47.93   68.92   70.40   91.61  192.72
 filter(n,AG.PRD.AGRI.XD==192.72|AG.PRD.AGRI.XD==13.42)
##      country iso2c iso3c year AG.PRD.AGRI.XD
## 1   Djibouti   DJI       1961          13.42
## 2 Seychelles   SYC       1968         192.72

có 59 quốc gia trong bảng khảo sát, trong đó quốc gia có tổng sản lượng cao nhất là Seychelles (1968) với 192.72% so với thời kỳ gốc là 1999-2001 và quốc gia có sản lượng nhỏ nhất là Djibouti (1961) với tổng sản lượng 13.42% so với thời kỳ gốc.

filter(n,country=='Seychelles')
##       country iso2c iso3c year AG.PRD.AGRI.XD
## 1  Seychelles   SYC       2011          83.66
## 2  Seychelles   SYC       2010          76.70
## 3  Seychelles   SYC       2009          81.21
## 4  Seychelles   SYC       2008          89.56
## 5  Seychelles   SYC       2007          94.52
## 6  Seychelles   SYC       2006          93.17
## 7  Seychelles   SYC       2005          96.30
## 8  Seychelles   SYC       2004         110.52
## 9  Seychelles   SYC       2003         126.62
## 10 Seychelles   SYC       2002         133.74
## 11 Seychelles   SYC       2001         148.14
## 12 Seychelles   SYC       2000         146.75
## 13 Seychelles   SYC       1999         146.58
## 14 Seychelles   SYC       1998         146.70
## 15 Seychelles   SYC       1997         159.40
## 16 Seychelles   SYC       1996         145.35
## 17 Seychelles   SYC       1995         151.62
## 18 Seychelles   SYC       1994         132.63
## 19 Seychelles   SYC       1993         116.44
## 20 Seychelles   SYC       1992         110.96
## 21 Seychelles   SYC       1991         121.29
## 22 Seychelles   SYC       1990         118.22
## 23 Seychelles   SYC       1989         118.99
## 24 Seychelles   SYC       1988         108.24
## 25 Seychelles   SYC       1987         117.74
## 26 Seychelles   SYC       1986         144.11
## 27 Seychelles   SYC       1985         136.29
## 28 Seychelles   SYC       1984         120.54
## 29 Seychelles   SYC       1983         141.93
## 30 Seychelles   SYC       1982         124.99
## 31 Seychelles   SYC       1981         129.50
## 32 Seychelles   SYC       1980         129.53
## 33 Seychelles   SYC       1979         121.72
## 34 Seychelles   SYC       1978         109.10
## 35 Seychelles   SYC       1977         115.48
## 36 Seychelles   SYC       1976         124.20
## 37 Seychelles   SYC       1975         124.34
## 38 Seychelles   SYC       1974         133.28
## 39 Seychelles   SYC       1973         136.42
## 40 Seychelles   SYC       1972         144.82
## 41 Seychelles   SYC       1971         120.20
## 42 Seychelles   SYC       1970         129.83
## 43 Seychelles   SYC       1969         135.54
## 44 Seychelles   SYC       1968         192.72
## 45 Seychelles   SYC       1967         179.83
## 46 Seychelles   SYC       1966         151.67
## 47 Seychelles   SYC       1965         131.63
## 48 Seychelles   SYC       1964         147.40
## 49 Seychelles   SYC       1963         122.59
## 50 Seychelles   SYC       1962         131.23
## 51 Seychelles   SYC       1961         122.81

ở đất nước có tổng sản lượng năm lớn nhất Seychelles ta thấy sản lượng nông sản giảm dần từ sau thời kì gốc đến năm gần nhất khảo sát được là 2011 sản lượng lúc này chỉ còn khoảng 83.66% so vời thời kỳ gốc và chỉ khoảng bằng 0.4 lần so với lúc sản lượng lớn nhất năm 1968.

filter(n,country=='Djibouti')
##     country iso2c iso3c year AG.PRD.AGRI.XD
## 1  Djibouti   DJI       2011         113.57
## 2  Djibouti   DJI       2010         113.68
## 3  Djibouti   DJI       2009         126.54
## 4  Djibouti   DJI       2008         141.54
## 5  Djibouti   DJI       2007         137.28
## 6  Djibouti   DJI       2006         111.25
## 7  Djibouti   DJI       2005          95.31
## 8  Djibouti   DJI       2004          93.44
## 9  Djibouti   DJI       2003          97.05
## 10 Djibouti   DJI       2002          97.86
## 11 Djibouti   DJI       2001          85.80
## 12 Djibouti   DJI       2000          84.93
## 13 Djibouti   DJI       1999          78.24
## 14 Djibouti   DJI       1998          76.89
## 15 Djibouti   DJI       1997          74.92
## 16 Djibouti   DJI       1996          71.65
## 17 Djibouti   DJI       1995          78.86
## 18 Djibouti   DJI       1994          73.34
## 19 Djibouti   DJI       1993          70.72
## 20 Djibouti   DJI       1992          73.95
## 21 Djibouti   DJI       1991          70.04
## 22 Djibouti   DJI       1990          93.71
## 23 Djibouti   DJI       1989          95.57
## 24 Djibouti   DJI       1988          79.31
## 25 Djibouti   DJI       1987          76.21
## 26 Djibouti   DJI       1986          74.05
## 27 Djibouti   DJI       1985          68.66
## 28 Djibouti   DJI       1984          58.42
## 29 Djibouti   DJI       1983          53.21
## 30 Djibouti   DJI       1982          45.57
## 31 Djibouti   DJI       1981          45.25
## 32 Djibouti   DJI       1980          46.79
## 33 Djibouti   DJI       1979          36.66
## 34 Djibouti   DJI       1978          27.92
## 35 Djibouti   DJI       1977          26.46
## 36 Djibouti   DJI       1976          27.04
## 37 Djibouti   DJI       1975          24.10
## 38 Djibouti   DJI       1974          23.71
## 39 Djibouti   DJI       1973          22.22
## 40 Djibouti   DJI       1972          22.17
## 41 Djibouti   DJI       1971          21.05
## 42 Djibouti   DJI       1970          20.12
## 43 Djibouti   DJI       1969          19.38
## 44 Djibouti   DJI       1968          18.02
## 45 Djibouti   DJI       1967          16.76
## 46 Djibouti   DJI       1966          16.05
## 47 Djibouti   DJI       1965          14.82
## 48 Djibouti   DJI       1964          14.54
## 49 Djibouti   DJI       1963          14.23
## 50 Djibouti   DJI       1962          13.78
## 51 Djibouti   DJI       1961          13.42

ngược lại với Seychelles thì Djibouti lại tăng trưởng khá tốt. sau thời kì gốc tức sau nhưng năm 2001 tổng sản lượng tăng và tới nhưng năm gần nhất là 2011 tổng sản lượng đạt được là 113.57% so với thời kì gốc, gần gấp 10 lần so với năm 1961.

1.1.2 hai indicator về Energy & Mining

em<- WDIsearch('Energy')
d<- WDI(indicator = 'EG.USE.COMM.CL.ZS')
d<- na.omit(d)

EG.USE.COMM.CL.ZS:nói về năng lượng thay thế và hạt nhân (% tổng năng lượng sử dụng), gồm các năng lượng sạch là năng lượng không chứa carbohydrate không tạo ra carbon dioxide khi sử dụng. Nó bao gồm thủy điện và hạt nhân, địa nhiệt và năng lượng mặt trời, và một số loại năng lượng khác.

summary(d$year)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1960    1980    1993    1992    2004    2015
length(unique(d$country))
## [1] 189
summary(d$EG.USE.COMM.CL.ZS)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.0000  0.7362  2.3749  5.8042  6.9724 71.5424
subset(d, EG.USE.COMM.CL.ZS == max(EG.USE.COMM.CL.ZS))
##      country iso2c iso3c year EG.USE.COMM.CL.ZS
## 8671 Iceland    IS   ISL 1983          71.54236
min<-subset(d, EG.USE.COMM.CL.ZS == min(EG.USE.COMM.CL.ZS))
length(unique(min$country))
## [1] 30
table(min$country)
## 
##              Bahrain                Benin             Botswana 
##                   44                   35                    7 
##    Brunei Darussalam             Cambodia              Curacao 
##                   40                    5                   19 
##               Cyprus              Eritrea              Estonia 
##                   24                    5                    2 
##                Gabon            Gibraltar Hong Kong SAR, China 
##                    1                   44                   35 
##               Israel               Jordan               Kuwait 
##                   10                   15                   44 
##                Libya                Malta             Mongolia 
##                   44                   31                   28 
##          Netherlands                Niger                 Oman 
##                    8                    7                   44 
##          Philippines                Qatar         Saudi Arabia 
##                    2                   44                   41 
##              Senegal            Singapore  Trinidad and Tobago 
##                   29                   19                   44 
##         Turkmenistan United Arab Emirates          Yemen, Rep. 
##                   15                   42                   43

cuộc khảo sát kéo dài 55 năm từ 1960- 2015 có 189 quốc gia trong khảo sát trong đó quốc gia có tỉ lệ sử dụng nguồn năng lượng sạch chiếm tỉ lệ nhiều nhất là Iceland (1983) với 71.54236% tổng năng lượng sử dụng, và có 30 quốc gia không sử dụng nguồn năng sạch này trong đó có nhiều quốc gia không sử dụng các nguồn năng lượng này trong 44 năm. khảo sát một số quốc gia trong nhóm không sử dụng nguồn năng lượng này.

filter(d, EG.USE.COMM.CL.ZS =="Bahrain")
## [1] country           iso2c             iso3c             year             
## [5] EG.USE.COMM.CL.ZS
## <0 rows> (or 0-length row.names)

số năm khảo sát được ở Bahrain chỉ kéo dài 44 năm và phần trăm sử dụng nguồn năng lượng sạch đều bằng 0

 filter(d, country =="Singapore")
##      country iso2c iso3c year EG.USE.COMM.CL.ZS
## 1  Singapore    SG   SGP 2014        0.19278921
## 2  Singapore    SG   SGP 2013        0.19883089
## 3  Singapore    SG   SGP 2012        0.19867067
## 4  Singapore    SG   SGP 2011        0.18705664
## 5  Singapore    SG   SGP 2010        0.18669199
## 6  Singapore    SG   SGP 2009        0.20418639
## 7  Singapore    SG   SGP 2008        0.17118305
## 8  Singapore    SG   SGP 2007        0.18173450
## 9  Singapore    SG   SGP 2006        0.16519358
## 10 Singapore    SG   SGP 2005        0.17701922
## 11 Singapore    SG   SGP 2004        0.11207790
## 12 Singapore    SG   SGP 2003        0.14105521
## 13 Singapore    SG   SGP 2002        0.16258947
## 14 Singapore    SG   SGP 2001        0.16057277
## 15 Singapore    SG   SGP 2000        0.09732533
## 16 Singapore    SG   SGP 1999        0.09898669
## 17 Singapore    SG   SGP 1998        0.08859848
## 18 Singapore    SG   SGP 1997        0.07879872
## 19 Singapore    SG   SGP 1996        0.08783710
## 20 Singapore    SG   SGP 1995        0.09193710
## 21 Singapore    SG   SGP 1994        0.07815798
## 22 Singapore    SG   SGP 1993        0.09427478
## 23 Singapore    SG   SGP 1992        0.11463773
## 24 Singapore    SG   SGP 1991        0.12840803
## 25 Singapore    SG   SGP 1990        0.05230866
## 26 Singapore    SG   SGP 1989        0.00000000
## 27 Singapore    SG   SGP 1988        0.00000000
## 28 Singapore    SG   SGP 1987        0.00000000
## 29 Singapore    SG   SGP 1986        0.00000000
## 30 Singapore    SG   SGP 1985        0.00000000
## 31 Singapore    SG   SGP 1984        0.00000000
## 32 Singapore    SG   SGP 1983        0.00000000
## 33 Singapore    SG   SGP 1982        0.00000000
## 34 Singapore    SG   SGP 1981        0.00000000
## 35 Singapore    SG   SGP 1980        0.00000000
## 36 Singapore    SG   SGP 1979        0.00000000
## 37 Singapore    SG   SGP 1978        0.00000000
## 38 Singapore    SG   SGP 1977        0.00000000
## 39 Singapore    SG   SGP 1976        0.00000000
## 40 Singapore    SG   SGP 1975        0.00000000
## 41 Singapore    SG   SGP 1974        0.00000000
## 42 Singapore    SG   SGP 1973        0.00000000
## 43 Singapore    SG   SGP 1972        0.00000000
## 44 Singapore    SG   SGP 1971        0.00000000

phần trăm sử dụng nguồn năng lượng sạch ở Singapore bắt đầu tăng từ năm 1990 và đến năm khảo sát gần nhất là 2014 tỉ lệ này là 0.927% trên tổng số năng lượng sử dụng, sự tăng trưởng khá chậm và có biến động nhẹ .

e<- WDI(indicator = 'EN.ATM.CO2E.GF.ZS')
e<- na.omit(e)

EN.ATM.CO2E.GF.ZS: Dữ liệu về lượng khí thải carbon dioxide (% tổng số) bao gồm các loại khí từ việc đốt nhiên liệu hóa thạch và sản xuất xi măng, nhưng không bao gồm lượng khí thải từ việc sử dụng đất như phá rừng.

summary(e$year)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1960    1977    1993    1991    2005    2016
length(unique(e$country))
## [1] 250
subset(e, EN.ATM.CO2E.GF.ZS == max(EN.ATM.CO2E.GF.ZS))
##                   country iso2c iso3c year EN.ATM.CO2E.GF.ZS
## 15442 Trinidad and Tobago    TT   TTO 2016          207.3675
 subset(e, EN.ATM.CO2E.GF.ZS == min(EN.ATM.CO2E.GF.ZS))
##       country iso2c iso3c year EN.ATM.CO2E.GF.ZS
## 10252   Libya    LY   LBY 1977        -0.7295276

dữ liệu trong 56 năm từ 1960 đến 2016 trên 250 quốc gia trong đó Trinidad and Tobago (2016) là quốc gia có lượng khí thải công nghiệp nhiều nhất với 207.3675% và Libya (1977) với lượng khí thải âm là -0.7295% trên tổng số lượng khí thải.

filter(e,country=="Libya")
##    country iso2c iso3c year EN.ATM.CO2E.GF.ZS
## 1    Libya    LY   LBY 2016        18.6789156
## 2    Libya    LY   LBY 2015        23.6679513
## 3    Libya    LY   LBY 2014        18.6175494
## 4    Libya    LY   LBY 2013        24.1532533
## 5    Libya    LY   LBY 2012        20.4945335
## 6    Libya    LY   LBY 2011        26.7435611
## 7    Libya    LY   LBY 2010        23.0797379
## 8    Libya    LY   LBY 2009        20.8939268
## 9    Libya    LY   LBY 2008        24.4514164
## 10   Libya    LY   LBY 2007        26.1736185
## 11   Libya    LY   LBY 2006        24.4293356
## 12   Libya    LY   LBY 2005        22.4886444
## 13   Libya    LY   LBY 2004        28.3025654
## 14   Libya    LY   LBY 2003        23.8752507
## 15   Libya    LY   LBY 2002        23.9448372
## 16   Libya    LY   LBY 2001        24.3404538
## 17   Libya    LY   LBY 2000        23.8396388
## 18   Libya    LY   LBY 1999        20.8400447
## 19   Libya    LY   LBY 1998        25.5587143
## 20   Libya    LY   LBY 1997        26.1888213
## 21   Libya    LY   LBY 1996        24.7848249
## 22   Libya    LY   LBY 1995        24.1988744
## 23   Libya    LY   LBY 1994        25.5801587
## 24   Libya    LY   LBY 1993        28.8698962
## 25   Libya    LY   LBY 1992        30.4373102
## 26   Libya    LY   LBY 1991        27.8546729
## 27   Libya    LY   LBY 1990        25.7167553
## 28   Libya    LY   LBY 1989        28.6696797
## 29   Libya    LY   LBY 1988        22.9397542
## 30   Libya    LY   LBY 1987        24.4004054
## 31   Libya    LY   LBY 1986        26.0012920
## 32   Libya    LY   LBY 1985        20.0630252
## 33   Libya    LY   LBY 1984        19.6387394
## 34   Libya    LY   LBY 1983        12.2739330
## 35   Libya    LY   LBY 1982         4.5178210
## 36   Libya    LY   LBY 1981        11.6583938
## 37   Libya    LY   LBY 1980         8.6275044
## 38   Libya    LY   LBY 1979         8.9871813
## 39   Libya    LY   LBY 1978         7.0441989
## 40   Libya    LY   LBY 1977        -0.7295276
## 41   Libya    LY   LBY 1976         0.0000000
## 42   Libya    LY   LBY 1975         0.0000000
## 43   Libya    LY   LBY 1974         0.0000000
## 44   Libya    LY   LBY 1973         0.0000000
## 45   Libya    LY   LBY 1972         0.0000000
## 46   Libya    LY   LBY 1971         0.0000000
## 47   Libya    LY   LBY 1970         0.0000000
## 48   Libya    LY   LBY 1969         0.0000000
## 49   Libya    LY   LBY 1968         0.0000000
## 50   Libya    LY   LBY 1967         0.0000000
## 51   Libya    LY   LBY 1966         0.0000000
## 52   Libya    LY   LBY 1965         0.0000000
## 53   Libya    LY   LBY 1964         0.0000000
## 54   Libya    LY   LBY 1963         0.0000000
## 55   Libya    LY   LBY 1962         0.0000000
## 56   Libya    LY   LBY 1961         0.0000000
## 57   Libya    LY   LBY 1960         0.0000000

với Libya sau năm 1977 lượng khí thải do việc đốt nhiên liệu ở quốc gia này tăng dần nhưng không vượt quá 30% tổng lượng khí thải. từ sau năm 2000 lượng khí thải do đôt nhiên liệu công nghiệp này khá ổn định.

1.1.3 hai indicator về GNI

gi<- WDIsearch('GNI')
n<- WDI(indicator='NY.ADJ.DRES.GN.ZS')
n<-na.omit(n)

NY.ADJ.DRES.GN.ZS: Cạn kiệt tài nguyên thiên nhiên (%GNI) là tổng của sự cạn kiệt rừng ròng, cạn kiệt năng lượng và cạn kiệt khoáng sản. Sự suy giảm rừng thuần là tiền thuê tài nguyên đơn vị nhân với mức thu hoạch gỗ tròn dư thừa so với tăng trưởng tự nhiên. Sự cạn kiệt năng lượng là tỷ lệ giá trị của trữ lượng tài nguyên năng lượng với thời gian dự trữ còn lại (giới hạn ở mức 25 năm). Nó bao gồm than đá, dầu thô và khí đốt tự nhiên. Cạn kiệt khoáng sản là tỷ lệ giữa giá trị trữ lượng tài nguyên khoáng sản với thời gian tồn trữ còn lại (giới hạn ở mức 25 năm). Nó bao gồm thiếc, vàng, chì, kẽm, sắt, đồng, niken, bạc, bauxite và phốt phát.

summary(n$NY.ADJ.DRES.GN.ZS)
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
##   0.0000   0.2304   1.6414   4.6016   6.0031 100.6133
subset(n, NY.ADJ.DRES.GN.ZS == max(NY.ADJ.DRES.GN.ZS))
##                country iso2c iso3c year NY.ADJ.DRES.GN.ZS
## 6888 Equatorial Guinea    GQ   GNQ 2002          100.6133
a<-subset(n, NY.ADJ.DRES.GN.ZS == min(NY.ADJ.DRES.GN.ZS))
length(unique(a$country))
## [1] 14

dữ liệu từ năm 1970- 2020 về sự hao tổn tài nguyên thiên nhiên trong tổng số GNI giao động từ 0 đến 100.6133% trong đó có 14 quốc gia có mức tổn thất 0% và quốc gia có mức hao tổn nhiều nhất là Equatorial Guinea(2002).

table(a$country)
## 
##    Burkina Faso        Cambodia      Costa Rica   Cote d'Ivoire          Cyprus 
##               5              23              14               9               3 
##          Latvia         Lebanon         Moldova           Nepal          Panama 
##              25              17               1              20              31 
##         Senegal Solomon Islands     Switzerland         Uruguay 
##               3               5               6               1

có 14 quốc gia có hao tổn tài nguyên trong GNI 0% với Panama là quốc gia có nhiều năm có phần trăm hao tổn trong GNI 0% với 31 năm và Moldova,Uruguay là hai quốc gia chỉ có 1 năm có tỉ lệ này ở mức 0%

filter(n,country=='Equatorial Guinea')|> ggplot(aes(year,NY.ADJ.DRES.GN.ZS))+geom_line(color='blue')

đồ thị trên cho thấy mức hao tổn tài nguyên thiên nhiên có trong %GNI của quốc gia Equatorial Guinea. có thể thấy lượng hao tổn này tăng nhanh và ở mức cao ở những năm 1995-2014 đỉnh điểm là năm 2002 và giảm dần ở các năm sau về sau với mức hao tổn trung bình.

g<- WDI(indicator='NY.ADJ.DMIN.GN.ZS')
g<- na.omit(g)

NY.ADJ.DMIN.GN.ZS: Cạn kiệt khoáng sản (% GNI) là tỷ lệ giữa giá trị trữ lượng tài nguyên khoáng sản với thời gian tồn trữ còn lại (giới hạn ở mức 25 năm). Nó bao gồm thiếc, vàng, chì, kẽm, sắt, đồng, niken, bạc, bauxite và phốt phát.

length(unique(g$country))
## [1] 255
summary(g$NY.ADJ.DMIN.GN.ZS)
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
##  0.00000  0.00000  0.01895  0.35858  0.20740 30.45496
subset(g, NY.ADJ.DMIN.GN.ZS == max(NY.ADJ.DMIN.GN.ZS))
##        country iso2c iso3c year NY.ADJ.DMIN.GN.ZS
## 7987 Greenland    GL   GRL 1974          30.45496

có 255 quốc gia trong bảng dữ liệu và lượng hao tổn khoáng sản nằm trong đoạn từ 0 đến 30.45496, trong đó quốc gia có hao tổn khoáng sản nhiều nhất là Greenland (1974) với hao tổn khoáng sản chiếm 30.45496%

filter(g,country=='Vietnam')|>ggplot(aes(year,NY.ADJ.DMIN.GN.ZS))+geom_line(color='red') 

đồ thị trên biểu hiện lượng hao tổn khoáng sản trong % GNI của Việt Nam, có thể thấy thời điểm có giá trị lớn nhất là năm 2008, 2005-2008 giá trị này tăng nhanh đột ngột và giảm mạnh từ năm 2012- 2015 , lượng hao tổn này thấp nhất trong khoảng thời giam 1991- 2004, rất nhỏ gần như bằng 0, đến năm 2020 lượng hao tổn này gần như bằng 0%.

1.1.4 hai indicator về children

 ch<- WDIsearch('children')
q<- WDI(indicator='SH.IMM.MEAS')
q<- na.omit(q)

SH.IMM.MEAS : Tiêm chủng bệnh sởi trẻ em đo lường tỷ lệ phần trăm trẻ em từ 12-23 tháng tuổi được tiêm vắc xin sởi trước 12 tháng hoặc bất kỳ thời điểm nào trước cuộc điều tra. Một đứa trẻ được coi là đã được tiêm phòng sởi đầy đủ sau khi tiêm một liều vắc-xin.

summary(q$SH.IMM.MEAS)
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
##  0.05288 65.75598 85.00000 76.83901 94.00000 99.00000
subset(q, SH.IMM.MEAS == min(SH.IMM.MEAS))
##                                        country iso2c iso3c year SH.IMM.MEAS
## 547 East Asia & Pacific (IDA & IBRD countries)    T4   TEA 1980   0.0528842
 r<-subset(q, SH.IMM.MEAS == max(SH.IMM.MEAS))
length(unique(r$country))
## [1] 81

tỉ lệ trẻ em được tiêm vacxin sởi ở các nước nằm trong khoảng từ 5.29% đến 99%, quốc gia có tỉ lệ tiêm chủng thấp nhất là East Asia & Pacific (1980) với và có 81 quốc gia có tỉ lệ tiêm chủng 99%

filter(q,country=='Vietnam')|>ggplot(aes(year,SH.IMM.MEAS))+geom_line(color='black')

tỉ lệ trẻ tiêm vacxin sởi ở trẻ em từ 1980 đến 1990 ở Việt Nam tăng nhanh từ 0 lên đến hơn 85% ở năm 1990, tỉ lệ này tiếp tục tăng và giữ ở mức ổn định ở mức trên 90% từ sau năm 1990 đến 2006, đến 2007 tỉ lệ này giảm xuống chỉ ở mức khoảng dưới 85% và tiếp tục tăng lên lại trên 90% ở các năm sau đó.

g<- WDI(indicator = 'SH.STA.MALN.ZS')|> na.omit()

SH.STA.MALN.ZS: Tỷ lệ trẻ em nhẹ cân là tỷ lệ phần trăm trẻ em dưới 5 tuổi có cân nặng theo tuổi lớn hơn hai độ lệch chuẩn dưới mức trung bình của dân số tham chiếu quốc tế từ 0-59 tháng tuổi. Dữ liệu dựa trên Tiêu chuẩn Tăng trưởng Trẻ em năm 2006 của WHO.

summary(g$SH.STA.MALN.ZS)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   4.351  12.800  14.734  21.585  66.800
subset(g,SH.STA.MALN.ZS==max(SH.STA.MALN.ZS))
##         country iso2c iso3c year SH.STA.MALN.ZS
## 4069 Bangladesh    BD   BGD 1986           66.8
subset(g,SH.STA.MALN.ZS==min(SH.STA.MALN.ZS))
##        country iso2c iso3c year SH.STA.MALN.ZS
## 3745 Australia    AU   AUS 1995              0
## 9956    Latvia    LV   LVA 2021              0

tỉ lệ trẻ em nhẹ cân khảo sát được giao động từ 0- 66.8% trong đó Bangladesh (1986) là quốc gia trẻ em có tỉ lệ này cao nhất, Australia (1995) và Latvia (2021) là hai quốc gia có tỉ lệ này thấp nhất ở mức 0%

filter(g, country=='Bangladesh')|> ggplot(aes(year,SH.STA.MALN.ZS))+geom_line()

ở Bangladesh quốc gia tuwfngf có tỷ lệ trẻ em nhẹ cân lên đến hơn 65% đến 2020 tỉ lệ này chỉ còn hơn 20%. trong quãng thời gian khảo sát ở quốc gia này ở quãng thời gian 2000-2010, tỉ lệ này tăng giảm không ổn định và hầu như giữ ở mức (+-)40% chứ không giảm mạnh như các khoảng thời giam trước 2000 và sau 2010.

filter(g,country=='Vietnam')|>ggplot(aes(year,SH.STA.MALN.ZS))+geom_line()

tỉ lệ nhẹ cân ở trẻ em Việt Nam nhìn chung giảm từ 1990-2020, nhưng tỉ lệ này vẫn có xu hướng tăng giảm không ổn định điển hình năm 2011 tỉ lệ này từ gần 5% tăng lên hơn 10% nhưng đều giảm ngay ở các năm tiếp theo, đến 2020 tỉ lệ này chỉ còn khoảng 3%.

1.1.5 hai indicator về CO2

co<- WDIsearch('CO2')
s<- WDI(indicator = 'EN.ATM.CO2E.PC')|>na.omit()

EN.ATM.CO2E.PC: Lượng khí thải CO2 (tấn trên đầu người),khí thải carbon dioxide là những khí phát sinh từ việc đốt nhiên liệu hóa thạch và sản xuất xi măng. Chúng bao gồm carbon dioxide được tạo ra trong quá trình tiêu thụ nhiên liệu rắn, lỏng, khí và khí đốt

summary(s$EN.ATM.CO2E.PC)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.0000  0.6773  2.3963  4.1494  6.0766 47.6570
subset(s,EN.ATM.CO2E.PC==max(EN.ATM.CO2E.PC))
##       country iso2c iso3c year EN.ATM.CO2E.PC
## 13123   Qatar    QA   QAT 2004       47.65696
filter(s,country=='Vietnam')|>subset(EN.ATM.CO2E.PC==max(EN.ATM.CO2E.PC))
##   country iso2c iso3c year EN.ATM.CO2E.PC
## 1 Vietnam    VN   VNM 2020        3.67644

lượng khí thải CO2 của các quốc gia qua các năm giao động từ 0-47.66 tấn, trong đó Qatar(2004) là quốc gia có lượng khí thải CO2 nhiều nhất, ở Việt Nam lượng khí thải co2 2020 là lớn nhất với 3.68 tấn.

filter(s, country=='Qatar')|>ggplot(aes(year,EN.ATM.CO2E.PC))+geom_line()

lượng khí thải CO2 ở Qatar từ 1990-2000 tăng mạnh từ dưới 30 tấn lên đến gần 47 tấn và luôn duy trì ở mức cao cho đến năm 2005, sau đó giảm mạnh xuống dưới 35 tấn cho đến năm 2009 và có xu hướng tăng giảm không ổn định ở các năm tiếp theo, đến năm 2020 lượng khí này còn ở mức dưới 32 tấn. nhìn chung lượng khí CO2 ở Qatar tăng giảm không ổn định.

filter(s, country=='Vietnam')|>ggplot(aes(year,EN.ATM.CO2E.PC))+geom_line()

không giống với Qatar lượng khí CO2 ở Việt nam có xu hướng tăng liên tục từ mức gần 0 lên đến trên 3.5 tấn khí và không có dấu hiệu giảm.

x<- WDI(indicator = 'EN.ATM.GHGT.KT.CE')|>na.omit()

EN.ATM.GHGT.KT.CE: Tổng phát thải khí nhà kính tính bằng 1000 tấn (kt) CO2 tương đương bao gồm tổng CO2 không bao gồm đốt sinh khối chu kỳ ngắn (như đốt chất thải nông nghiệp và đốt thảo nguyên) nhưng bao gồm đốt sinh khối khác (như cháy rừng, phân hủy sau đốt, cháy than bùn và phân hủy vùng đất than bùn cạn nước), tất cả các nguồn CH4, nguồn N2O và khí F (HFC, PFC và SF6) do con người tạo ra.

m<-filter(x,country=='World')
summary(m$EN.ATM.GHGT.KT.CE)
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
## 30629971 33026696 39003678 38928766 45576299 48089617
subset(x,EN.ATM.GHGT.KT.CE==max(EN.ATM.GHGT.KT.CE))
##      country iso2c iso3c year EN.ATM.GHGT.KT.CE
## 3028   World    1W   WLD 2019          48089617
subset(x,EN.ATM.GHGT.KT.CE==min(EN.ATM.GHGT.KT.CE))
##                     country iso2c iso3c year EN.ATM.GHGT.KT.CE
## 11184 Micronesia, Fed. Sts.    FM   FSM 1990          7.616981

tổng lượng khí nhà kính của thế giới trong các năm khảo sát giao động từ khoảng 31 triệu kt đến gần 48 triệu kt. trng đó Micronesia (1990) là quốc gia có lượng khí nhà kính ít nhất với 7.61 kt.

filter(x, country=='Vietnam')|>ggplot(aes(year,EN.ATM.GHGT.KT.CE))+geom_line()

tổng lượng khí nhà kính ở Việt Nam từ 1990 đến 2020 tăng và không có dấu hiệu giảm, trong đó giai đoạn tăng mạnh nhất là từ 2010-2020. tại thời điểm khảo sát gần nhất 2020 tổng lượng khí nhà kính tại Việt Nam là hơn 3.676kt

1.2 crawl dữ liệu

data_list <- list()
years <- c("2023", "2022", "2021","2020")
for (year in years) {
     url <- paste0("https://www.formula1.com/en/results.html/", year, "/drivers.html")
     f1 <- read_html(url)
     
     NATIONALITY <- f1 %>%
         html_nodes('.dark.semi-bold.uppercase') %>%
         html_text()
     
     DRIVER <- f1 %>%
         html_nodes('.hide-for-mobile') %>%
         html_text()
   PTS <- f1 %>%
                    html_nodes('td.dark.bold') %>%
                   html_text() 
     CAR <- f1 %>%
                    html_nodes('.grey.semi-bold.uppercase.ArchiveLink') %>%
                       html_text()
     data_year <- data.frame(DRIVER = DRIVER, NATIONALITY=NATIONALITY,CAR=CAR,PTS=PTS)
     
     
     data_year <- data_year %>%
         mutate(ORDER = row_number())
     
     
     data_list[[as.character(year)]] <- data_year
 }
st <- bind_rows(data_list, .id = "YEAR")
st$PTS <- as.numeric(st$PTS)
datatable(st)

bảng st là bảng xếp hạng giải đua f1 năm 2020-2023

 summary_table <- st %>%
     group_by(YEAR) %>%
     summarise(TOTAL_DRIVERS = n(), 
               AVG_POINTS = mean(PTS),
               MAX_POINTS = max(PTS),
               MIN_POINTS = min(PTS))
datatable(summary_table)

bảng trên cho thấy được trong 4 năm từ 2020-2023 năm có điểm cao nhất là 2022 với 454 điểm và 2023 là năm có điểm hạng 1 thấp nhất với 255 điểm, giảm gần 200 điểm. ngoài ra 2023 cũng là năm có số thí sinh tham gia ít nhất cũng như điểm trung bình thấp nhất, giảm gần 1/2 so với 2022.

st|>group_by(YEAR)|>filter(PTS==max(PTS))
## # A tibble: 4 × 6
## # Groups:   YEAR [4]
##   YEAR  DRIVER     NATIONALITY CAR                          PTS ORDER
##   <chr> <chr>      <chr>       <chr>                      <dbl> <int>
## 1 2023  Verstappen NED         Red Bull Racing Honda RBPT  255      1
## 2 2022  Verstappen NED         Red Bull Racing RBPT        454      1
## 3 2021  Verstappen NED         Red Bull Racing Honda       396.     1
## 4 2020  Hamilton   GBR         Mercedes                    347      1
 st %>%  group_by(YEAR) %>%
  top_n(3, PTS) %>%
  ungroup()
## # A tibble: 12 × 6
##    YEAR  DRIVER     NATIONALITY CAR                            PTS ORDER
##    <chr> <chr>      <chr>       <chr>                        <dbl> <int>
##  1 2023  Verstappen NED         Red Bull Racing Honda RBPT    255      1
##  2 2023  Perez      MEX         Red Bull Racing Honda RBPT    156      2
##  3 2023  Alonso     ESP         Aston Martin Aramco Mercedes  137      3
##  4 2022  Verstappen NED         Red Bull Racing RBPT          454      1
##  5 2022  Leclerc    MON         Ferrari                       308      2
##  6 2022  Perez      MEX         Red Bull Racing RBPT          305      3
##  7 2021  Verstappen NED         Red Bull Racing Honda         396.     1
##  8 2021  Hamilton   GBR         Mercedes                      388.     2
##  9 2021  Bottas     FIN         Mercedes                      226      3
## 10 2020  Hamilton   GBR         Mercedes                      347      1
## 11 2020  Bottas     FIN         Mercedes                      223      2
## 12 2020  Verstappen NED         Red Bull Racing Honda         214      3

Verstappen đứng đầu liên tiếp trong 3 năm từ 2021-2023, ở top3 của từng năm đều có sự góp mặt của Verstappen, ở năm 2020 anh đứng ở vị trí thứ 3, ở năm 2020 và 2021 top 3 giống nhau nhưng chỉ thay đổi vị trí, nhưng đến 2022 và 2023 chỉ còn Verstappen góp mặt trong danh sách top3 này.

st %>%
  group_by(NATIONALITY) %>%
  summarise(AVG_POINTS = mean(PTS)) %>%
  ggplot(aes(x = NATIONALITY, y = AVG_POINTS)) +
  geom_bar(stat = "identity", fill = "skyblue") +
  labs(title = "Tương quan giữa Quốc tịch và Điểm số",
       x = "Quốc tịch",
       y = "Điểm số trung bình") +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

điểm số có sự chệnh lệch nhiều giữa các quốc gia, 3 quốc gia có điểm trung bình cao nhất lần lượt là Netherland, Mexico, Mongolia

st %>%
  group_by(CAR) %>%
  summarise(AVG_POINTS = mean(PTS)) %>%
  ggplot(aes(x = CAR, y = AVG_POINTS)) +
  geom_bar(stat = "identity", fill = "lightcoral") +
  labs(title = "Phân tích dòng xe chạy và thành tích",
       x = "Dòng xe chạy",
       y = "Điểm số trung bình") +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

có thể thấy các dòng xe của Red Bull Rading đều nằm trong top điểm trung bình, trong đó dòng xe của Red Bull Racing RBPT có điểm xếp hạng cao nổi bật so với 2 dòng còn lại, đứng ở vị trí thứ 2 về điểm số trung bình là Mercedes với gần 250 điểm.

top3 <- st %>%
   group_by(YEAR) %>%
  top_n(3, PTS) %>%
     ungroup()
print(top3)
## # A tibble: 12 × 6
##    YEAR  DRIVER     NATIONALITY CAR                            PTS ORDER
##    <chr> <chr>      <chr>       <chr>                        <dbl> <int>
##  1 2023  Verstappen NED         Red Bull Racing Honda RBPT    255      1
##  2 2023  Perez      MEX         Red Bull Racing Honda RBPT    156      2
##  3 2023  Alonso     ESP         Aston Martin Aramco Mercedes  137      3
##  4 2022  Verstappen NED         Red Bull Racing RBPT          454      1
##  5 2022  Leclerc    MON         Ferrari                       308      2
##  6 2022  Perez      MEX         Red Bull Racing RBPT          305      3
##  7 2021  Verstappen NED         Red Bull Racing Honda         396.     1
##  8 2021  Hamilton   GBR         Mercedes                      388.     2
##  9 2021  Bottas     FIN         Mercedes                      226      3
## 10 2020  Hamilton   GBR         Mercedes                      347      1
## 11 2020  Bottas     FIN         Mercedes                      223      2
## 12 2020  Verstappen NED         Red Bull Racing Honda         214      3
table(top3$NATIONALITY)
## 
## ESP FIN GBR MEX MON NED 
##   1   2   2   2   1   4

bảng dữ liệu top3 là tổng hợp những người đứng top 3 của từng năm, ta có thể thấy cả 3 dòng xe của Red Bull Racing đều có mặt ở cả 3 năm, dòng xe Mercedes xuất hiện nhiều nhất ở các năm 2020 và 2021. ngoài ra trong vòng 4 năm thì Netherland đều góp mặt cả 4 lần với 3 dòng xe khác nhau của Red Bull Racing. ngoài ra Mexico góp mặt 2 lần trong top3 cũng đều với 2 dòng xe của hãng này. vậy ta có thể thấy loại xe có ảnh hưởng đến thành tích cũng như điểm số của tay đua.

1.3 tạo hàm với function

phantich <- function(data,country_col,ico3c_col,nam_col,emissions_col) {
  
  tong_so_nuoc <- length(unique(data[[country_col]]))
  
 
  mean_emissions <- mean(data[[emissions_col]], na.rm = TRUE)
  
  
  max_emissions_country <- subset(data, !data[[country_col]] == "World") %>%
  .[which.max(.[[emissions_col]]), country_col]
  max_emissions <- max(data[[emissions_col]], na.rm = TRUE)
  
  
  min_emissions_country <- data[which.min(data[[emissions_col]]), country_col]
  min_emissions <- min(data[[emissions_col]], na.rm = TRUE)
  
 
  analysis_result <- data.frame(
    Tong_So_Nuoc = tong_so_nuoc,
    luong_khi_tb = mean_emissions,
    Max_kt_Country = max_emissions_country,
    Max_kt = max_emissions,
    Min_kt_Country = min_emissions_country,
    Min_kt = min_emissions
  )
  
  return( analysis_result)
}

phantich(x,"country",'iso3c','year','EN.ATM.GHGT.KT.CE')
##   Tong_So_Nuoc luong_khi_tb   Max_kt_Country   Max_kt        Min_kt_Country
## 1          239      1479215 IDA & IBRD total 48089617 Micronesia, Fed. Sts.
##     Min_kt
## 1 7.616981

hàm phantich vừa tạo cho lọc ra các dữ liệu bao gồm tổng số quốc gia có trong bảng, tổng lượng sản phần khảo sát, quốc gia và lượng khí nhiều nhất, quốc gia và lượng khí ít nhất. và ví dụ được áp dụng với bảng dữ liệu x là dữ liệu về khí thải nhà kính đã phân tích ở mục các indicator phía trên

ve_bieu_do_luong_khi_thai <- function(data, country_col, nam_col, khi_thai_col) {
  khi_thai_usa <- data %>%
    filter({{ country_col }} == "United States")

bieu_do_duong_usa <- ggplot(khi_thai_usa, aes(x = {{ nam_col }}, y = {{ khi_thai_col }})) + geom_line(color = "blue") +
    labs(title = "Lượng khí thải theo các năm cho quốc gia USA",
         x = "Năm",
         y = "Lượng khí thải") 
khi_thai_vietnam <- data %>%
    filter({{ country_col }} == "Vietnam") 

bieu_do_duong_vietnam <- ggplot(khi_thai_vietnam, aes(x = {{ nam_col }}, y = {{ khi_thai_col }})) + geom_line(color = "green") +
    labs(title = "Lượng khí thải theo các năm cho quốc gia Vietnam",
         x = "Năm",
         y = "Lượng khí thải") 
print(bieu_do_duong_usa)
print(bieu_do_duong_vietnam)
return(khi_thai_usa)
return(khi_thai_vietnam)
}

ve_bieu_do_luong_khi_thai(x,country,year,EN.ATM.GHGT.KT.CE)

##          country iso2c iso3c year EN.ATM.GHGT.KT.CE
## 1  United States    US   USA 2020           5505181
## 2  United States    US   USA 2019           6039739
## 3  United States    US   USA 2018           6154646
## 4  United States    US   USA 2017           5947835
## 5  United States    US   USA 2016           6003241
## 6  United States    US   USA 2015           6112057
## 7  United States    US   USA 2014           6224269
## 8  United States    US   USA 2013           6177417
## 9  United States    US   USA 2012           6036577
## 10 United States    US   USA 2011           6254958
## 11 United States    US   USA 2010           6454245
## 12 United States    US   USA 2009           6184149
## 13 United States    US   USA 2008           6601050
## 14 United States    US   USA 2007           6787855
## 15 United States    US   USA 2006           6683781
## 16 United States    US   USA 2005           6772891
## 17 United States    US   USA 2004           6752991
## 18 United States    US   USA 2003           6670156
## 19 United States    US   USA 2002           6605763
## 20 United States    US   USA 2001           6759406
## 21 United States    US   USA 2000           6810656
## 22 United States    US   USA 1999           6647799
## 23 United States    US   USA 1998           6646954
## 24 United States    US   USA 1997           6600798
## 25 United States    US   USA 1996           6338952
## 26 United States    US   USA 1995           6168767
## 27 United States    US   USA 1994           6100513
## 28 United States    US   USA 1993           6006009
## 29 United States    US   USA 1992           5894661
## 30 United States    US   USA 1991           5810377
## 31 United States    US   USA 1990           5855541

hàm ve_bieu_do_luong_khi_thai sẽ cho kết quả bảng dữ liệu khí thải Việt Nam và của Mỹ và biểu đồ lượng khí tương ứng các năm của hai quốc gia này. ví dụ phía trên biểu hiện về khí thải nhà kính của Việt Nam và Mỹ từ bảng x thu thập được ở World Bank trước đó.

cả hai hàm ve_bieu_do_luong_khi_thai và hàm phantich đều có thể áp dụng với các bảng dữ liệu về khí thải khác.

2 TUẦN 5 VÀ TUẦN 6

2.1 tạo cột dữ liệu mới

tạo biến sex với 0 là nam và 1 là nữ

data(DoctorVisits)
d<- DoctorVisits
d<-d|>mutate(hi=case_when(private=='yes'|freepoor=='yes'|freerepat=='yes'~'yes',private=='no'|freepoor=='no'|freerepat=='no'~'no'))
d<- d|> mutate(sex= case_when(gender=='male'~0,gender=='female'~1))

tạo biến levels để thể hiện mức độ của độ tuổi

d$levels<- cut(d$age,breaks = c(0.189,0.3,0.5,0.72),labels = c('trẻ','trung','cao'))

tạo biến yl là biến thể hiện những người có bệnh mãn tính

d<-d|>mutate(yl=case_when(nchronic=='yes'~'nchronic',lchronic=="yes"~'lchronic'))

tạo biến ime là biến thể hiện mức độ lương của mỗi người

d$inc<- cut(d$income,breaks = c(-0.001,0.55,1,1.5),labels = c('thấp','trung','cao'))

tạo biến sk thể hiện tình trạng sức khỏe

d$sk<- cut(d$health,breaks = c(-0.001,5,8,12),labels = c('xấu','trung','tốt'))

2.2 lọc dữ liệu

 ma1<- d|> filter(gender=='male'&income>=1)
num<- nrow(ma1)
print(num)
## [1] 532

có 532 người am và có thu nhập từ 10 ngàn đô

ich7<- d|>filter(illness>=3&lchronic=='yes')
 print(nrow(ich7))
## [1] 245

có 245 người có bệnh mãn tính hạn chế hoạt động và có mắc từ 3 bệnh trở lên trong vòng 2 tuần

hea50<-d|>filter(health<=6| age>=0.5)
print(nrow(hea50))
## [1] 5075

có 5075 người có điểm sức khỏe từ 6 điểm trở xuống hoặc có độ tuổi lớn hơn 50 tuổi

 pri<- d|> filter(income >1 & freepoor=='yes')
 print(nrow(pri))
## [1] 2

có 2 ngươid vừa có lương trên 10 ngàn đô và bảo hiểm sức khỏe cho người thu nhập thấp

quantile(d$income,.80)
## 80% 
## 0.9

có 80% người có thu nhập bé hơn hoặc bằng 9 ngàn đô

max(d$income)
## [1] 1.5
sd(d$income)
## [1] 0.3689067

thu nhập lớn nhất khảo sát được là 15 ngàn đô và độ lệch chuẩn của biến thu nhập là khoảng 0.368, khá nhỏ nên biến động của thu nhập khá nhỏ

d|> group_by(gender)|> summarise(trungbinh = mean(income), dolech= sd(income))
## # A tibble: 2 × 3
##   gender trungbinh dolech
##   <fct>      <dbl>  <dbl>
## 1 male       0.689  0.390
## 2 female     0.485  0.319

thu nhập trung bình ở nam cao hơn nữ với 0.689 chục ngàn đô và biến động ở nam cao hơn nữ một xíu nhưng chênh lệch không quá lớn

2.3 vẽ biểu đồ biến sức khỏe và biến bảo hiểm

d |> count(health, hi) |>
  mutate(pCH = prop.table(n)) |>
  ggplot(aes(x = health, y = n, fill = hi)) +
  geom_col(position = 'dodge') +
  geom_text(aes(label = percent(pCH, accuracy = .1)), position = position_dodge(1), vjust = -.5, size = 2) +
  ylab('Số Người') +
  xlab('sk')

ở cả hai nhóm có và không có bảo hiểm thì số lượng người chủ yếu tập trung vào nhóm có điểm sức khỏe bằng 0 và đều có giảm dần số lượng người ở các điểm sức khỏe tiếp theo. tỉ lệ chênh lệch giữa 2 nhóm người này ở từng mốc điểm sức khỏe cũng ổn định và gần như không có biến động. vậy có thể thấy tình trạng sức khỏe không có ảnh hưởng đến việc có hay không sở hửu bảo hiểm y tế

2.4 thực hành với biến gender

2.4.1 thống kê biến số lần khám trong hai tuần visits và biến giới tính gender

table(d$visits,d$gender)
##    
##     male female
##   0 2099   2042
##   1  288    494
##   2   60    114
##   3   17     13
##   4   11     13
##   5    4      5
##   6    3      9
##   7    2     10
##   8    3      2
##   9    1      0

ta thấy số lượng người không đi khám trong hai tuần lần lượt là 2099 (nam) và 2042 (nữ) , chiếm số lượng lớn nhất trong cả hai giới tính . xếp thứ hai là số lần khám bằng 1 và số lượng người ở các số lần khám tiếp theo có xu hướng giảm dần.

table(d$gender)
## 
##   male female 
##   2488   2702
d|> group_by(gender)|>summarise(n=mean(visits))
## # A tibble: 2 × 2
##   gender     n
##   <fct>  <dbl>
## 1 male   0.236
## 2 female 0.362

trung bình số lần khám của nam là 0.236 lần trong 2 tuần và ở nữ là 0.362 lần. trong đó số lượng nữ giới là 2702 nhiều hơn nam là 2488. số lượng người không đi khám bệnh trong 2 tuần ở nữ thấp hơn nam. vậy ta có thể thấy nữ giới đi khám bệnh nhiều hơn nam giới.

aggregate(d$visits,list(d$gender),FUN='sd')
##   Group.1         x
## 1    male 0.7221676
## 2  female 0.8579201

độ lệch chuẩn số lần ở cả nam và nữ lần lượt là 0.722 và 0.8579, ta thấy được tính biến động của số lần khám trong hai tuần qua nhỏ và không đáng kể

male<- d[d$gender=='male'&d$visits>3,]
str(male)
## 'data.frame':    24 obs. of  18 variables:
##  $ visits   : num  4 4 7 5 4 4 4 4 4 5 ...
##  $ gender   : Factor w/ 2 levels "male","female": 1 1 1 1 1 1 1 1 1 1 ...
##  $ age      : num  0.19 0.19 0.22 0.22 0.22 0.22 0.22 0.22 0.22 0.27 ...
##  $ income   : num  0.55 0.35 0 0.55 1.5 0.65 0.45 0.9 0.65 1.3 ...
##  $ illness  : num  4 1 1 1 1 1 1 1 1 1 ...
##  $ reduced  : num  5 14 14 3 0 14 12 11 10 14 ...
##  $ health   : num  2 1 1 0 3 1 1 1 2 7 ...
##  $ private  : Factor w/ 2 levels "no","yes": 1 1 1 1 2 2 1 1 1 1 ...
##  $ freepoor : Factor w/ 2 levels "no","yes": 1 1 2 1 1 1 1 1 1 1 ...
##  $ freerepat: Factor w/ 2 levels "no","yes": 1 1 1 1 1 1 1 1 1 1 ...
##  $ nchronic : Factor w/ 2 levels "no","yes": 1 1 2 1 1 1 1 1 1 2 ...
##  $ lchronic : Factor w/ 2 levels "no","yes": 1 1 1 1 2 1 1 1 1 1 ...
##  $ hi       : chr  "no" "no" "yes" "no" ...
##  $ sex      : num  0 0 0 0 0 0 0 0 0 0 ...
##  $ levels   : Factor w/ 3 levels "trẻ","trung",..: 1 1 1 1 1 1 1 1 1 1 ...
##  $ yl       : chr  NA NA "nchronic" NA ...
##  $ inc      : Factor w/ 3 levels "thấp","trung",..: 1 1 1 1 3 2 1 2 2 3 ...
##  $ sk       : Factor w/ 3 levels "xấu","trung",..: 1 1 1 1 1 1 1 1 1 2 ...

ta có bảng male với chỉ gần các nam có số lần khám lớn hơn 3 lần trong 2 tuần. có thể thấy chỉ có 24 người khảo sát thỏa điều kiện trên

2.4.2 biến gender và các biến về bảo hiểm

pie(table(d$gender))

số lượng nữ có phần nhỉnh hơn nam nhưng không đáng kể

d<-d|>mutate(hi=case_when(private=='yes'|freepoor=='yes'|freerepat=='yes'~'yes',private=="no"|freepoor=="no"|freerepat=="no"~'no'))

biến hi thể hiện việc có bảo hiểm sức khỏe hay không kể cả mua hay là được cấp bởi chính phủ.

m<- table(d$gender,d$hi)
prop.table(m)
##         
##                 no       yes
##   male   0.2017341 0.2776493
##   female 0.1025048 0.4181118

trong những người có bảo hiểm sức khỏe thì có 1441 người nam có bảo hiểm và 2170 người nữ có bảo hiểm sức khỏe. trong đó tỷ lệ nam có bảo hiểm và nam không có bảo hiểm chênh lệch khá nhỏ , còn ở nữ số người có bảo hiểm gấp 4 lần số người không có bảo hiểm.

pl1<-d |> ggplot(aes(x = gender)) +
            geom_bar(aes(y = after_stat(count), fill =private ), stat = 'count') +     labs(title = 'Đồ thị người mua bảo hiểm')
pl2<- d |> ggplot(aes(x = gender)) +
            geom_bar(aes(y = after_stat(count), fill =freepoor ), stat = 'count') +     labs(title = 'Đồ thị người có bảo hiểm thu nhập thấp')
 pl3<- d |> ggplot(aes(x = gender)) +
            geom_bar(aes(y = after_stat(count), fill =freerepat ), stat = 'count') +labs(title = 'Đồ thị người có bảo hiểm hỗ trợ khác')
 grid.arrange(pl1, pl2, pl3, ncol = 1)

ở những người tự mua bảo hiểm số lựng nữ và số nam có bảo hiểm có số lượng khá ngang bằng nhau và đều chiếm khoảng một nửa số lượng người ở mỗi giới.

ở những người sở hữu bảo hiểm thu nhập thấp số lượng người sở hữu vô cùng ít và tỉ lệ sở hữu ở cả hai giới gần như ngang bằng.

ở những ngời có bảo hiểm hỗ trợ khác số lượng ở nữ sở hữu bảo hiểm này khá nhiều và số lượng nhiều hơn gấp đôi số người nam sở hữu.

vậy số lượng chênh lệch sở hữu bảo hiểm y tế hai giới ở cột hi chủ yếu đến từ lượng chệnh lệch của những người sở hữu bảo hiểm hỗ trợ khác.

2.4.3 phân tich biến gender và biến income

d|> group_by(gender)|>summarise(n=median(income))
## # A tibble: 2 × 2
##   gender     n
##   <fct>  <dbl>
## 1 male    0.65
## 2 female  0.35

trung vị vủa của nữ là 0.35 chục ngàn đô và nam là 0.65 chục ngàn đô, thu nhập ở nam gần gấp đôi nữ, cho thấy được thu nhập của nam và nữ có chênh lệch lớn.

  • vi3 là dữ liệu những người có số lần khám trong 2 tuần lớn hơn 3.
vi3<- d[d$visits>3,]
vi4<- d[d$visits<=3,]
vi4|> group_by(gender)|>summarise(n=mean(income))
## # A tibble: 2 × 2
##   gender     n
##   <fct>  <dbl>
## 1 male   0.691
## 2 female 0.486
vi3|> group_by(gender)|>summarise(n=mean(income))
## # A tibble: 2 × 2
##   gender     n
##   <fct>  <dbl>
## 1 male   0.548
## 2 female 0.419

ta thấy thu nhập trung bình ở bảng có số lần khám dưới 4 cao hơn so với thu nhập trung bình ở bảng có số lần khám từ 4. cho thấy những người thường đi khám bênh có thu nhập thấp hơn những người ít đi khám bệnh.số liệu này có biến động ở nam rõ rệt hơn so với ở nữ

  • tạo cột inc là biến thể hiện mức độ của thu nhập ở từng người với ba mức thấp , khá và cao
d$inc <- cut(d$income,breaks = c(-0.99,0.3,0.9,1.5),labels = c('thấp', 'khá','cao'))
d|>ggplot(aes(x=inc,y=after_stat(count)))+geom_bar(aes(fill=gender),position = 'dodge')+xlab('mức lương')+ylab('số người')

ở mức lương thấp số lượng người là nữ hơn gấp đôi số nam, nhưng ở mức khá và cao số lượng nam nhiều hơn số lượng nữ đặc biệt là ở mức cao số nam hơn gấp hai lần số nữ.

2.5 biến health và biến visits

d |> ggplot(aes(x = health, y = visits)) +
     geom_point(aes(color = gender), na.rm = T) +
     geom_smooth(formula =  y ~ x, method = 'lm', na.rm = T) +
     facet_grid(. ~ gender) +
     xlab('sức khỏe') +
     ylab('số lần đi khám')

ta thấy số lượng người có số lần khám bệnh từ 0-2 lần chiếm nhiều nhất ở cả hai giới tính, trong đó giới tính nữ có nhiều quan sát có điểm sức khỏe từ 0-5 và có số lần đi khám đi khám từ 7 lần trở lên . hai biến điểm sức khỏe và số lần đi khám ở cả hai giới tính đều có mối tương quan tính cực nhưng ở mức thấp. ## phân tích tương quan ở một số biến

data<- data.frame(d$visits,d$illness,d$reduced,d$health)
 datatable(data)
r<- cor(data)
corrplot.mixed(r)

tất cả các cặp biến đều có mối tương quan dương nhưng ở mức yếu trong đó hai cặp biến có mối tương quan mạnh nhất là số lần khám - số ngày nghỉ là 0.42, yếu nhất là số lần khám - sức khỏe là 0.19 và cặp này có thể coi là không có mối tương quan

corrplot(r, type="upper", order="hclust", col=c("black", "white"),
         bg="blue")

biểu đồ cho thấy hệ số tương quan của tất cả các cặp đều là số dương và trong đó mối tương quan của hai cặp số số lần khám - ngày nghỉ là lớn nhất, hai cặp số số ngày nghỉ - sức khỏe và ngày nghỉ - số bệnh là nhỏ nhất

library(PerformanceAnalytics)
data1<- data.frame(d$visits,d$illness,d$income,d$age,d$reduced,d$health)
chart.Correlation(data1, histogram=TRUE, pch=19)

các cặp biến gốm: số lần khám - số bệnh , số lần khám - số ngày nghỉ, số bệnh- sức khỏe, số bệnh - tuổi, thu nhập- tuổi, số ngày nghỉ- sức khỏe đây là những cặp biến có quan hệ tuyến tính nhưng đều ở mức yếu trong đó cặp thu nhập - tuổi có tương quan tuyến tính nghịch (-0.27) còn lại đều là tương quan thuận trong đó cặp số lần khám bệnh - số ngày nghỉ có mối tương quan cao nhất

t<-cor(data1)
corrplot(t, method = "color")

những cặp ô có màu xanh biểu thị cho hệ số tương quan dương và màu càng đậm thì tương quan càng lớn, những ô có màu từ hồng tới đỏ biểu thị cho hệ số tương quan âm và màu càng đậm thì mối tương quan càng lớn, màu trắng biểu thị không có tương quang. từ đó ta thấy các biến số lần khám bệnh - số ngày nghỉ, số bệnh - sức khỏe là hai cặp biến có mối tương quan thuận lớn nhất , cặp biến thu nhập - độ tuổi có tương quan nghịch lớn nhất.

2.6 biến income

2.6.1 biến income và age

d |> ggplot(aes(x = age, y =income)) + 
     geom_point(color='gray' )   + geom_smooth(formula=y~x, method = 'lm')+
     xlab('tuổi') +
     ylab('thu nhập')

đường tuyến tính đi xuống thể hiện mối tương quan nghịch nhưng đừng này khá thoải và các điểm không có sự phân bố tập trung mà rải rát nên hai biến này có mối tương quan nghịch ở mức yếu.

2.6.2 biến income và health

d |> ggplot(aes(x = health, y =income)) + 
     geom_point(color='pink' )   + geom_smooth(formula=y~x, method = 'lm')+
     xlab('sức khỏe') +
     ylab('thu nhập')

đường tuyến tính đi cuống nhưng gần như ngang bằng , các điểm phân bổ thưa và rải rát nên ta kết luận hai biến này không có tương quan

2.7 biến visits

2.7.1 biến visits và biến illness

d |> ggplot(aes(x = visits, y = illness)) +
     geom_point(aes(color=gender)) +
     geom_smooth(formula =  y ~ x, method = 'lm', na.rm = T) + 
     xlab('số lần khám ') 

     ylab('số bệnh')
## $y
## [1] "số bệnh"
## 
## attr(,"class")
## [1] "labels"

đường tuyến tính hướng lên khá dốc thể hiện hai biến có tương quan thuận nhưng các điểm phân bổ ròi rạc không có sự tập trung nên mối tương quan tuyến tính giữa hai biến này chỉ ở mức trung bình.

2.7.2 biến visits và reduced

d |> ggplot(aes(x = visits, y = reduced) )+
     geom_point(aes(color=gender)) +
     geom_smooth(formula =  y ~ x, method = 'lm', na.rm = T) + facet_grid(.~gender)+
     xlab('số lần khám ') +
     ylab('số ngày nghỉ')

đường tuyến tính ở cả giai giới tính đều hướng lên tức hai biến này có tương quan thuận ở cả hai biến, sự phân bổ các điểm ở bên nam có sự tập trung hơn ở bên nữa nên ta kết luận hai biến ” số ngày nghỉ - số lần khám” này có mối tương quan thuận mạnh mẽ ở giới nam hơn nữ.

2.8 biến sk

2.8.1 biến sk và biến reduced

 ggplot(data = d, mapping = aes(x = reduced, fill = sk)) +
     geom_density(size = 2, alpha = 0.2, position = "stack")+facet_grid(.~sk)
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

ở mức sức khỏe xấu số người có 0 ngày nghỉ là rất cao nhưng giảm mạnh và tiến về 0 ở số ngày nghỉ trong khoảng 3. ở mức sức khỏe trung số lượng người ở mức 0 ngày nghỉ vẫn nhiều nhất nhưng giảm dần tới ngày nghỉ thứ 5 thì về 0 nhưng đường giảm khá thoải. ở mức sức khỏe tốt đồ thị tiến dần đến 0 ở mức ngày nghỉ 10 , đường giảm khá thoải . cả 3 mức sức khỏe đường biểu diễn có xu hương đi lên ở các mức ngày nghỉ 11 và 12.

2.8.2 biến sk và illness

 ggplot(data = d, mapping = aes(x = illness, fill = sk)) +
     geom_density(size = 2, alpha = 0.2, position = "stack")+facet_grid(.~sk)

ở mức sức khỏe xấu số lượng bệnh mắc trong 2 tuầ giảm dần đều, cao nhất là mức bệnh 1. ở mức bệnh trung mức bệnh 1 và 2 chiếm nhiều nhất và giảm ở các số bệnh tiếp theo , biểu đồ có xu hướng lên xuống nhưng không quá đột ngột. ở mức sức khỏe tốt số bệnh chiếm nhiều nhất là 2, lượng tăng từ 0 đến hai khá dốc nhưng ở các mức từ 3 trở lên thì số lượng giảm dần và khá thoải. ở mức số bệnh từ 4 bệnh trở lên số lượng người bị ở sức khỏe trung và tốt nhiều hơn ở mức xấu.

2.9 biểu đồ sức khỏe và sở hữu bảo hiểm

d |> count(health, hi) |>
  mutate(pCH = prop.table(n)) |>
  ggplot(aes(x = health, y = n, fill = hi)) +
  geom_col(position = 'dodge') +
  geom_text(aes(label = percent(pCH, accuracy = .1)), position = position_dodge(1), vjust = -.5, size = 2) +
  ylab('Số Người') +
  xlab('sk')

ở cả hai nhóm có và không có bảo hiểm thì số lượng người chủ yếu tập trung vào nhóm có điểm sức khỏe bằng 0 và đều có giảm dần số lượng người ở các điểm sức khỏe tiếp theo. tỉ lệ chênh lệch giữa 2 nhóm người này ở từng mốc điểm sức khỏe cũng ổn định và gần như không có biến động. vậy có thể thấy tình trạng sức khỏe không có ảnh hưởng đến việc có hay không sở hửu bảo hiểm y tế

2.9.1 biểu đồ ảnh hưởng giữa sức khỏe và giới tính

d |> ggplot(aes(x = health, y = after_stat(count))) +
        geom_bar(fill = 'blue') +
         facet_grid(. ~ gender) +
     theme_classic() + labs(x = 'sk', y = 'Số người')

ta thấy biểu đồ giữa male và femae có độ tương đồng lớn , sự biến thiên cũng như tỉ lệ ở cặp giá trị gần như tương đồng. ta thấy được rằng giới tính không ảnh hưởng đến sức khỏe.

2.9.2 biến health và biến visits

d |> ggplot(aes(x = health, y = visits)) +
     geom_point(aes(color = gender), na.rm = T) +
     geom_smooth(formula =  y ~ x, method = 'lm', na.rm = T) +
     facet_grid(. ~ gender) +
     xlab('sức khỏe') +
     ylab('số lần đi khám')

ta thấy số lượng người có số lần khám bệnh từ 0-2 lần chiếm nhiều nhất ở cả hai giới tính, trong đó giới tính nữ có nhiều quan sát có điểm sức khỏe từ 0-5 và có số lần đi khám đi khám từ 7 lần trở lên . hai biến điểm sức khỏe và số lần đi khám ở cả hai giới tính đều có mối tương quan tính cực nhưng ở mức thấp.

2.9.3 Biểu đồ hai biến health và income

d |> ggplot(aes(x = health, y = income)) +
     geom_point() +
     geom_smooth(formula =  y ~ x, method = 'lm', na.rm = T) +
     xlab('sức khỏe') +
     ylab('thu nhập')

ta thấy hai biến sức khỏe và thu nhập này có mối tương quan tiêu cực nhưng ở mức thấp tức là những người có thu nhập cao thì có điểm sức khỏe thấp và ngược lại.

2.10 vẽ biểu đồ income

2.10.1 Biến nchronic , ichronic

Tạo biến ‘yl’ là biến thể hiện bệnh nhân có bệnh mãn tính có bị ảnh hưởng hoạt động hay không

d<-d|>mutate(yl=case_when(nchronic=='yes'~'nchronic',lchronic=="yes"~'lchronic'))
datatable(d)
 d|>select(yl)|>group_by(yl)|>drop_na(yl)|>count()|>ggplot(aes(x="",y=n,fill=yl))+geom_bar(stat = 'identity',width = 1)+coord_polar('y',start = 0)+theme_void()

qua biểu đồ ta thấy được số lượng người không bị giảm hoạt động do bệnh mãn tính hơn gấp 3 lần số người bị ảnh hưởng.

2.10.2 biểu đồ biến yl và income

ta trực quan hai biến yl và income để xem liệu việc giới hạn hoạt động của các bệnh mãn tính có ảnh hưởng đến thu nhập hay không

d|> ggplot(aes(x=age,y=income))+geom_point()+geom_smooth(formula = y~x,method = 'lm',na.rm = T)+facet_grid(.~yl)+xlab('tuổi')+ylab('thu nhập')

ta thấy ở hai biến lchronic và nchronic là biến đều là những người có bệnh mãn tính, đường tuyến tính ở hai biến này đều đi xuống và khá dốc tức là thu nhập và độ tuổi đều có mối tương quan tiêu cực. ở biến NA là biến gồm những người không có mắc bệnh mãn tính thì đường tuyến tính cũng đi xuống nhưng độ dốc này khá thoải so với hai biến trước đó. vậy ta có thể kết luận khi tuổi càng cao thì thu nhập giảm và bệnh mãn tính có ảnh hưởng đến thu nhập trên .

2.10.3 phân tích mật độ của biến yl trong biến income

 ggplot(data = d, mapping = aes(x = income, fill = yl)) +
     geom_density(size = 2, alpha = 0.2, position = "stack")+facet_grid(.~yl)+
     labs(title = "đường mật độ phân phối của thu nhập")

ta có thể thấy được mật độ phân phối ở các mốc thu nhập của hai biến lchronic và nchronic khá tương đồng nhau , đều tập trung chủ yếu ở mức thu nhập 0.25 và có độ lệch lớn ở các mức thu nhập tiếp theo ; còn ở biến NA là biến của những người không mắc bệnh mãn tính, mức thu nhập phân bố khá dàn trải và độ dốc thoải , tập trung cao nhất ở mức thu nhập 0.25-0.8 và giảm dân độ tập trung ở các mức tiếp theo. ta có thể kết luận bệnh mãn tính có ảnh hưởng dến sự phân phối về thu nhập

2.10.4 biểu đồ biến số bệnh mắc phải illness và số ngày bị giảm lao động do bệnh reduced

d$levels<- cut(d$age,breaks = c(0.189,0.3,0.5,0.72),labels = c('trẻ','trung','cao'))

d |> ggplot(aes(x = illness, y =reduced)) + 
     geom_point(aes(color=levels))+ geom_smooth(aes(color=levels),formula = y~x, method = 'lm') + facet_grid(levels~.)+
     xlab('bệnh') +
     ylab('ngày nghỉ')

ở những người cao tuổi lượng người có từ 4-5 bệnh có số lượng nhiều còn những người trung tuổi chiếm khá ít. ở những người cao tuổi mắc từ 4-5 bệnh số ngày nghỉ do bị bệnh só ngày nghỉ trên 6 ngày chiếm khá nhiều so với nhóm tuổi trẻ và trung tuổi. đường tuyến tính của hai biến số bệnh và ngày nghi ở nhóm trẻ tuổi cũng ít dốc hơn so với hai nhóm trung tuổi và cao tuổi. từ đó ta có thể kết luận số ngày nghỉ do bệnh không chỉ ảnh hưởng bởi số lượng bệnh mà còn ảnh hưởng bởi người đó có còn trẻ hay không.

2.11 trực quan với biến tuổi age

2.11.1 biểu đồ biến age và biến số lần thăm khám visits

d |> ggplot(aes(x = age, y =visits)) + 
     geom_point()   + geom_smooth(formula=y~x, method = 'lm')+
     xlab('tuổi') +
     ylab('lần khám')

ở mức đi khám từ 0-3 lần trên 2 tuần , số lượng phân bố trải rộng ở độ tuổi từ 19-72.ta thấy ở những lần khám mức cao từ 5 lần trở lên chủ yếu là ở những người có độ tuổi khoảng 45 tuổi trở lên, độ tuổi càng cao thì số lần đi khám bệnh cao tăng

2.11.2 biểu đồ biến age và biến có bảo hiểm y tế diện thu nhập thấp freepoor

d |> ggplot(aes(x = age, y =after_stat(count))) + 
     geom_bar(aes(fill=freepoor)) +  
     xlab('tuổi') +
     ylab('số người')

ta thấy được số người có bảo hiểm y tế thu nhập thấp chủ yếu nằm ở độ tuổi dưới 30 tuổi, từ 40-60 tuổi số người sở hữu loại bảo hiểm này rất ít và từ độ tuổi 60 trở lên thì gần như bằng 0

2.11.3 biểu đồ biến thi nhập income và biến levels

d |> ggplot(aes(x = income, y =after_stat(count))) + 
          geom_bar(aes(fill=levels)) +  
          xlab('thu nhập') +
          ylab('số người')

ở phần thu nhập dưới 4 ngàn đô tập trung chủ yếu là người cao tuổi, trong khoảng thu nhập từ 5 ngàn đô tới 10 ngàn dô chủ yếu là người trẻ tuổi chiếm hơn một nửa số lượng, người trung tuổi và người cao tuổi có số lượng ngang nhau rtong nhóm này. khoảng thu nhập từ 10 ngàn đô trơ lên người trung tuổi chiếm số lượng nhiều nhất theo sau là người trẻ tuổi. vậy ta thấy được trạng thái cơ thể trẻ tuổi, trung tuôi hay cao tuổi có ảnh hưởng rõ đến thu nhập.

2.12 nhập dữ liệu của biến Doctorvisits và đổi tên thành d

names(d)<- c('V','G','A','I','IL','R','H','P','F','FT','N','L')

2.12.1 chi tổ và tạo bảng tần số cho biến H

table(cut(d$H,4))
## 
## (-0.012,3]      (3,6]      (6,9]     (9,12] 
##       4568        423        135         64

số lượng người có điểm dưới 3 chiếm nhiều nhất lên đến khoảng 88% trên tổng số khảo sát số lượng người có điểm sức khỏe ở mức trên 6 điểm chiếm rất ít chỉ khoảng 199 người chiếm khoảng chưa đến 4% trên tổng số khảo sát.

2.12.2 bảng tần số của hai biến ” thu nhập trung bình năm ” và ” điểm sức khỏe”

table(cut(d$I,4),cut(d$H,4))
##                  
##                   (-0.012,3] (3,6] (6,9] (9,12]
##   (-0.0015,0.375]       1790   200    75     35
##   (0.375,0.75]          1580   128    38     17
##   (0.75,1.12]            855    73    14      8
##   (1.12,1.5]             343    22     8      4

nhóm ngươi có thu nhập dưới 0.375 chục nghìn đô và điểm sức khỏe dưới 3 điểm chiếm số lượng lớn nhất

ở các tổ điểm sức khỏe ở mức cao như từ (6;9] và từ (9;12] phần lớn đều có mức lương ở mức thấp - dưới 0.375 chục nghìn đô ( chiếm lần lượt khoảng 55,56% và 54,7% ).

ở từng nhóm tổ điểm sức khỏe, số người có xu hướng giảm dần khi mức thu nhập tăng lên.

=> ta thấy được mức thu nhập chưa thực sự ảnh hưởng đến điểm sức khỏe của cư dân úc tạp thời điểm lúc bấy giờ.

2.13 #biến IL và biến R

summary(d$IL)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   0.000   1.000   1.432   2.000   5.000
IL3R10<- d[d$IL>3&d$R==5,]

số bệnh mắc phải trong 2 tuần qua có giá trị từ [0;9]. và trong vòng 2 tuần có khoảng 50% người mắc nhiều hơn 1 căn bệnh.

summary(d$R)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.0000  0.0000  0.0000  0.8619  0.0000 14.0000

số ngày người bệnh bị hạn chế hoạt động có giá trị [0;14] ngày và trung bình số ngày bị hạn chế hoạt động là 0.86 ngày, con số rất nhỏ so với khoảng ngày nghỉ khoảng sát được nhiều nhất là 14 ngày.

IL3R10<- d[d$IL>3&d$R==5,]

gọi biến IL3R10 là biến của những người mắc nhiều hơn 3 bệnh trong 2 tuần và số ngày bị giảm hoạt động là 5 ngày. Ta thấy có 7 quan sát thỏa mãn 2 điều kiện trên.

IL24<-d$IL[d$IL>=2&d$IL<=4]

IL24 cho thấy có 1762 người mắc từ 2 đến 4 bệnh trong vòng 2 tuần.

2.13.1 trực quan về hai biến số bệnh và số ngày bị hạn chế hoạt động trogn 2 tuần

ggplot(d,aes(d$IL,d$R))+geom_point()
## Warning in eval_tidy(x[[2]], data, env): restarting interrupted promise
## evaluation

số ngày bị hạn chế hoạt động trong 2 tuần của các nhóm có số bệnh từ 1 đến 5 đều phân bố rải đều từ 0 đến 14 ngày nghỉ. ta chưa thấy được sự ảnh hưởng của số bệnh mắc phải với số ngày bị giảm lao động. ### tạo biến old trong d

summary(d$A)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.1900  0.2200  0.3200  0.4064  0.6200  0.7200
d$old<- cut(d$A,breaks = c(0.189,0.3,0.45,0.60,0.72),labels = c("trẻ","trung", "già", "hưu"))

Biến old với được chia làm 4 cấp độ tương ứng với 4 khoảng tuổi [19,30],(30,45],(45,60],(60,72].

quantile(d$A,.7)
##  70% 
## 0.57

có 70% người có độ tuổi dưới 57 tuổi

2.14 ta có bảng tần số của old

table(d$old)
## 
##   trẻ trung   già   hưu 
##  2488   573   676  1453

số người khảo sát ở mức trẻ là nhiều nhất với 2488 người và người trung tuổi là ít nhất với 573 người.

tính toán một số tiêu thức thống kê của các giá trị thuộc biến old

aggregate(d$H,list(d$old),FUN ="sd")
##   Group.1        x
## 1     trẻ 2.009747
## 2   trung 2.385439
## 3     già 2.331422
## 4     hưu 2.100760

độ lệch chuẩn của nhóm trung là cao nhất với 2.385 và nhóm trẻ là thấp nhất với 2.0097. Ta thấy được nhóm trẻ có sức khỏe ổn định nhất và nhóm trung có nhiều biến động về sức khỏe nhất.

Thêm biến vào dataset d

d$lgIL<- log(d$IL)

thêm vào d biến lgIL với lgIL là tập các giá trị logarit cơ số 10 của biến IL - số bệnh của một người mắc phải trong 2 tuần

d$VIL<- d$V+d$IL

thêm vào d biến VIL với VIL là tập giá trị của tổng hai biến số lần đến bác sĩ và số bệnh mắc phải trong 2 tuần

đổi tên các biến trong d thành các kí hiệu tương ứng và thực hiện một vài thao tác

d[125,3]
## [1] 0.22

dữ liệu ở dòng 125 cột 3 có giá trị là

2.15 xử lý dữ liệu biến I- thu nhập hàng năm

###gọi In là tập các giá trị của biến I trong d, gọi In045 là tập thu nhập hàng năm có giá trị lớn hơn 0.45 chục nghìn usd

In<- d$I
In045<- In[In>0.45]

2.15.1 In1045 là tập thu nhập hàng năm có giá trị từ (0.45;1)

In1045<-In[In>0.45&In<1]

2.15.2 dữ liệu số 5 trong tập dữ liệu In1045 là

In045[5]
## [1] 0.55

2.15.3 phân tổ và lập bảng tần số cho biến thu nhập hàng năm - I.

table(cut(In,4))
## 
## (-0.0015,0.375]    (0.375,0.75]     (0.75,1.12]      (1.12,1.5] 
##            2100            1763             950             377

Trong bảng tần số trên ta thấy được số lượng người giảm dẫn qua từng tổ, phần lớn nằm trong khoảng thu nhập dưới 0.375 nghìn đ chiếm 2100 người trên tổng số.

Thu nhập nằm trong (1.12;1.5] chiếm ít nhất chỉ 377 người và chỉ xấp xỉ 0.2 lần số người có thu nhập dươi s0.375 và chỉ bằng khoảng 0.4 lần số người có thu nhập từ (0.75;1.12].

3 TUẦN 4 _ dataset DoctorVisits

3.1 phân tích biến điểm sức khỏe -health

3.1.1 Vẽ biểu đồ thể hiện sự ảnh hưởng của viêc có bảo hiểm và điểm sức khỏe

Ba biến gồm private, freepoor,freerepat là các biến liên quan đến việc sở hiểm bảo hiểm của những người tham gia khảo sát. Tạo biến mới ‘hi’ là biến cho biết người khảo sát có bảo hiểm y tế hay không.

library(AER)
library(scales)
library(ggplot2)
library(tidyverse)
library(DT)
library(gridExtra)
data("DoctorVisits")
d<- DoctorVisits
d<-d|>mutate(hi=case_when(private=='yes'|freepoor=='yes'|freerepat=='yes'~'yes',private=="no"|freepoor=="no"|freerepat=="no"~'no'))
d |> count(health, hi) |>
  mutate(pCH = prop.table(n)) |>
  ggplot(aes(x = health, y = n, fill = hi)) +
  geom_col(position = 'dodge') +
  geom_text(aes(label = percent(pCH, accuracy = .1)), position = position_dodge(1), vjust = -.5, size = 2) +
  ylab('Số Người') +
  xlab('sk')

ở cả hai nhóm có và không có bảo hiểm thì số lượng người chủ yếu tập trung vào nhóm có điểm sức khỏe bằng 0 và đều có giảm dần số lượng người ở các điểm sức khỏe tiếp theo. tỉ lệ chênh lệch giữa 2 nhóm người này ở từng mốc điểm sức khỏe cũng ổn định và gần như không có biến động. vậy có thể thấy tình trạng sức khỏe không có ảnh hưởng đến việc có hay không sở hửu bảo hiểm y tế

3.1.2 biểu đồ ảnh hưởng giữa sức khỏe và giới tính

d |> ggplot(aes(x = health, y = after_stat(count))) +
        geom_bar(fill = 'blue') +
         facet_grid(. ~ gender) +
     theme_classic() + labs(x = 'sk', y = 'Số người')

ta thấy biểu đồ giữa male và femae có độ tương đồng lớn , sự biến thiên cũng như tỉ lệ ở cặp giá trị gần như tương đồng. ta thấy được rằng giới tính không ảnh hưởng đến sức khỏe.

3.1.3 biến health và biến visits

d |> ggplot(aes(x = health, y = visits)) +
     geom_point(aes(color = gender), na.rm = T) +
     geom_smooth(formula =  y ~ x, method = 'lm', na.rm = T) +
     facet_grid(. ~ gender) +
     xlab('sức khỏe') +
     ylab('số lần đi khám')

ta thấy số lượng người có số lần khám bệnh từ 0-2 lần chiếm nhiều nhất ở cả hai giới tính, trong đó giới tính nữ có nhiều quan sát có điểm sức khỏe từ 0-5 và có số lần đi khám đi khám từ 7 lần trở lên . hai biến điểm sức khỏe và số lần đi khám ở cả hai giới tính đều có mối tương quan tính cực nhưng ở mức thấp.

3.1.4 Biểu đồ hai biến health và income

d |> ggplot(aes(x = health, y = income)) +
     geom_point() +
     geom_smooth(formula =  y ~ x, method = 'lm', na.rm = T) +
     xlab('sức khỏe') +
     ylab('thu nhập')

ta thấy hai biến sức khỏe và thu nhập này có mối tương quan tiêu cực nhưng ở mức thấp tức là những người có thu nhập cao thì có điểm sức khỏe thấp và ngược lại.

3.2 vẽ biểu đồ income

3.2.1 Biến nchronic , ichronic

Tạo biến ‘yl’ là biến thể hiện bệnh nhân có bệnh mãn tính có bị ảnh hưởng hoạt động hay không

d<-d|>mutate(yl=case_when(nchronic=='yes'~'nchronic',lchronic=="yes"~'lchronic'))
datatable(d)
 d|>select(yl)|>group_by(yl)|>drop_na(yl)|>count()|>ggplot(aes(x="",y=n,fill=yl))+geom_bar(stat = 'identity',width = 1)+coord_polar('y',start = 0)+theme_void()

qua biểu đồ ta thấy được số lượng người không bị giảm hoạt động do bệnh mãn tính hơn gấp 3 lần số người bị ảnh hưởng.

3.2.2 biểu đồ biến yl và income

ta trực quan hai biến yl và income để xem liệu việc giới hạn hoạt động của các bệnh mãn tính có ảnh hưởng đến thu nhập hay không

d|> ggplot(aes(x=age,y=income))+geom_point()+geom_smooth(formula = y~x,method = 'lm',na.rm = T)+facet_grid(.~yl)+xlab('tuổi')+ylab('thu nhập')

ta thấy ở hai biến lchronic và nchronic là biến đều là những người có bệnh mãn tính, đường tuyến tính ở hai biến này đều đi xuống và khá dốc tức là thu nhập và độ tuổi đều có mối tương quan tiêu cực. ở biến NA là biến gồm những người không có mắc bệnh mãn tính thì đường tuyến tính cũng đi xuống nhưng độ dốc này khá thoải so với hai biến trước đó. vậy ta có thể kết luận khi tuổi càng cao thì thu nhập giảm và bệnh mãn tính có ảnh hưởng đến thu nhập trên .

3.2.3 phân tích mật độ của biến yl trong biến income

 ggplot(data = d, mapping = aes(x = income, fill = yl)) +
     geom_density(size = 2, alpha = 0.2, position = "stack")+facet_grid(.~yl)+
     labs(title = "đường mật độ phân phối của thu nhập")

ta có thể thấy được mật độ phân phối ở các mốc thu nhập của hai biến lchronic và nchronic khá tương đồng nhau , đều tập trung chủ yếu ở mức thu nhập 0.25 và có độ lệch lớn ở các mức thu nhập tiếp theo ; còn ở biến NA là biến của những người không mắc bệnh mãn tính, mức thu nhập phân bố khá dàn trải và độ dốc thoải , tập trung cao nhất ở mức thu nhập 0.25-0.8 và giảm dân độ tập trung ở các mức tiếp theo. ta có thể kết luận bệnh mãn tính có ảnh hưởng dến sự phân phối về thu nhập

3.2.4 biểu đồ biến số bệnh mắc phải illness và số ngày bị giảm lao động do bệnh reduced

d$levels<- cut(d$age,breaks = c(0.189,0.3,0.5,0.72),labels = c('trẻ','trung','cao'))

d |> ggplot(aes(x = illness, y =reduced)) + 
     geom_point(aes(color=levels))+ geom_smooth(aes(color=levels),formula = y~x, method = 'lm') + facet_grid(levels~.)+
     xlab('bệnh') +
     ylab('ngày nghỉ')

ở những người cao tuổi lượng người có từ 4-5 bệnh có số lượng nhiều còn những người trung tuổi chiếm khá ít. ở những người cao tuổi mắc từ 4-5 bệnh số ngày nghỉ do bị bệnh só ngày nghỉ trên 6 ngày chiếm khá nhiều so với nhóm tuổi trẻ và trung tuổi. đường tuyến tính của hai biến số bệnh và ngày nghi ở nhóm trẻ tuổi cũng ít dốc hơn so với hai nhóm trung tuổi và cao tuổi. từ đó ta có thể kết luận số ngày nghỉ do bệnh không chỉ ảnh hưởng bởi số lượng bệnh mà còn ảnh hưởng bởi người đó có còn trẻ hay không.

3.3 trực quan với biến tuổi age

3.3.1 biểu đồ biến age và biến số lần thăm khám visits

d |> ggplot(aes(x = age, y =visits)) + 
     geom_point()   + geom_smooth(formula=y~x, method = 'lm')+
     xlab('tuổi') +
     ylab('lần khám')

ở mức đi khám từ 0-3 lần trên 2 tuần , số lượng phân bố trải rộng ở độ tuổi từ 19-72.ta thấy ở những lần khám mức cao từ 5 lần trở lên chủ yếu là ở những người có độ tuổi khoảng 45 tuổi trở lên, độ tuổi càng cao thì số lần đi khám bệnh cao tăng

3.3.2 biểu đồ biến age và biến có bảo hiểm y tế diện thu nhập thấp freepoor

d |> ggplot(aes(x = age, y =after_stat(count))) + 
     geom_bar(aes(fill=freepoor)) +  
     xlab('tuổi') +
     ylab('số người')

ta thấy được số người có bảo hiểm y tế thu nhập thấp chủ yếu nằm ở độ tuổi dưới 30 tuổi, từ 40-60 tuổi số người sở hữu loại bảo hiểm này rất ít và từ độ tuổi 60 trở lên thì gần như bằng 0

3.3.3 biểu đồ biến thi nhập income và biến levels

d |> ggplot(aes(x = income, y =after_stat(count))) + 
          geom_bar(aes(fill=levels)) +  
          xlab('thu nhập') +
          ylab('số người')

ở phần thu nhập dưới 4 ngàn đô tập trung chủ yếu là người cao tuổi, trong khoảng thu nhập từ 5 ngàn đô tới 10 ngàn dô chủ yếu là người trẻ tuổi chiếm hơn một nửa số lượng, người trung tuổi và người cao tuổi có số lượng ngang nhau rtong nhóm này. khoảng thu nhập từ 10 ngàn đô trơ lên người trung tuổi chiếm số lượng nhiều nhất theo sau là người trẻ tuổi. vậy ta thấy được trạng thái cơ thể trẻ tuổi, trung tuôi hay cao tuổi có ảnh hưởng rõ đến thu nhập.

3.4 làm trên lớp tuần 4

3.4.1 thực hành với biến gender

3.4.1.1 thống kê biến số lần khám trong hai tuần visits và biến giới tính gender

table(d$visits,d$gender)
##    
##     male female
##   0 2099   2042
##   1  288    494
##   2   60    114
##   3   17     13
##   4   11     13
##   5    4      5
##   6    3      9
##   7    2     10
##   8    3      2
##   9    1      0

ta thấy số lượng người không đi khám trong hai tuần lần lượt là 2099 (nam) và 2042 (nữ) , chiếm số lượng lớn nhất trong cả hai giới tính . xếp thứ hai là số lần khám bằng 1 và số lượng người ở các số lần khám tiếp theo có xu hướng giảm dần.

table(d$gender)
## 
##   male female 
##   2488   2702
d|> group_by(gender)|>summarise(n=mean(visits))
## # A tibble: 2 × 2
##   gender     n
##   <fct>  <dbl>
## 1 male   0.236
## 2 female 0.362

trung bình số lần khám của nam là 0.236 lần trong 2 tuần và ở nữ là 0.362 lần. trong đó số lượng nữ giới là 2702 nhiều hơn nam là 2488. số lượng người không đi khám bệnh trong 2 tuần ở nữ thấp hơn nam. vậy ta có thể thấy nữ giới đi khám bệnh nhiều hơn nam giới.

aggregate(d$visits,list(d$gender),FUN='sd')
##   Group.1         x
## 1    male 0.7221676
## 2  female 0.8579201

độ lệch chuẩn ở cả nam và nữ lần lượt là 0.722 và 0.8579, ta thấy được tính biến động của số lần khám trong hai tuần qua nhỏ và không đáng kể

male<- d[d$gender=='male'&d$visits>3,]
str(male)
## 'data.frame':    24 obs. of  15 variables:
##  $ visits   : num  4 4 7 5 4 4 4 4 4 5 ...
##  $ gender   : Factor w/ 2 levels "male","female": 1 1 1 1 1 1 1 1 1 1 ...
##  $ age      : num  0.19 0.19 0.22 0.22 0.22 0.22 0.22 0.22 0.22 0.27 ...
##  $ income   : num  0.55 0.35 0 0.55 1.5 0.65 0.45 0.9 0.65 1.3 ...
##  $ illness  : num  4 1 1 1 1 1 1 1 1 1 ...
##  $ reduced  : num  5 14 14 3 0 14 12 11 10 14 ...
##  $ health   : num  2 1 1 0 3 1 1 1 2 7 ...
##  $ private  : Factor w/ 2 levels "no","yes": 1 1 1 1 2 2 1 1 1 1 ...
##  $ freepoor : Factor w/ 2 levels "no","yes": 1 1 2 1 1 1 1 1 1 1 ...
##  $ freerepat: Factor w/ 2 levels "no","yes": 1 1 1 1 1 1 1 1 1 1 ...
##  $ nchronic : Factor w/ 2 levels "no","yes": 1 1 2 1 1 1 1 1 1 2 ...
##  $ lchronic : Factor w/ 2 levels "no","yes": 1 1 1 1 2 1 1 1 1 1 ...
##  $ hi       : chr  "no" "no" "yes" "no" ...
##  $ yl       : chr  NA NA "nchronic" NA ...
##  $ levels   : Factor w/ 3 levels "trẻ","trung",..: 1 1 1 1 1 1 1 1 1 1 ...

ta có bảng male với chỉ gần các nam có số lần khám lớn hơn 3 lần trong 2 tuần. có thể thấy chỉ có 24 người khảo sát thỏa điều kiện trên

3.4.1.2 phân tich biến gender và biến income

d|> group_by(gender)|>summarise(n=median(income))
## # A tibble: 2 × 2
##   gender     n
##   <fct>  <dbl>
## 1 male    0.65
## 2 female  0.35

trung vị vủa của nữ là 0.35 chục ngàn đô và nam là 0.65 chục ngàn đô, thu nhập ở nam gần gấp đôi nữ, cho thấy được thu nhập của nam và nữ có chênh lệch lớn.

  • vi3 là dữ liệu những người có số lần khám trong 2 tuần lớn hơn 3.
vi3<- d[d$visits>3,]
vi4<- d[d$visits<=3,]
vi4|> group_by(gender)|>summarise(n=mean(income))
## # A tibble: 2 × 2
##   gender     n
##   <fct>  <dbl>
## 1 male   0.691
## 2 female 0.486
vi3|> group_by(gender)|>summarise(n=mean(income))
## # A tibble: 2 × 2
##   gender     n
##   <fct>  <dbl>
## 1 male   0.548
## 2 female 0.419

ta thấy thu nhập trung bình ở bảng có số lần khám dưới 4 cao hơn so với thu nhập trung bình ở bảng có số lần khám từ 4. cho thấy những người thường đi khám bênh có thu nhập thấp hơn những người ít đi khám bệnh.số liệu này có biến động ở nam rõ rệt hơn so với ở nữ

  • tạo cột inc là biến thể hiện mức độ của thu nhập ở từng người với ba mức thấp , khá và cao
d$inc <- cut(d$income,breaks = c(-0.99,0.3,0.9,1.5),labels = c('thấp', 'khá','cao'))
d|>ggplot(aes(x=inc,y=after_stat(count)))+geom_bar(aes(fill=gender),position = 'dodge')+xlab('mức lương')+ylab('số người')

ở mức lương thấp số lượng người là nữ hơn gấp đôi số nam, nhưng ở mức khá và cao số lượng nam nhiều hơn số lượng nữ đặc biệt là ở mức cao số nam hơn gấp hai lần số nữ.

4 TUẦN 3

4.1 Mô tả dữ liệu dùng chuyển bảng ngang sang dọc

malaria_facility_count_data: dữ liệu bệnh sốt rét ở 65 cơ sở y tế tại 4 quận Spring, Bolo, Dingo và Barnard của tỉnh North

location_name: tên cơ sở y tế

data_date: ngày nhập dữ liệu

submittes_date: ngày kiểm duyệt

province: tỉnh thu thập dữ liệu

district: quận

malaria_rdt_0-4: số ca bệnh ở độ tuổi <4

malaria_rdt_5-14: số ca bệnh ở độ tuổi 5-14.

malaria_rdt_15: số ca bệnh ở độ tuổi >15

malaria_rdt_tot: tổng số ca bệnh một ngày ở từng cơ sơ y tế

newid: số thứ tự của từng cơ sở.

4.1.1 nạp dữ liệu ‘malaria facility count data’ từ máy vào và đặt tên viết tắt là m.

m<- import("C:/Users/Vo Ky Duyen/Downloads/malaria_facility_count_data.rds")
datatable(m)

4.1.2 chuyển dữ liệu từ ngang sang dọc

tạo bảng a có 3 biến gồm tên cơ sở y tế ( location_name), nhóm tuổi (age) gộp từ 3 biến malaria_rdt_0-4,malaria_rdt_5-15,malaria_rdt_15, và ‘sl’ là số người bệnh tương ứng.

a<-m%>% select(`malaria_rdt_0-4`,`malaria_rdt_5-14`,'malaria_rdt_15',location_name)%>%pivot_longer(cols = c(`malaria_rdt_0-4`, `malaria_rdt_5-14`, `malaria_rdt_15`),names_to = 'age',values_to = 'sl' )
head(a)
## # A tibble: 6 × 3
##   location_name age                 sl
##   <chr>         <chr>            <int>
## 1 Facility 1    malaria_rdt_0-4     11
## 2 Facility 1    malaria_rdt_5-14    12
## 3 Facility 1    malaria_rdt_15      23
## 4 Facility 2    malaria_rdt_0-4     11
## 5 Facility 2    malaria_rdt_5-14    10
## 6 Facility 2    malaria_rdt_15       5

4.1.3 tạo bảng b thể hiện mối liên hệ giữa số lượng bệnh trong từng ngày ở từng cơ sở.

b<-m%>% select(`malaria_rdt_0-4`,`malaria_rdt_5-14`,'malaria_rdt_15',data_date,location_name)%>%pivot_longer(cols = c(`malaria_rdt_0-4`, `malaria_rdt_5-14`, `malaria_rdt_15`),names_to = 'age',values_to = 'sl' )

vẽ đồ thị biểu hiện số ca bệnh sốt rét ở từng nhóm tuổi trong từng cơ sở y tế khảo sát được theo thời gian , biểu diễn bằng buổi đồ cột chồng

library(ggplot2)
ggplot(data= b)+geom_col(mapping=aes(x=data_date,y=sl,fill=age),width=1)
## Warning: Removed 2058 rows containing missing values (`position_stack()`).

4.1.4 chèn thêm cột id thể hiện số thứ tự của cơ sở y tế vào bảng b

b<- b%>% mutate(id= parse_number(location_name))
head(b)
## # A tibble: 6 × 5
##   data_date  location_name age                 sl    id
##   <date>     <chr>         <chr>            <int> <dbl>
## 1 2020-08-11 Facility 1    malaria_rdt_0-4     11     1
## 2 2020-08-11 Facility 1    malaria_rdt_5-14    12     1
## 3 2020-08-11 Facility 1    malaria_rdt_15      23     1
## 4 2020-08-11 Facility 2    malaria_rdt_0-4     11     2
## 5 2020-08-11 Facility 2    malaria_rdt_5-14    10     2
## 6 2020-08-11 Facility 2    malaria_rdt_15       5     2

4.1.5 tạo bảng đếm tổng số lượng từng nhóm trong ngày mà không phân biệt cơ sở y tế.

 t <- b%>% count(data_date, age)
 head(t)
## # A tibble: 6 × 3
##   data_date  age                  n
##   <date>     <chr>            <int>
## 1 2020-05-16 malaria_rdt_0-4      1
## 2 2020-05-16 malaria_rdt_15       1
## 3 2020-05-16 malaria_rdt_5-14     1
## 4 2020-05-17 malaria_rdt_0-4      1
## 5 2020-05-17 malaria_rdt_15       1
## 6 2020-05-17 malaria_rdt_5-14     1

4.2 dọc thành ngang

4.2.1 mô tả dữ liệu naturalgas

naturalgas là tập dữ liệu về khí gas được lấy từ 6 tiểu bang của Hoa Kỳ từ năm 1967 đến năm 1989

state: tên viết tắt của tiểu bang

statecode: mã số của tiểu bang

year: năm thu dữ liệu

cosnumption: lượng gas tiêu thụ

price: giá gas

eprice: giá điện

oprice: giá dầu nhiên liệu

iprice: giá khí dầu mỏ

heating: nhiệt độ

income: thu nhập bình quân đâu người

4.2.2 thực hiện chuyển hóa bảng dọc sang ngang

data("NaturalGas")
n<- NaturalGas
summary(n$price)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.680   1.380   2.775   3.422   5.310   8.060

ta thấy biến giá gas price nằm trong đoạn[0.68;8.06] nên ta chia thành 4 khoảng lần lượt là thấp, trung bình, khá và cao

n$levels<- cut(n$price,breaks = c(0.67,2,4,6,8.06),labels = c('thấp','tb','khá','cao'))

mã hóa dữ liệu biến levels ta có cột lev có giá trị lần lượt là 0,1,2,3

n<- n%>% mutate(lev = case_when(levels == 'thấp'~ 0, levels == 'tb' ~1, levels =='khá'~2,levels == ' cao'~3))

tạo bảng với 3 biến gồm tên tiểu bang, năm thu dữ liệu và lev ta được bảng na

na<-n%>% pivot_wider(id_cols = state,names_from = year,values_from = lev)
head(na)
## # A tibble: 6 × 24
##   state `1967` `1968` `1969` `1970` `1971` `1972` `1973` `1974` `1975` `1976`
##   <fct>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>
## 1 NY         0      0      0      0      0      0      0      0      1      1
## 2 FL         1      1      1      1      1      1      1      1      1      1
## 3 MI         0      0      0      0      0      0      0      0      0      0
## 4 TX         0      0      0      0      0      0      0      0      0      0
## 5 UT         0      0      0      0      0      0      0      0      0      0
## 6 CA         0      0      0      0      0      0      0      0      0      0
## # ℹ 13 more variables: `1977` <dbl>, `1978` <dbl>, `1979` <dbl>, `1980` <dbl>,
## #   `1981` <dbl>, `1982` <dbl>, `1983` <dbl>, `1984` <dbl>, `1985` <dbl>,
## #   `1986` <dbl>, `1987` <dbl>, `1988` <dbl>, `1989` <dbl>

4.3 thực hành chuyển đổi bảng thành dọc dataset world_bank_pop

world_bank_pop: dữ liệu dân từ năm 2000-2018 số cung cấp bởi World Bank

country: mã tên quốc gia gồm 3 ký tự

indicator: gồm: SP.POP.GROW = lượng tăng dân số; SP.POP.TOTL = tổng dân số; SP.URB.GROW = lượng tăng dân số đô thị; SP.URB.TOTL = tổng dân số đô thị.

2000- 2018 : dữ liệu tương ứng của các năm

data(world_bank_pop)
k<- world_bank_pop
do<- pivot_longer(k,cols = starts_with('20'),names_to = 'year',values_to = 'DS')
datatable(do)
## Warning in instance$preRenderHook(instance): It seems your data is too big for
## client-side DataTables. You may consider server-side processing:
## https://rstudio.github.io/DT/server.html

bảng do là bảng dọc thể hiện tổng số và lượng tăng giảm dân số cả ở khu đô thị và cả nước ở các quốc gia từng năm cụ thể ### vẽ đồ thị của tổng dân số cả nước và tổng dân số thành thị qua các năm và ở từng nước.

do%>% filter(indicator%in% c( 'SP.POP.TOTL','SP.URB.TOTL' ))%>%ggplot(aes(x=year,y=DS ,fill= indicator))+geom_col(position = 'dodge')+labs(title = 'đồ thị tổng dân số qua các năm',x='năm',y='số dân')
## Warning: Removed 72 rows containing missing values (`geom_col()`).

qua đồ thị ta thấy dân số tăng dần và tăng khá đều, tổng dân số ở thành thị cũng tăng tăng dần và không có năm nào giảm

do%>% filter(indicator%in% c( 'SP.POP.TOTL','SP.URB.TOTL' ))%>%ggplot(aes(x=country,y=DS ,fill= indicator))+geom_col(position = 'dodge')+labs(title = 'đồ thị tổng dân số ở các nước',x='nước',y='số dân')
## Warning: Removed 72 rows containing missing values (`geom_col()`).

ta thấy tổng dân số giữa các nước có sự chênh lệch rất lớn, ở các nước đông dân dân số ở thnafh thị chiến khoảng 1/2 tổng dân số cả nước

4.3.1 vẽ đồ thị cho lượng tăng dân số cả nước và đô thị

do%>% filter(indicator%in% c( 'SP.POP.GROW','SP.URB.GROW' ))%>%ggplot(aes(x=year,y=DS ,fill= indicator))+geom_col(position = 'dodge')+labs(title = 'đồ thị gia tăng dân số qua các năm',x='năm',y='số dân')
## Warning: Removed 72 rows containing missing values (`geom_col()`).

sự tăng giảm dân số có biến động khá lớn từ 2000-2018, tăng nhiều nhất vào các năm 2006-2009 và giảm nhiều nhất vào khoảng 2012-2014.lượng tổng tăng giảm số và lượng tăng giảm dân số thành thị không quá khác biệt nhau nên có thể thấy sự biến động của dân số thành thị ảnh hưởng rất nhiều đến tổng biến động dân số cả năm.

do%>% filter(indicator%in% c( 'SP.POP.GROW','SP.URB.GROW' ))%>%ggplot(aes(x=country,y=DS ,fill= indicator))+geom_col(position = 'dodge')+labs(title = 'đồ thị gia tăng dân số các nước',x='nước',y='số dân')
## Warning: Removed 72 rows containing missing values (`geom_col()`).

biến động dân số có sự chênh lệch rất lớn ở nhiều nước , ở các nước có độ tăng dân số lớn thì sự gia tăng dân số ở thành thị gần như ngang bằng , đồng thời ở các nước có dân số giảm thì lượng giảm dân số ở khu thành thị cũng xấp xỉ lượng giảm tổng của cả nước. vậy ta thấy sự gia tăng dân số ở khu thành thị có liên hệ mật thiết đến sự gia tăng dân số cả nước

5 Mô tả dataset tuần 1 và 2

DoctorVisits:Dữ liệu Khảo sát Sức khỏe Úc 1977–1978.

visits: số lần khám bác sĩ trong 2 tuần qua

gender: giới tính

age:tuổi theo năm chia cho 100

income: thu nhập hàng năm tính bằng chục ngàn đô

illness: số bệnh trong 2 tuần qua

reduced:Số ngày giảm hoạt động trong 2 tuần qua do bệnh tật hoặc chấn thương.

health:Điểm câu hỏi sức khỏe tổng quát bằng phương pháp của Goldberg.

private:Cá nhân có bảo hiểm y tế tư nhân không?

freepoor:Cá nhân có bảo hiểm y tế miễn phí của chính phủ do thu nhập thấp không?

freerepat: Cá nhân có bảo hiểm y tế miễn phí của chính phủ do lớn tuổi, khuyết tật, cựu chiến binh?

nchronic:Có tình trạng mãn tính không hạn chế hoạt động?

ichronic: Có tình trạng mãn tính hạn chế hoạt động?

6 TUẦN 2

6.1 Thao tác với biến định lượng G - giới tính và biến A- tuổi (chia cho 100)

6.1.1 lấy bảng giá trị vói điều kiện giới tinh là nam

##    V    G    A    I IL R H   P  F  FT   N  L
## 3  1 male 0.19 0.90  3 0 0  no no  no  no no
## 4  1 male 0.19 0.15  1 0 0  no no  no  no no
## 5  1 male 0.19 0.45  2 5 1  no no  no yes no
## 10 1 male 0.19 0.15  1 0 0 yes no  no  no no
## 11 1 male 0.19 0.45  1 0 0  no no  no  no no
## 12 1 male 0.19 0.25  2 0 2  no no yes  no no

xuất 6 giá trị đầu của bảng male

6.1.2 tạo biến old trong d

summary(d$A)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.1900  0.2200  0.3200  0.4064  0.6200  0.7200
d$old<- cut(d$A,breaks = c(0.189,0.3,0.45,0.60,0.72),labels = c("trẻ","trung", "già", "hưu"))

Biến old với được chia làm 4 cấp độ tương ứng với 4 khoảng tuổi [19,30],(30,45],(45,60],(60,72].

quantile(d$A,.7)
##  70% 
## 0.57

có 70% người có độ tuổi dưới 57 tuổi

6.1.3 ta có bảng tần số của old

table(d$old)
## 
##   trẻ trung   già   hưu 
##  2488   573   676  1453

số người khảo sát ở mức trẻ là nhiều nhất với 2488 người và người trung tuổi là ít nhất với 573 người.

6.1.4 tính toán một số tiêu thức thống kê của các giá trị thuộc biến old

## # A tibble: 4 × 2
##   old       m
##   <fct> <dbl>
## 1 trẻ   0.622
## 2 trung 0.901
## 3 già   0.632
## 4 hưu   0.369

thu nhập bình quân hàng năm của của người nhóm trung là lớn nhất với 0.9014 chục ngàn đô, người thuộc nhóm hưu có thu nhập thấp nhất với chủ 0.3688 chục ngàn đô một năm

aggregate(d$H,list(d$old),FUN ="sd")
##   Group.1        x
## 1     trẻ 2.009747
## 2   trung 2.385439
## 3     già 2.331422
## 4     hưu 2.100760

độ lệch chuẩn của nhóm trung là cao nhất với 2.385 và nhóm trẻ là thấp nhất với 2.0097. Ta thấy được nhóm trẻ có sức khỏe ổn định nhất và nhóm trung có nhiều biến động về sức khỏe nhất.

6.2 một số thao tác với biến IL- số bệnh mắc phải trong 2 tuần

6.2.1 lấy 6 giá trị đầu tiên của biến thu nhập có giá trị lớn hơn 0.7 chục ngàn đô và điểm sức khỏe bằng 3.

I3<-head(d[d$I>0.7&d$H==3,])$I
I3<- as.data.frame(I3)
I3$c1<- seq(1,1,length=6)

6.2.2 lấy 6 giá trị đầu tiên của biến thu nhập có giá trị lớn hơn 0.7 chục ngàn đô và điểm sức khỏe bằng 6.

I6<-head(d[d$I>0.7&d$H==6,])$I
I6<- as.data.frame(I6)
I6$c2<-seq(2,2,length=6)

6.2.3 lấy 6 giá trị đầu tiên của biến thu nhập có giá trị lớn hơn 0.7 chục ngàn đô và điểm sức khỏe bằng 9.

I9<-head(d[d$I>0.7&d$H==9,])$I
I9<- as.data.frame(I9)
I9$c3<-seq(3,3,length=6)

6.2.4 lấy 6 giá trị đầu tiên của biến thu nhập có giá trị lớn hơn 0.7 chục ngàn đô và điểm sức khỏe bằng 12.

I12<-head(d[d$I>0.7&d$H==12,])$I
I12<- as.data.frame(I12)
I12$c4<-seq(4,4,length=5)

6.2.5 nối I3,I6,I9,I12 lại với nhau theo hàng

colnames(I12)<- colnames(I3)
colnames(I9)<- colnames(I3)
colnames(I6)<- colnames(I3)
tong<- rbind(I3,I6,I9,I12)

đổi tên các cột I12,I9,I6 thành I3 và nối với nhau theo hàng tạo thành tập data có tên là tong

fct<- factor(tong$c1,levels=c(1,2,3,4),labels = c('thấp','trung','khá','cao'))
tong$cap<-fct

đặt tên cho các bậc 1,2,3,4 trong cột c1 lần lượt thành: thấp, trung, khá ,cao tạo thành cột có tên là cap.

str(tong)
## 'data.frame':    23 obs. of  3 variables:
##  $ I3 : num  0.75 0.75 0.75 0.75 1.1 1.5 0.75 0.9 0.9 1.5 ...
##  $ c1 : num  1 1 1 1 1 1 2 2 2 2 ...
##  $ cap: Factor w/ 4 levels "thấp","trung",..: 1 1 1 1 1 1 2 2 2 2 ...

ta có tập data “tong” gồm 30 người có đều có thu nhập hàng năm trên 0.7 chục nghìn dồ và phân cấp điểm số khỏe tương ứng .

7 TUẦN 1 - PHÂN TÍCH DATASET DoctorVisits CỦA PACKAGE AER

7.1 lấy dữ liệu của DoctorVisits và đổi tên biến

## 'data.frame':    5190 obs. of  12 variables:
##  $ visits   : num  1 1 1 1 1 1 1 1 1 1 ...
##  $ gender   : Factor w/ 2 levels "male","female": 2 2 1 1 1 2 2 2 2 1 ...
##  $ age      : num  0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 ...
##  $ income   : num  0.55 0.45 0.9 0.15 0.45 0.35 0.55 0.15 0.65 0.15 ...
##  $ illness  : num  1 1 3 1 2 5 4 3 2 1 ...
##  $ reduced  : num  4 2 0 0 5 1 0 0 0 0 ...
##  $ health   : num  1 1 0 0 1 9 2 6 5 0 ...
##  $ private  : Factor w/ 2 levels "no","yes": 2 2 1 1 1 1 1 1 2 2 ...
##  $ freepoor : Factor w/ 2 levels "no","yes": 1 1 1 1 1 1 1 1 1 1 ...
##  $ freerepat: Factor w/ 2 levels "no","yes": 1 1 1 1 1 1 1 1 1 1 ...
##  $ nchronic : Factor w/ 2 levels "no","yes": 1 1 1 1 2 2 1 1 1 1 ...
##  $ lchronic : Factor w/ 2 levels "no","yes": 1 1 1 1 1 1 1 1 1 1 ...

nhập dữ liệu của biến Doctorvisits và đổi tên thành d

names(d)<- c('V','G','A','I','IL','R','H','P','F','FT','N','L')

đổi tên các biến trong d thành các kí hiệu tương ứng và thực hiện một vài thao tác

d[125,3]
## [1] 0.22

dữ liệu ở dòng 125 cột 3 có giá trị là

7.2 xử lý dữ liệu biến I- thu nhập hàng năm

###gọi In là tập các giá trị của biến I trong d, gọi In045 là tập thu nhập hàng năm có giá trị lớn hơn 0.45 chục nghìn usd

In<- d$I
In045<- In[In>0.45]

7.2.1 In1045 là tập thu nhập hàng năm có giá trị từ (0.45;1)

In1045<-In[In>0.45&In<1]

7.2.2 dữ liệu số 5 trong tập dữ liệu In1045 là

In045[5]
## [1] 0.55

7.2.3 phân tổ và lập bảng tần số cho biến thu nhập hàng năm - I.

table(cut(In,4))
## 
## (-0.0015,0.375]    (0.375,0.75]     (0.75,1.12]      (1.12,1.5] 
##            2100            1763             950             377

Trong bảng tần số trên ta thấy được số lượng người giảm dẫn qua từng tổ, phần lớn nằm trong khoảng thu nhập dưới 0.375 nghìn đ chiếm 2100 người trên tổng số.

Thu nhập nằm trong (1.12;1.5] chiếm ít nhất chỉ 377 người và chỉ xấp xỉ 0.2 lần số người có thu nhập dươi s0.375 và chỉ bằng khoảng 0.4 lần số người có thu nhập từ (0.75;1.12].

7.3 xử lý dữ liệu của biến H- tổng điểm sức khỏe

7.3.1 chi tổ và tạo bảng tần số cho biến H

table(cut(d$H,4))
## 
## (-0.012,3]      (3,6]      (6,9]     (9,12] 
##       4568        423        135         64

số lượng người có điểm dưới 3 chiếm nhiều nhất lên đến khoảng 88% trên tổng số khảo sát số lượng người có điểm sức khỏe ở mức trên 6 điểm chiếm rất ít chỉ khoảng 199 người chiếm khoảng chưa đến 4% trên tổng số khảo sát.

7.3.2 bảng tần số của hai biến ” thu nhập trung bình năm ” và ” điểm sức khỏe”

table(cut(d$I,4),cut(d$H,4))
##                  
##                   (-0.012,3] (3,6] (6,9] (9,12]
##   (-0.0015,0.375]       1790   200    75     35
##   (0.375,0.75]          1580   128    38     17
##   (0.75,1.12]            855    73    14      8
##   (1.12,1.5]             343    22     8      4

nhóm ngươi có thu nhập dưới 0.375 chục nghìn đô và điểm sức khỏe dưới 3 điểm chiếm số lượng lớn nhất

ở các tổ điểm sức khỏe ở mức cao như từ (6;9] và từ (9;12] phần lớn đều có mức lương ở mức thấp - dưới 0.375 chục nghìn đô ( chiếm lần lượt khoảng 55,56% và 54,7% ).

ở từng nhóm tổ điểm sức khỏe, số người có xu hướng giảm dần khi mức thu nhập tăng lên.

=> ta thấy được mức thu nhập chưa thực sự ảnh hưởng đến điểm sức khỏe của cư dân úc tạp thời điểm lúc bấy giờ.

7.4 biến IL và biến R

summary(d$IL)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   0.000   1.000   1.432   2.000   5.000
IL3R10<- d[d$IL>3&d$R==5,]

số bệnh mắc phải trong 2 tuần qua có giá trị từ [0;9]. và trong vòng 2 tuần có khoảng 50% người mắc nhiều hơn 1 căn bệnh.

summary(d$R)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.0000  0.0000  0.0000  0.8619  0.0000 14.0000

số ngày người bệnh bị hạn chế hoạt động có giá trị [0;14] ngày và trung bình số ngày bị hạn chế hoạt động là 0.86 ngày, con số rất nhỏ so với khoảng ngày nghỉ khoảng sát được nhiều nhất là 14 ngày.

IL3R10<- d[d$IL>3&d$R==5,]

gọi biến IL3R10 là biến của những người mắc nhiều hơn 3 bệnh trong 2 tuần và số ngày bị giảm hoạt động là 5 ngày. Ta thấy có 7 quan sát thỏa mãn 2 điều kiện trên.

IL24<-d$IL[d$IL>=2&d$IL<=4]

IL24 cho thấy có 1762 người mắc từ 2 đến 4 bệnh trong vòng 2 tuần.

7.4.1 trực quan về hai biến số bệnh và số ngày bị hạn chế hoạt động trogn 2 tuần

ggplot(d,aes(d$IL,d$R))+geom_point()

số ngày bị hạn chế hoạt động trong 2 tuần của các nhóm có số bệnh từ 1 đến 5 đều phân bố rải đều từ 0 đến 14 ngày nghỉ. ta chưa thấy được sự ảnh hưởng của số bệnh mắc phải với số ngày bị giảm lao động.

7.5 Thêm biến vào dataset d

d$lgIL<- log(d$IL)

thêm vào d biến lgIL với lgIL là tập các giá trị logarit cơ số 10 của biến IL - số bệnh của một người mắc phải trong 2 tuần

d$VIL<- d$V+d$IL

thêm vào d biến VIL với VIL là tập giá trị của tổng hai biến số lần đến bác sĩ và số bệnh mắc phải trong 2 tuần