#Câu 1: 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.
## Các dữ liệu
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.2 ✔ readr 2.1.4
## ✔ forcats 1.0.0 ✔ stringr 1.5.0
## ✔ ggplot2 3.4.2 ✔ tibble 3.2.1
## ✔ lubridate 1.9.2 ✔ tidyr 1.3.0
## ✔ purrr 1.0.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(ggplot2)
library(TeachingDemos)
library(extraDistr)
##
## Attaching package: 'extraDistr'
##
## The following object is masked from 'package:purrr':
##
## rdunif
Sử dụng phân phối Poisson để mô hình hóa số lượng lệnh MUA trong ngày của cổ phiếu công ty cổ phần Nam Việt. Dựa trên dữ liệu lịch sử 6 tháng gần nhất, trung bình có khoảng 19 lệnh MUA trong một ngày.
## Mô phỏng mẫu
ps <- rpois(n = 300,lambda = 19)
## Các đặc trưng đo lường
summary(ps)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 10.00 16.00 19.00 19.25 22.00 32.00
## Đồ thị
ps <- as.data.frame(table(ps))
ps <- ps |> mutate(prop = Freq/sum(Freq))
ps |> ggplot(aes(ps,prop)) + xlab("Số lệnh MUA trong ngày") +
geom_col(fill = "blue")
Trong lĩnh vực ngân hàng, phân phối nhị thức có thể được sử dụng để ước tính xác suất một khoản vay trở thành nợ xấu. Điều này giúp các ngân hàng đánh giá rủi ro và quản lý tốt hơn việc cho vay. Giả sử một khoản nợ vay trở thành nợ xấu của ngân hàng VCB xảy ra với xác suất 1%. Mô phỏng xác suất trở thành nợ xấu với 300 khoản nợ ## Mô phỏng mẫu
bn <- rbinom(n = 300, size = 1, prob = 0.01)
# Đếm số lần thành công và thất bại
n_success <- sum(bn)
n_failure <- 300 - n_success
# Tạo vector cho đồ thị
bar_data <- c(n_success, n_failure)
# Vẽ đồ thị cột
barplot(bar_data, names.arg = c("Nợ xấu", "Nợ không xấu"), xlab = "Kết quả", ylab = "Số khoản nợ", main = "Phân phối nhị thức")
Giá cổ phiếu SSI ngày 02/06/2023 đang được giao dịch ở mức 24,100 đồng, giá trị trung bình của cổ phiếu trong sáu tháng gần nhất \(\mu = 20800\) và độ lệch chuẩn \(\sigma = 489\). Với giả định rằng biến động hàng ngày của cổ phiếu SSI tuân theo phân phối chuẩn.Mô phỏng giá cổ phiếu trong 300 ngày tiếp theo.
Mô phỏng mẫu
nm <- rnorm(n = 300, mean =20800, sd = 489 )
nm <- round(nm) #làm tròn
Các đặc trưng đo lường
summary(nm)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 19402 20508 20788 20831 21121 22556
Đồ thị
hist(nm, main = "Phân phối chuẩn", xlab = "Giá cổ phiếu SSI")
sử dụng phân phối Triangular, bạn có thể xác định một khoảng giá trị có thể xảy ra cho biên độ biến động hàng ngày của cổ phiếu. Giả sử giá cổ phiếu của SSI hiện tại là 19,800 đồng, giá trị thấp nhất là 18,200 đồng (8%), giá trị cao nhất là 24,100 đồng (21.7%).
# Mô phỏng mẫu
tg <- rtriang(n = 10000, a = 0.080, b = 0.217, c = (0.08+0.217)/2)
hist(tg, main = "Phân phối Triangular", xlab = "Biên độ biến động (%)")
Phân phối t thường được sử dụng trong các trường hợp khi dữ liệu không tuân theo phân phối chuẩn hoàn toàn. Ví dụ, khi mô hình hóa tỷ giá hối đoái giữa đồng USD và đồng JPY, có thể sử dụng phân phối t để mô hình hóa biến động và tính toán các giá trị xác suất tương ứng
# Mô phỏng mẫu dữ liệu
sample_data<- rt(n = 1000, df = 10)
# Tạo dataframe
df <- data.frame(result = sample_data)
# Vẽ đồ thị
ggplot(data = df, aes(x = result)) +
geom_density(fill = "steelblue", alpha = 0.5) +
labs(x = "Giá trị", y = "Mật độ xác suất", title = "Phân phối t") +
theme_minimal()