Chạy mô hình với các phân phối khác nhau của biến đầu vào.
Dữ liệu gồm 52 quan sát từ quý 1 năm 2010 đến quý 4 năm 2022 gồm 6 biến:
CN: Công nghiệp
KK: Khai khoáng
CNCBCT: Công nghiệp chế biến, chế tạo
SXPP: Sản xuất và phân phối điện, khí đốt, nước nóng, hơi nước và điều hòa không khí
CC: Cung cấp nước, hoạt động quản lý và xử lý rác thải, nước thải
XD: Xây dựng
setwd("D:/HỌC TẬP/Mô phỏng ngẫu nhiên")
library(xlsx)
library(readxl)
## Warning: package 'readxl' was built under R version 4.2.3
library(data.table)
## Warning: package 'data.table' was built under R version 4.2.3
d <- read.xlsx("GDP_MPNN.xlsx",1)
data.table(d)
## NA. CN KK CNCBCT SXPP CC XD
## 1: Q1 2010 27.80233 7.276075 17.72502 2.396061 0.4051811 5.518612
## 2: Q2 2010 26.75083 6.744417 17.06550 2.518298 0.4226227 6.085374
## 3: Q3 2010 26.97934 6.655979 17.36618 2.516098 0.4410775 6.188818
## 4: Q4 2010 25.52245 6.524900 16.39179 2.153805 0.4519643 7.249104
## 5: Q1 2011 29.69929 7.859633 19.33079 2.136214 0.3726605 5.086161
## 6: Q2 2011 29.79878 8.670915 18.52638 2.218944 0.3825372 5.293760
## 7: Q3 2011 29.26935 6.657590 19.74397 2.433711 0.4340879 5.254924
## 8: Q4 2011 27.80478 8.007136 17.24470 2.072588 0.4803541 6.158234
## 9: Q1 2012 31.43137 7.133887 21.70656 2.191048 0.3998756 4.703270
## 10: Q2 2012 31.89412 8.970369 20.28061 2.242091 0.4010558 5.225348
## 11: Q3 2012 29.68559 6.450603 20.17093 2.618891 0.4451643 5.156563
## 12: Q4 2012 29.25116 7.527098 19.01356 2.198952 0.5115411 6.119646
## 13: Q1 2013 30.76942 6.487755 21.44801 2.416436 0.4172150 4.609639
## 14: Q2 2013 31.39315 7.787355 20.63107 2.552621 0.4221004 5.043063
## 15: Q3 2013 30.67386 6.215322 21.35042 2.661172 0.4469455 4.860839
## 16: Q4 2013 29.15255 6.872262 19.37957 2.400505 0.5002216 5.823399
## 17: Q1 2014 30.51610 6.610706 20.73667 2.739031 0.4296976 4.609448
## 18: Q2 2014 31.05277 7.409740 20.28529 2.926901 0.4308440 4.933733
## 19: Q3 2014 30.47767 6.060404 21.04597 2.924489 0.4468084 4.947560
## 20: Q4 2014 29.00402 6.439169 19.43414 2.613998 0.5167128 5.667065
## 21: Q1 2015 29.23257 4.435080 21.35291 2.986814 0.4577655 4.749028
## 22: Q2 2015 29.45609 4.842444 20.90392 3.249980 0.4597477 5.185735
## 23: Q3 2015 29.64403 4.313458 21.52479 3.328762 0.4770228 5.255187
## 24: Q4 2015 27.01316 3.453826 20.07873 2.928111 0.5524936 6.524618
## 25: Q1 2016 29.07729 3.553725 21.68888 3.351740 0.4829513 4.734969
## 26: Q2 2016 29.03322 3.605723 21.55285 3.412853 0.4617858 5.306063
## 27: Q3 2016 29.37279 3.330322 22.16920 3.394086 0.4791873 5.318349
## 28: Q4 2016 26.97445 2.881695 20.57187 2.973055 0.5478269 6.631873
## 29: Q1 2017 29.17387 3.735911 21.48111 3.489877 0.4669709 4.711940
## 30: Q2 2017 29.56666 3.421134 22.23031 3.446898 0.4683159 5.381099
## 31: Q3 2017 30.68682 3.192556 23.42899 3.588540 0.4767325 5.427479
## 32: Q4 2017 29.72389 2.842052 23.19806 3.151522 0.5322520 6.659747
## 33: Q1 2018 30.47793 4.029690 22.41827 3.557580 0.4723820 4.800841
## 34: Q2 2018 30.59450 3.601389 22.81979 3.690668 0.4826517 5.609320
## 35: Q3 2018 31.93339 3.395256 24.61641 3.427264 0.4944588 5.638618
## 36: Q4 2018 30.31750 3.105171 23.47818 3.197829 0.5363122 6.626978
## 37: Q1 2019 30.68016 3.463981 22.83401 3.900762 0.4814111 4.839561
## 38: Q2 2019 30.96742 3.146650 23.46250 3.871339 0.4869268 5.669476
## 39: Q3 2019 32.18733 2.937786 24.93589 3.806626 0.5070302 5.760281
## 40: Q4 2019 29.97142 2.528621 23.79019 3.120956 0.5316565 6.978980
## 41: Q1 2020 30.34627 2.901958 22.88656 4.074066 0.4836864 4.908820
## 42: Q2 2020 30.11332 2.624843 22.77702 4.204425 0.5070250 5.918180
## 43: Q3 2020 31.76856 2.190370 24.95579 4.102598 0.5197984 5.890936
## 44: Q4 2020 30.67356 1.974749 24.88840 3.310571 0.4998360 7.065943
## 45: Q1 2021 30.57364 2.821993 23.22615 4.048846 0.4766484 4.908126
## 46: Q2 2021 31.35697 2.641854 23.97584 4.217828 0.5214420 5.870273
## 47: Q3 2021 32.86119 2.458709 25.44723 4.423421 0.5318323 6.055922
## 48: Q4 2021 31.28222 1.920831 25.62377 3.263171 0.4744490 6.854210
## 49: Q1 2022 32.02314 3.092619 24.21416 4.242842 0.4735109 5.054937
## 50: Q2 2022 32.81631 3.197458 24.98466 4.130962 0.5032227 6.050760
## 51: Q3 2022 32.78072 2.844548 25.02685 4.407470 0.5018547 6.490710
## 52: Q4 2022 30.79383 2.243662 24.76535 3.311026 0.4737833 6.989623
## NA. CN KK CNCBCT SXPP CC XD
library(fBasics)
## Warning: package 'fBasics' was built under R version 4.2.3
basicStats(d$CN)
## X..d.CN
## nobs 52.000000
## NAs 0.000000
## Minimum 25.522454
## Maximum 32.861191
## 1. Quartile 29.246508
## 3. Quartile 30.988757
## Mean 30.046214
## Median 30.331883
## Sum 1562.403123
## SE Mean 0.223032
## LCL Mean 29.598458
## UCL Mean 30.493970
## Variance 2.586659
## Stdev 1.608309
## Skewness -0.602237
## Kurtosis 0.213309
library(fBasics)
basicStats(d$CNCBCT)
## X..d.CNCBCT
## nobs 52.000000
## NAs 0.000000
## Minimum 16.391785
## Maximum 25.623769
## 1. Quartile 20.253186
## 3. Quartile 23.466423
## Mean 21.734342
## Median 21.620866
## Sum 1130.185762
## SE Mean 0.331439
## LCL Mean 21.068951
## UCL Mean 22.399732
## Variance 5.712282
## Stdev 2.390038
## Skewness -0.309763
## Kurtosis -0.730576
library(fBasics)
basicStats(d$CC)
## X..d.CC
## nobs 52.000000
## NAs 0.000000
## Minimum 0.372661
## Maximum 0.552494
## 1. Quartile 0.446397
## 3. Quartile 0.502197
## Mean 0.472724
## Median 0.476690
## Sum 24.581638
## SE Mean 0.005888
## LCL Mean 0.460903
## UCL Mean 0.484544
## Variance 0.001803
## Stdev 0.042458
## Skewness -0.294518
## Kurtosis -0.494198
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.2.3
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:data.table':
##
## between, first, last
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
n_bins <- 10
breaks <- quantile(d$KK, probs = seq(0, 1, length.out = n_bins + 1), type = 1, na.rm = TRUE)
kkg <- sapply(2:length(breaks), function(i) sample(d$KK[d$KK >= breaks[i - 1] & d$KK <= breaks[i]], 10, replace = TRUE))
K <- table(kkg)
Kk <- as.data.frame(K) %>%
mutate(Tan_suat = Freq / sum(Freq))
Kk
## kkg Freq Tan_suat
## 1 1.97474913117254 1 0.01
## 2 2.19037016484278 2 0.02
## 3 2.24366243785466 2 0.02
## 4 2.45870893795037 2 0.02
## 5 2.52862056159668 5 0.05
## 6 2.62484344167525 1 0.01
## 7 2.64185419294828 1 0.01
## 8 2.82199267200874 1 0.01
## 9 2.84205178770792 4 0.04
## 10 2.84454830489354 4 0.04
## 11 2.88169508218852 2 0.02
## 12 2.90195809364746 2 0.02
## 13 2.93778579138361 2 0.02
## 14 3.09261934876639 1 0.01
## 15 3.10517103176282 1 0.01
## 16 3.14664992520624 4 0.04
## 17 3.19255628017669 1 0.01
## 18 3.33032150313402 2 0.02
## 19 3.39525603420142 6 0.06
## 20 3.46398112064342 1 0.01
## 21 3.55372534567234 4 0.04
## 22 3.60138947622404 2 0.02
## 23 3.60572294915913 1 0.01
## 24 3.73591123782747 2 0.02
## 25 4.02968977795517 2 0.02
## 26 4.31345833990272 3 0.03
## 27 4.84244445505115 1 0.01
## 28 6.06040444761687 3 0.03
## 29 6.21532187544485 2 0.02
## 30 6.43916904657199 2 0.02
## 31 6.45060306543078 1 0.01
## 32 6.48775540590923 2 0.02
## 33 6.52489964192492 1 0.01
## 34 6.61070647937773 3 0.03
## 35 6.65597943580786 4 0.04
## 36 6.65758990825106 1 0.01
## 37 6.74441653045645 3 0.03
## 38 6.87226183056873 1 0.01
## 39 7.13388654804438 2 0.02
## 40 7.27607503110032 2 0.02
## 41 7.40973976407404 1 0.01
## 42 7.52709766389301 4 0.04
## 43 7.85963287752904 3 0.03
## 44 8.67091503086552 2 0.02
## 45 8.97036938810019 3 0.03
library(dplyr)
n_bins <- 10
breaks <- quantile(d$SXPP, probs = seq(0, 1, length.out = n_bins + 1), type = 1, na.rm = TRUE)
sx <- sapply(2:length(breaks), function(i) sample(d$SXPP[d$SXPP >= breaks[i - 1] & d$SXPP <= breaks[i]], 10, replace = TRUE))
S <- table(sx)
Sx <- as.data.frame(S) %>%
mutate(Tan_suat = Freq / sum(Freq))
Sx
## sx Freq Tan_suat
## 1 2.15380480044362 1 0.01
## 2 2.19104826362534 1 0.01
## 3 2.19895231629668 6 0.06
## 4 2.21894399118426 4 0.04
## 5 2.24209081149811 1 0.01
## 6 2.39606075386324 2 0.02
## 7 2.40050481276904 4 0.04
## 8 2.43371067088471 3 0.03
## 9 2.51609754688072 4 0.04
## 10 2.5182978121541 1 0.01
## 11 2.55262124062935 2 0.02
## 12 2.61889137813463 6 0.06
## 13 2.66117191348481 2 0.02
## 14 2.92811096947551 4 0.04
## 15 2.97305489385597 2 0.02
## 16 2.98681368388827 1 0.01
## 17 3.12095626761687 3 0.03
## 18 3.15152237782226 1 0.01
## 19 3.19782920657643 4 0.04
## 20 3.26317077436855 2 0.02
## 21 3.31057120569083 2 0.02
## 22 3.32876151068537 2 0.02
## 23 3.35173993702559 4 0.04
## 24 3.39408641098406 2 0.02
## 25 3.41285302107156 1 0.01
## 26 3.42726380961728 1 0.01
## 27 3.44689779613138 3 0.03
## 28 3.48987650424477 1 0.01
## 29 3.55758040201798 2 0.02
## 30 3.58853953069416 1 0.01
## 31 3.69066752906663 4 0.04
## 32 3.80662598727375 3 0.03
## 33 3.90076233030699 3 0.03
## 34 4.07406596990505 1 0.01
## 35 4.10259846919176 4 0.04
## 36 4.13096207790727 2 0.02
## 37 4.20442527948733 5 0.05
## 38 4.21782829225471 2 0.02
## 39 4.40747024247083 1 0.01
## 40 4.42342102715324 2 0.02
library(dplyr)
n_bins <- 10
breaks <- quantile(d$XD, probs = seq(0, 1, length.out = n_bins + 1), type = 1, na.rm = TRUE)
xaydung <- sapply(2:length(breaks), function(i) sample(d$XD[d$XD >= breaks[i - 1] & d$XD <= breaks[i]], 10, replace = TRUE))
X <- table(xaydung)
Xd <- as.data.frame(X) %>%
mutate(Tan_suat = Freq / sum(Freq))
Xd
## xaydung Freq Tan_suat
## 1 4.60944800824035 3 0.03
## 2 4.60963901748547 1 0.01
## 3 4.70326981177233 1 0.01
## 4 4.71193988910874 1 0.01
## 5 4.73496909417757 2 0.02
## 6 4.74902765309405 3 0.03
## 7 4.83956113499323 2 0.02
## 8 4.86083870371692 2 0.02
## 9 4.90812640376935 2 0.02
## 10 4.90881998434628 4 0.04
## 11 4.93373262353868 1 0.01
## 12 4.94755979332598 4 0.04
## 13 5.04306260223245 2 0.02
## 14 5.0549374862877 2 0.02
## 15 5.08616054360378 1 0.01
## 16 5.15656293376329 3 0.03
## 17 5.18573466785971 3 0.03
## 18 5.22534845930231 1 0.01
## 19 5.25492422210561 1 0.01
## 20 5.25518659722746 3 0.03
## 21 5.29376030400241 1 0.01
## 22 5.30606260262954 6 0.06
## 23 5.31834866586471 1 0.01
## 24 5.5186119455827 1 0.01
## 25 5.63861799100156 4 0.04
## 26 5.66947559458313 4 0.04
## 27 5.76028099735905 3 0.03
## 28 5.82339872880876 1 0.01
## 29 5.87027302648059 4 0.04
## 30 5.89093646773286 1 0.01
## 31 5.91818006317723 1 0.01
## 32 6.05075983543772 2 0.02
## 33 6.05592220052127 4 0.04
## 34 6.08537412367017 1 0.01
## 35 6.11964647587315 2 0.02
## 36 6.15823362860776 1 0.01
## 37 6.18881802299602 5 0.05
## 38 6.62697776316361 2 0.02
## 39 6.63187296744266 4 0.04
## 40 6.65974654307538 3 0.03
## 41 6.854209648257 1 0.01
## 42 6.97898022102724 1 0.01
## 43 6.98962291669853 1 0.01
## 44 7.06594290519492 3 0.03
## 45 7.24910423600482 1 0.01
# Công nghiệp
cn <- rnorm(10000, mean = 30.046214, sd = 1.608309)
# Khai khoáng
prob1 <- Kk$Tan_suat
khaikhoang1 <- sample(Kk$kkg, 10000, replace = TRUE , prob = prob1)
khaikhoang2 <- as.character(khaikhoang1)
kk <- as.numeric(khaikhoang2)
# Công nghiệp chế biến, chế tạo
cb <- rnorm(10000, mean = 21.734342, sd = 2.390038)
# Sản xuất và phân phối điện, khí đốt, nước nóng, hơi nước và điều hòa không khí
prob2 <- Sx$Tan_suat
sanxuat1 <- sample(Sx$sx, 10000, replace = TRUE , prob = prob2)
sanxuat2 <- as.character(sanxuat1)
sxpp <- as.numeric(sanxuat2)
# Cung cấp nước, hoạt động quản lý và xử lý rác thải, nước thải
cc <- rnorm(10000, mean = 0.472724, sd = 0.042458)
# Xây dựng
prob3 <- Xd$Tan_suat
xaydung1 <- sample(Xd$xaydung, 10000, replace = TRUE , prob = prob3)
xaydung2 <- as.character(xaydung1)
xd <- as.numeric(xaydung2)
GDP <- cn + kk + cb + sxpp + cc + xd
hist(GDP)
summary(GDP)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 52.45 63.17 65.73 65.74 68.28 80.37
GDPthap <- GDP[GDP < 60]
GDPvua <- GDP[GDP >= 60 & GDP <= 70]
GDPcao <- GDP[GDP > 70]
table(cut(GDP,breaks = 3))
##
## (52.4,61.8] (61.8,71.1] (71.1,80.4]
## 1433 7793 774
table(cut(GDP,3, labels = c('thap','vua','cao')))
##
## thap vua cao
## 1433 7793 774
length(GDPthap)/length(GDP)
## [1] 0.0557
length(GDPvua)/length(GDP)
## [1] 0.8216
length(GDPcao)/length(GDP)
## [1] 0.1227
Xây dụng mô hình cho đối tượng cần mô phỏng và giải thích mô hình.
Tổng sản phẩm trong nước là giá trị sản phẩm vật chất và dịch vụ cuối cùng được tạo ra của nền kinh tế trong một khoảng thời gian nhất định (quý, năm). Điều này có nghĩa trong GDP không tính các giá trị sản phẩm vật chất và dịch vụ đã sử dụng ở các khâu trung gian trong quá trình sản xuất tạo ra sản phẩm. GDP biểu thị kết quả sản xuất do các đơn vị thường trú tạo ra trong lãnh thổ kinh tế của một quốc gia.
Theo tiêu chuẩn phân loại ngành của Liên Hợp Quốc, có thể phân loại thành 3 nhóm ngành lớn:
Khu vực I: Nông nghiệp, lâm nghiệp và ngư nghiệp.
Khu vực II: Công nghiệp, xây dựng
Khu vực III: Dịch vụ
Cơ cấu ngành công nghiệp nước ta tương đối đa dạng bao gồm: Công nghiệp; khai khoáng; công nghiệp chế biến, chế tạo; sản xuất và phân phối điện, khí đốt, nước nóng, hơi nước và điều hòa không khí; Cung cấp nước, hoạt động quản lý và xử lý rác thải, nước thải; Xây dựng.
Tổng sản phẩm trong nước theo giá hiện hành phân theo nhóm ngành Công nghiệp và xây dựng, công thức tính:
Tổng sản phẩm trong nước nhóm ngành CNXD = Công nghiệp + Khai khoáng + Công nghiệp chế biến, chế tạo + Sản xuất và phân phối điện, khí đốt, nước nóng, hơi nước và điều hòa không khí + Cung cấp nước, hoạt động quản lý và xử lý rác thải, nước thải + Xây dựng.
Xác định phân phối cho các biến (ngẫu nhiên) đầu vào, giải thích.
CN <- d$CN
KK <- d$KK
CNCBCT <- d$CNCBCT
SXPP <- d$SXPP
CC <- d$CC
XD <- d$XD
hist(CN, col = 'pink')
Kiểm định Shapiro-Wilk Test
Giả thuyết:
\(H_0\): CN tuân theo phân phối chuẩn
\(H_1\): CN không tuân theo phân phối chuẩn
C <- as.data.frame(CN)
shapiro.test(CN)
##
## Shapiro-Wilk normality test
##
## data: CN
## W = 0.9569, p-value = 0.05749
Kết quả kiểm định cho thấy p- value = 0.05749 > 0.05 nên chưa đủ cơ sở bác bỏ \(H_0\). Vậy CN tuân theo phân phối chuẩn.
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.2.3
d |> ggplot() +
geom_qq(aes(sample = CN), color = 'red') +
geom_qq_line(aes(sample = CN), color = 'green')
library(fBasics)
basicStats(KK)
## KK
## nobs 52.000000
## NAs 0.000000
## Minimum 1.920831
## Maximum 8.970369
## 1. Quartile 2.928829
## 3. Quartile 6.622025
## Mean 4.674834
## Median 3.603556
## Sum 243.091381
## SE Mean 0.288557
## LCL Mean 4.095532
## UCL Mean 5.254137
## Variance 4.329790
## Stdev 2.080815
## Skewness 0.457590
## Kurtosis -1.327147
hist(KK, col = 'pink')
Kiểm định Shapiro-Wilk Test
Giả thuyết:
\(H_0\): KK tuân theo phân phối chuẩn
\(H_1\): KK không tuân theo phân phối chuẩn
shapiro.test(KK)
##
## Shapiro-Wilk normality test
##
## data: KK
## W = 0.88306, p-value = 0.0001037
Kết quả kiểm định cho thấy p- value = 0.0001037 < 0.05 nên ta bác bỏ \(H_0\). Vậy KK không tuân theo phân phối chuẩn.
library(ggplot2)
d |> ggplot() +
geom_qq(aes(sample = KK), color = 'red') +
geom_qq_line(aes(sample = KK), color = 'green')
Giả thuyết
\(H_0\): KK tuân theo phân phối mũ
\(H_1\): KK không tuân theo phân phối mũ
ks.test(KK, y = 'pexp')
##
## Exact one-sample Kolmogorov-Smirnov test
##
## data: KK
## D = 0.85351, p-value < 2.2e-16
## alternative hypothesis: two-sided
Kết quả kiểm định cho thấy p- value < 0.05 nên ta bác bỏ \(H_0\). Vậy KK không tuân theo phân phối mũ.
ks.test(KK, y = 'plnorm')
##
## Exact one-sample Kolmogorov-Smirnov test
##
## data: KK
## D = 0.74504, p-value < 2.2e-16
## alternative hypothesis: two-sided
Kết quả kiểm định cho thấy p- value < 0.05 nên ta bác bỏ \(H_0\). Vậy KK không tuân theo phân phối loga chuẩn.
hist(CNCBCT, col = 'pink')
Giả thuyết:
\(H_0\): CNCBCT tuân theo phân phối chuẩn
\(H_1\): CNCBCT không tuân theo phân phối chuẩn
B <- as.data.frame(CNCBCT)
shapiro.test(CNCBCT)
##
## Shapiro-Wilk normality test
##
## data: CNCBCT
## W = 0.96832, p-value = 0.1791
Kết quả kiểm định cho thấy p- value = 0.1791 > 0.05 nên chưa đủ cơ sở bác bỏ \(H_0\). Vậy CNCBCT tuân theo phân phối chuẩn.
library(ggplot2)
d |> ggplot() +
geom_qq(aes(sample = CNCBCT), color = 'red') +
geom_qq_line(aes(sample = CNCBCT), color = 'green')
library(fBasics)
basicStats(SXPP)
## SXPP
## nobs 52.000000
## NAs 0.000000
## Minimum 2.072588
## Maximum 4.423421
## 1. Quartile 2.544040
## 3. Quartile 3.614072
## Mean 3.164314
## Median 3.223905
## Sum 164.544342
## SE Mean 0.095360
## LCL Mean 2.972872
## UCL Mean 3.355757
## Variance 0.472860
## Stdev 0.687648
## Skewness 0.125870
## Kurtosis -1.158070
hist(SXPP, col = 'pink')
Kiểm định Shapiro-Wilk Test
Giả thuyết:
\(H_0\): SXPP tuân theo phân phối chuẩn
\(H_1\): SXPP không tuân theo phân phối chuẩn
shapiro.test(SXPP)
##
## Shapiro-Wilk normality test
##
## data: SXPP
## W = 0.9534, p-value = 0.04065
` Kết quả kiểm định cho thấy p- value = 0.04065 < 0.05 nên ta bác bỏ \(H_0\). Vậy SXPP không tuân theo phân phối chuẩn.
library(ggplot2)
d |> ggplot() +
geom_qq(aes(sample = SXPP), color = 'red') +
geom_qq_line(aes(sample = SXPP), color = 'green')
Giả thuyết
\(H_0\): SXPP tuân theo phân phối mũ
\(H_1\): SXPP không tuân theo phân phối mũ
ks.test(SXPP, y = 'pexp')
##
## Exact one-sample Kolmogorov-Smirnov test
##
## data: SXPP
## D = 0.87414, p-value < 2.2e-16
## alternative hypothesis: two-sided
Kết quả kiểm định cho thấy p- value < 0.05 nên ta bác bỏ \(H_0\). Vậy SXPP không tuân theo phân phối mũ.
ks.test(SXPP, y = 'plnorm')
##
## Exact one-sample Kolmogorov-Smirnov test
##
## data: SXPP
## D = 0.76694, p-value < 2.2e-16
## alternative hypothesis: two-sided
Kết quả kiểm định cho thấy p- value < 0.05 nên ta bác bỏ \(H_0\). Vậy SXPP không tuân theo phân phối loga chuẩn.
hist(CC, col = 'pink')
Kiểm định Shapiro-Wilk Test
Giả thuyết:
\(H_0\): CC tuân theo phân phối chuẩn
\(H_1\): CC không tuân theo phân phối chuẩn
Cc <- as.data.frame(CC)
shapiro.test(CC)
##
## Shapiro-Wilk normality test
##
## data: CC
## W = 0.98178, p-value = 0.6039
Kết quả kiểm định cho thấy p- value = 0.6039 > 0.05 nên chưa đủ cơ sở bác bỏ \(H_0\). Vậy CC tuân theo phân phối chuẩn.
library(ggplot2)
d |> ggplot() +
geom_qq(aes(sample = CC), color = 'red') +
geom_qq_line(aes(sample = CC), color = 'green')
library(fBasics)
basicStats(XD)
## XD
## nobs 52.000000
## NAs 0.000000
## Minimum 4.609448
## Maximum 7.249104
## 1. Quartile 5.019187
## 3. Quartile 6.093942
## Mean 5.623137
## Median 5.473046
## Sum 292.403139
## SE Mean 0.102082
## LCL Mean 5.418199
## UCL Mean 5.828076
## Variance 0.541879
## Stdev 0.736124
## Skewness 0.515979
## Kurtosis -0.863092
hist(XD, col = 'pink')
Kiểm định Shapiro-Wilk Test
Giả thuyết:
\(H_0\): XD tuân theo phân phối chuẩn
\(H_1\): XD không tuân theo phân phối chuẩn
shapiro.test(XD)
##
## Shapiro-Wilk normality test
##
## data: XD
## W = 0.93825, p-value = 0.009511
Kết quả kiểm định cho thấy p- value = 0.002291 < 0.05 nên ta bác bỏ \(H_0\). Vậy XD không tuân theo phân phối chuẩn.
library(ggplot2)
d |> ggplot() +
geom_qq(aes(sample = XD), color = 'red') +
geom_qq_line(aes(sample = XD), color = 'green')
Giả thuyết
\(H_0\): XD tuân theo phân phối mũ
\(H_1\): XD không tuân theo phân phối mũ
ks.test(XD, y = 'pexp')
##
## Exact one-sample Kolmogorov-Smirnov test
##
## data: XD
## D = 0.99004, p-value < 2.2e-16
## alternative hypothesis: two-sided
Kết quả kiểm định cho thấy p- value < 0.05 nên ta bác bỏ \(H_0\). Vậy XD không tuân theo phân phối mũ.
ks.test(XD, y = 'plnorm')
##
## Exact one-sample Kolmogorov-Smirnov test
##
## data: XD
## D = 0.93676, p-value < 2.2e-16
## alternative hypothesis: two-sided
Kết quả kiểm định cho thấy p- value < 0.05 nên ta bác bỏ \(H_0\). Vậy XD không tuân theo phân phối loga chuẩn.
Chọn và giải thích về đối tượng (vấn đề) cần mô phỏng (có ít nhất 6 biến đầu vào)
Theo Bộ Công Thương, trong 10 năm (2011-2020), công nghiệp là ngành có tốc độ tăng trưởng cao nhất trong các ngành kinh tế quốc dân với đóng góp xấp xỉ 30% vào GDP và trở thành ngành xuất khẩu chủ lực của đất nước, góp phần đưa Việt Nam từ vị trí thứ 50 (năm 2010) lên vị trí thứ 22 (năm 2019) trong các quốc gia xuất khẩu lớn nhất thế giới.
Bộ Công Thương đặt ra mục tiêu đến năm 2030 Việt Nam là nước có công nghiệp hiện đại, thuộc nhóm quốc gia có năng lực cạnh tranh công nghiệp cao, nhóm 15 quốc gia xuất khẩu lớn nhất thế giới.
Nhận thấy tiềm năng tăng trưởng kinh tế Việt Nam thuộc thuộc nhiều vào nhóm ngành Công nghiệp và xây dựng, tôi sẽ đi mô phỏng các yếu tố cấu thành nhóm ngành này như: Công nghiệp; Khai khoáng; Công nghiệp chế biến, chế tạo; Sản xuất và phân phối ; Cung cấp ; xây dựng.
Hệ thống phổ biến dữ liệu chung tăng cường (e-GDDS) Trang dữ liệu tóm tắt quốc gia (NSDP) – VIỆT NAM http://nsdp.gso.gov.vn/
Dữ liệu gồm 52 quan sát từ quý 1 năm 2010 đến quý 4 năm 2022 gồm 6 biến:
CN: Công nghiệp
KK: Khai khoáng
CNCBCT: Công nghiệp chế biến, chế tạo
SXPP: Sản xuất và phân phối điện, khí đốt, nước nóng, hơi nước và điều hòa không khí
CC: Cung cấp nước, hoạt động quản lý và xử lý rác thải, nước thải
XD: Xây dựng
Mô phỏng ít nhất 5 biến ngẫu nhiên (có phân phối xác suất khác nhau), mô phỏng, vẽ đồ thị, tính toàn các đặc trưng đo lường và giải thích ý nghĩa.
X ∼ Unif{1, 2, · · · , n} là mô hình đều rời rạc trên tập hợp số tự nhiên từ 1, 2, · · · , n. Hàm P(X = x) = 1/n được gọi là hàm xác suất khối lượng của biến X tại điểm x.
cpp1 <- runif(n = 1000,min = 8,max = 10) #Sinh 1000 biến cpp1 có phân phối đều trong khoảng [8,10]
hist(cpp1, main = "Uniform Distribution", xlab = "ccp1")
summary(cpp1)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 8.009 8.532 9.050 9.026 9.505 10.000
Phân phối chuẩn tắc (standard normal distribution) là phân phối chuẩn với giá trị trung bình (μ) bằng 0 và độ lệch chuẩn (σ) bằng 1. Phân phối chuẩn còn được gọi là đường cong chuông (bell curve) vì đồ thị của mật độ xác suất có dạng chuông.
cpp2 <- rnorm(100) # Sinh 100 biến cpp2 có phân phối chuẩn trung bình 0 và độ lệch tiêu chuẩn 1
hist(cpp2, main = "Normal Distribution", xlab = "cpp2")
library(ggplot2)
cpp2 <- as.data.frame(cpp2)
ggplot(cpp2,aes(cpp2)) + geom_density(color='green')
summary(cpp2)
## cpp2
## Min. :-1.6167
## 1st Qu.:-0.4420
## Median : 0.2766
## Mean : 0.2398
## 3rd Qu.: 0.8226
## Max. : 3.7247
Biến ngẫu nhiên X có phân phối Poisson là biến ngẫu nhiên dùng để mô tả cho số lần xảy ra của một sự việc/biến cố (event) mà chúng ta quan tâm xảy ra trong một khoảng thời gian hoặc không gian cho trước.
cpp3 <- rpois(n = 10,lambda = 1.2)
cpp3
## [1] 1 3 0 3 2 2 2 1 0 0
cpp3 <- table(cpp3)
cpp3 <- as.data.frame(cpp3)
ggplot(cpp3,aes(cpp3,Freq)) + geom_col(fill='red') +
geom_point() + geom_line(aes(as.integer(cpp3),Freq),color='green')
summary(cpp3)
## cpp3 Freq
## 0:1 Min. :2.0
## 1:1 1st Qu.:2.0
## 2:1 Median :2.5
## 3:1 Mean :2.5
## 3rd Qu.:3.0
## Max. :3.0
Nếu phép thử Bernoulli được thực hiện lặp lại n lần (độc lập nhau). Khi đó số phép thử thành công X trong n phép thử được thực hiện sẽ tuân theo mô hình nhị thức (binomial model) với hai tham số n và p, ký hiệu X ∼ Binomial(n, p), n ≥ 1, p ∈ (0, 1).
cpp4 <- rbinom(n = 100, size = 15, prob = 0.2)
cpp4
## [1] 3 3 4 4 5 1 1 2 3 0 4 5 3 3 6 3 2 1 2 0 3 4 5 4 3 6 7 4 4 2 7 6 5 1 3 4 2
## [38] 2 2 2 4 7 4 5 4 6 4 3 5 3 2 4 4 0 1 3 5 3 4 3 2 5 4 5 2 5 2 2 1 3 4 4 3 1
## [75] 2 1 1 3 2 3 2 2 5 2 2 4 2 4 1 3 1 1 5 2 2 0 2 3 3 3
cpp4 <- table(cpp4)
cpp4 <- as.data.frame(cpp4)
ggplot(cpp4,aes(cpp4,Freq)) + geom_col(fill='red')
summary(cpp4)
## cpp4 Freq
## 0 :1 Min. : 3.0
## 1 :1 1st Qu.: 4.0
## 2 :1 Median :12.0
## 3 :1 Mean :12.5
## 4 :1 3rd Qu.:20.5
## 5 :1 Max. :23.0
## (Other):2
Giả sử tổng thể có N phần tử, trong đó có n (n ≤ N) phần tử có dấu hiệu A và (N-n) phần tử có dấu hiệu không A. Lấy ngẫu nhiên một mẫu có kích thước k, k ≤ N. Số phần tử có dấu hiệu A trong mẫu được lấy ra, là một biến ngẫu nhiên có mô hình siêu bội, ký hiệu X ∼ Hypergeometric(N, n, k, x).
cpp5 <- rhyper(nn = 100,m = 100,n = 75,k = 25)
hist(cpp5, main = " Hypergeometric Distribution", xlab = "cpp5")
cpp5 <- as.data.frame(cpp5)
ggplot(cpp5,aes(cpp5)) + geom_density(color='green')
summary(cpp5)
## cpp5
## Min. : 7.00
## 1st Qu.:13.00
## Median :14.00
## Mean :14.24
## 3rd Qu.:16.00
## Max. :19.00