Trong bối cảnh nền kinh tế toàn cầu ngày càng phụ thuộc vào dữ liệu, việc phân tích và khai thác dữ liệu tài chính trở thành một kỹ năng không thể thiếu đối với các nhà phân tích và nhà đầu tư. Ngôn ngữ R được xem là một trong những công cụ mạnh mẽ nhất cho phân tích dữ liệu, nhờ khả năng xử lý linh hoạt, tích hợp thống kê, và hỗ trợ trực quan hóa ở cấp độ chuyên sâu.
Đề tài của tiểu luận này là:
“Phân tích dữ liệu đầu tư và chỉ số tài chính của các công ty niêm yết trên sàn NYSE bằng ngôn ngữ R”
Bộ dữ liệu được sử dụng trong tiểu luận có tên “400K NYSE Random Investments + Financial Ratios”, bao gồm 405.258 quan sát và 25 biến. Dữ liệu mô phỏng các khoản đầu tư ngẫu nhiên trên sàn NYSE (New York Stock Exchange), kết hợp với các chỉ tiêu tài chính (financial ratios) của các công ty. Bộ dữ liệu giúp mô phỏng hoạt động đầu tư, đo lường hiệu quả sinh lời, và đánh giá rủi ro theo các chỉ số định lượng.
Mục tiêu chính của việc phân tích bộ dữ liệu này là áp dụng tuần tự các bước trong Roadmap R for Data Analysis, từ thao tác dữ liệu, trực quan hoá, đến phân tích thống kê và xây dựng mô hình, qua đó rèn luyện kỹ năng xử lý và diễn giải dữ liệu tài chính bằng ngôn ngữ R Markdown. Và kết quả phân tích giúp mô phỏng chiến lược đầu tư và đánh giá hiệu quả thị trường cổ phiếu Mỹ.
Tên bộ dữ liệu: 400K NYSE Random Investments + Financial Ratios Dataset.
Nguồn dữ liệu: dữ liệu giả lập dựa trên các chỉ số, giá trị đầu tư và thông tin tài chính của doanh nghiệp niêm yết tại sàn NYSE trên Kaggle.
Đặc điểm:
Số lượng quan sát: 405.258 dòng
Số lượng biến: 25 biến
Dạng dữ liệu: hỗn hợp giữa định tính (factor) và định lượng (numeric)
Khoảng thời gian: các giao dịch diễn ra trong giai đoạn từ 2013 đến 2018
Một số biến tiêu biểu:
Bộ dữ liệu bao gồm 25 biến phản ánh thông tin về công ty, giao dịch đầu tư và các chỉ tiêu tài chính. Dưới đây là tóm tắt một số nhóm biến chính:
| Name | nyse |
| Number of rows | 405258 |
| Number of columns | 25 |
| _______________________ | |
| Column type frequency: | |
| factor | 5 |
| numeric | 20 |
| ________________________ | |
| Group variables | None |
Variable type: factor
| skim_variable | n_missing | complete_rate | ordered | n_unique | top_counts |
|---|---|---|---|---|---|
| company | 0 | 1 | FALSE | 27 | AMZ: 16270, M: 16161, PG: 16103, BAC: 16101 |
| sector | 0 | 1 | FALSE | 5 | RET: 96269, TEC: 92401, BAN: 84757, AUT: 79836 |
| date_BUY_fix | 0 | 1 | FALSE | 1248 | 201: 590, 201: 587, 201: 573, 201: 562 |
| date_SELL_fix | 0 | 1 | FALSE | 1729 | 201: 571, 201: 554, 201: 546, 201: 545 |
| investment | 0 | 1 | FALSE | 2 | BAD: 264440, GOO: 140818 |
Variable type: numeric
| skim_variable | n_missing | complete_rate | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|
| X | 0 | 1 | 249935.85 | 144239.75 | 0.00 | 125063.25 | 249937.50 | 374754.75 | 499999.00 | ▇▇▇▇▇ |
| horizon..days. | 0 | 1 | 187.08 | 210.70 | 1.00 | 15.00 | 90.00 | 300.00 | 720.00 | ▇▂▂▁▁ |
| amount | 0 | 1 | 8108.47 | 12774.43 | 50.00 | 400.00 | 2000.00 | 10000.00 | 50000.00 | ▇▁▁▁▁ |
| price_BUY | 0 | 1 | 105.26 | 217.18 | 7.14 | 28.30 | 46.22 | 76.29 | 2039.51 | ▇▁▁▁▁ |
| price_SELL | 0 | 1 | 116.73 | 250.14 | 4.01 | 28.39 | 48.02 | 81.65 | 3450.96 | ▇▁▁▁▁ |
| Volatility_Buy | 0 | 1 | 0.25 | 0.10 | 0.09 | 0.19 | 0.23 | 0.31 | 0.70 | ▇▇▃▁▁ |
| Volatility_sell | 0 | 1 | 0.26 | 0.10 | 0.09 | 0.19 | 0.24 | 0.32 | 0.92 | ▇▅▁▁▁ |
| Sharpe.Ratio | 0 | 1 | 0.25 | 0.10 | 0.09 | 0.19 | 0.23 | 0.31 | 0.70 | ▇▇▃▁▁ |
| expected_return..yearly. | 0 | 1 | 0.07 | 0.14 | -0.28 | 0.00 | 0.01 | 0.08 | 1.02 | ▁▇▁▁▁ |
| inflation | 0 | 1 | 0.58 | 1.04 | -0.50 | -0.20 | -0.15 | 1.68 | 1.96 | ▇▁▁▁▅ |
| nominal_return | 0 | 1 | 0.07 | 0.30 | -0.87 | -0.03 | 0.01 | 0.11 | 8.85 | ▇▁▁▁▁ |
| ESG_ranking | 0 | 1 | 22.57 | 6.51 | 12.00 | 16.30 | 25.10 | 27.90 | 31.60 | ▇▅▂▇▇ |
| PE_ratio | 0 | 1 | 30.33 | 84.74 | 0.00 | 9.82 | 13.71 | 23.49 | 1116.57 | ▇▁▁▁▁ |
| EPS_ratio | 0 | 1 | 3.44 | 4.39 | -6.56 | 1.46 | 2.96 | 4.56 | 29.87 | ▂▇▁▁▁ |
| PS_ratio | 0 | 1 | 2.72 | 3.60 | 0.16 | 0.47 | 1.71 | 3.18 | 24.49 | ▇▁▁▁▁ |
| PB_ratio | 0 | 1 | 4.69 | 5.91 | 0.00 | 1.22 | 3.05 | 5.23 | 47.62 | ▇▁▁▁▁ |
| NetProfitMargin_ratio | 0 | 1 | 9.21 | 10.41 | -24.63 | 2.62 | 7.70 | 15.77 | 62.00 | ▁▇▆▁▁ |
| current_ratio | 0 | 1 | 2.17 | 2.56 | 0.61 | 0.98 | 1.22 | 1.79 | 13.56 | ▇▁▁▁▁ |
| roa_ratio | 0 | 1 | 5.60 | 5.98 | -12.99 | 1.74 | 5.71 | 7.99 | 38.13 | ▁▇▃▁▁ |
| roe_ratio | 0 | 1 | 15.64 | 17.48 | -99.49 | 8.83 | 16.10 | 26.03 | 57.25 | ▁▁▁▇▃ |
## X horizon..days. amount price_BUY
## Min. : 0 Min. : 1.0 Min. : 50 Min. : 7.137
## 1st Qu.:125063 1st Qu.: 15.0 1st Qu.: 400 1st Qu.: 28.303
## Median :249938 Median : 90.0 Median : 2000 Median : 46.218
## Mean :249936 Mean :187.1 Mean : 8108 Mean : 105.256
## 3rd Qu.:374755 3rd Qu.:300.0 3rd Qu.:10000 3rd Qu.: 76.289
## Max. :499999 Max. :720.0 Max. :50000 Max. :2039.510
## price_SELL Volatility_Buy Volatility_sell Sharpe.Ratio
## Min. : 4.01 Min. :0.09042 Min. :0.09042 Min. :0.09042
## 1st Qu.: 28.39 1st Qu.:0.18536 1st Qu.:0.18900 1st Qu.:0.18536
## Median : 48.02 Median :0.23220 Median :0.23813 Median :0.23220
## Mean : 116.73 Mean :0.25414 Mean :0.25969 Mean :0.25414
## 3rd Qu.: 81.65 3rd Qu.:0.30673 3rd Qu.:0.31648 3rd Qu.:0.30673
## Max. :3450.96 Max. :0.69756 Max. :0.92253 Max. :0.69756
## expected_return..yearly. inflation nominal_return ESG_ranking
## Min. :-0.278002 Min. :-0.5000 Min. :-0.87222 Min. :12.00
## 1st Qu.: 0.001059 1st Qu.:-0.2000 1st Qu.:-0.02837 1st Qu.:16.30
## Median : 0.012843 Median :-0.1500 Median : 0.01410 Median :25.10
## Mean : 0.070825 Mean : 0.5777 Mean : 0.07102 Mean :22.57
## 3rd Qu.: 0.082635 3rd Qu.: 1.6800 3rd Qu.: 0.11124 3rd Qu.:27.90
## Max. : 1.017344 Max. : 1.9600 Max. : 8.84703 Max. :31.60
## PE_ratio EPS_ratio PS_ratio PB_ratio
## Min. : 0.00 Min. :-6.560 Min. : 0.160 Min. : 0.000
## 1st Qu.: 9.82 1st Qu.: 1.460 1st Qu.: 0.470 1st Qu.: 1.220
## Median : 13.71 Median : 2.960 Median : 1.710 Median : 3.050
## Mean : 30.33 Mean : 3.443 Mean : 2.725 Mean : 4.688
## 3rd Qu.: 23.49 3rd Qu.: 4.560 3rd Qu.: 3.180 3rd Qu.: 5.230
## Max. :1116.57 Max. :29.870 Max. :24.490 Max. :47.620
## NetProfitMargin_ratio current_ratio roa_ratio roe_ratio
## Min. :-24.630 Min. : 0.610 Min. :-12.990 Min. :-99.49
## 1st Qu.: 2.620 1st Qu.: 0.980 1st Qu.: 1.740 1st Qu.: 8.83
## Median : 7.700 Median : 1.220 Median : 5.710 Median : 16.10
## Mean : 9.205 Mean : 2.173 Mean : 5.596 Mean : 15.64
## 3rd Qu.: 15.770 3rd Qu.: 1.790 3rd Qu.: 7.990 3rd Qu.: 26.03
## Max. : 62.000 Max. :13.560 Max. : 38.130 Max. : 57.25
Nhận xét tổng quan về bộ dữ liệu
Bộ dữ liệu 400K NYSE Random Investments + Financial Ratios bao gồm 405.258 quan sát và 25 biến, trong đó có 5 biến định tính (factor) và 20 biến định lượng (numeric). Quy mô dữ liệu lớn, cấu trúc rõ ràng, và chứa đầy đủ thông tin cần thiết để thực hiện các phân tích mô phỏng hoạt động đầu tư, đo lường hiệu quả tài chính và đánh giá rủi ro cổ phiếu.
Về các biến giao dịch, giá mua
(price_BUY) dao động mạnh, từ 7.14 đến
2,039.51 USD, trong khi giá bán
(price_SELL) trải rộng từ 4.01 đến
3,450.96 USD, cho thấy sự khác biệt lớn giữa các loại
cổ phiếu trên thị trường. Số tiền đầu tư (amount) có giá
trị trung bình khoảng 8,108 USD, nhưng độ phân tán khá
cao (cao nhất đến 50,000 USD), phản ánh mức độ đa dạng
trong quy mô đầu tư.
Các biến về hiệu suất đầu tư và rủi ro cho thấy sự chênh lệch đáng kể:
nominal_return) dao động từ
-87.2% đến +884.7%, thể hiện sự tồn
tại của cả khoản đầu tư thua lỗ lẫn siêu lợi nhuận.expected_return..yearly.)
trung bình 7.08%, với biên độ khá rộng, cho thấy rủi ro
và cơ hội cao trong thị trường.Volatility_Buy và
Volatility_sell) trung bình khoảng 0.25,
nhưng có giá trị cực đại trên 0.9, phản ánh sự khác
biệt về rủi ro giữa các cổ phiếu.Đối với các chỉ số tài chính (financial ratios), phân bố cũng khá đa dạng:
Ngoài ra, biến ESG_ranking (xếp hạng bền vững) dao động từ 12.0 đến 31.6, trung bình 22.6, thể hiện rằng đa phần các công ty trong tập dữ liệu có mức độ phát triển bền vững trung bình. Biến inflation có giá trị trung bình 0.58%, chủ yếu dao động quanh 0%, phù hợp với môi trường kinh tế ổn định của Mỹ trong giai đoạn mô phỏng.
Tổng thể, bộ dữ liệu có sự phân tán lớn, đa chiều và mang tính đại diện cao cho hoạt động đầu tư cổ phiếu. Nó phù hợp cho việc triển khai phân tích mô tả, phân tích thống kê, và các mô hình định lượng. Điều này giúp bộ dữ liệu trở thành nền tảng tốt cho phân tích định lượng và mô hình hóa tài chính.
## Số quan sát: 405258
## Số biến: 25
## 'data.frame': 405258 obs. of 25 variables:
## $ X : int 0 1 2 3 4 5 7 8 9 10 ...
## $ company : Factor w/ 27 levels "AAPL","AMZN",..: 5 4 3 16 14 21 9 26 4 14 ...
## $ sector : Factor w/ 5 levels "AUTO","BANK",..: 4 2 2 4 2 3 5 2 2 2 ...
## $ horizon..days. : int 2 330 7 5 360 15 720 600 30 6 ...
## $ amount : int 100 15000 3000 20000 15000 50000 1500 300 50000 400 ...
## $ date_BUY_fix : Factor w/ 1248 levels "2013-10-10","2013-10-11",..: 905 779 741 750 353 729 272 593 440 582 ...
## $ date_SELL_fix : Factor w/ 1729 levels "2013-10-11","2013-10-15",..: 905 1004 745 753 598 738 764 1004 460 584 ...
## $ price_BUY : num 55.6 18.6 59.9 38.2 51.9 ...
## $ price_SELL : num 53.5 24.7 59.5 36 52 ...
## $ Volatility_Buy : num 0.384 0.323 0.239 0.429 0.195 ...
## $ Volatility_sell : num 0.386 0.236 0.235 0.429 0.254 ...
## $ Sharpe.Ratio : num 0.384 0.323 0.239 0.429 0.195 ...
## $ expected_return..yearly.: num 1.44e-03 1.71e-01 2.82e-03 9.39e-05 1.50e-01 ...
## $ inflation : num 1.96 -0.2 -0.2 -0.2 -0.5 -0.2 -0.15 -0.2 -0.5 -0.2 ...
## $ nominal_return : num -0.03722 0.32432 -0.00576 -0.05839 0.00344 ...
## $ investment : Factor w/ 2 levels "BAD","GOOD": 1 2 1 1 2 2 2 2 1 2 ...
## $ ESG_ranking : num 12 26.3 19.8 12.9 27.9 17.6 31.6 24.8 26.3 27.9 ...
## $ PE_ratio : num 12.58 11.39 10.58 11.09 9.38 ...
## $ EPS_ratio : num 3.73 1.26 5.64 3.27 5.46 4.56 1.05 1.71 0.96 5.99 ...
## $ PS_ratio : num 0.38 1.71 1.67 0.36 1.87 ...
## $ PB_ratio : num 3.19 0.54 2.6 1.25 0.81 ...
## $ NetProfitMargin_ratio : num 3.01 15.7 15.68 3.17 19.91 ...
## $ current_ratio : num 1.49 0.92 1.91 1.6 0.99 ...
## $ roa_ratio : num 8.69 0.67 3.39 4.41 0.81 ...
## $ roe_ratio : num 26.69 5.54 25.78 11.35 8.91 ...
# Kiểm tra Trùng lặp
duplicated_records <- sum(duplicated(nyse))
cat("Số lượng bản ghi trùng lặp:", duplicated_records, "\n")## Số lượng bản ghi trùng lặp: 0
Thống kê mô tả được thực hiện theo hai hướng: nhóm theo ngành nghề (sector) và nhóm theo phân loại khoản đầu tư (investment). Mục tiêu của phần này là giúp hiểu rõ đặc điểm tổng quan của bộ dữ liệu khoản đầu tư trên sàn NYSE, đặc biệt là mối quan hệ giữa lợi suất, biến động và các chỉ số tài chính như P/E, ROE, ROA.
# 1. Mô tả tổng quan theo ngành nghề (sector)
nyse_sector_summary <- nyse %>%
group_by(sector) %>%
summarise(
So_quan_sat = n(),
Mean_Return = mean(nominal_return, na.rm = TRUE),
Mean_Volatility = mean(Volatility_Buy, na.rm = TRUE),
Mean_PE = mean(PE_ratio, na.rm = TRUE),
Mean_ROE = mean(roe_ratio, na.rm = TRUE),
Mean_ROA = mean(roa_ratio, na.rm = TRUE)
) %>%
arrange(desc(So_quan_sat))
# BẢNG
nyse_sector_summary %>%
mutate(
# Làm tròn số
So_quan_sat = format(So_quan_sat, big.mark = ","),
across(starts_with("Mean"), ~round(., 4))
) %>%
kable(
caption = "Bảng 1.3.1. Thống kê mô tả theo ngành nghề",
align = "c"
) %>%
kable_styling(
bootstrap_options = c("striped", "hover", "condensed", "responsive"),
full_width = F
)| sector | So_quan_sat | Mean_Return | Mean_Volatility | Mean_PE | Mean_ROE | Mean_ROA |
|---|---|---|---|---|---|---|
| RETAIL | 96,269 | 0.0592 | 0.2686 | 14.3496 | 18.9336 | 6.1347 |
| TECH | 92,401 | 0.1996 | 0.2675 | 79.4631 | 20.7121 | 11.6058 |
| BANK | 84,757 | 0.0262 | 0.2657 | 18.4132 | 10.0402 | 1.2225 |
| AUTO | 79,836 | 0.0033 | 0.2772 | 8.3337 | 6.0926 | 1.6893 |
| FMCG | 51,995 | 0.0416 | 0.1494 | 25.7981 | 24.3482 | 7.0468 |
Nhận xét: Ngành Technology và Retail chiếm tỷ trọng lớn. Ngành Technology thường đạt mức lợi suất trung bình cao nhất, phù hợp với đặc điểm tăng trưởng mạnh. Ngược lại, các ngành như Bank hay Auto có lợi suất trung bình thấp hơn, song lại đi kèm với độ biến động (Volatility) thấp, thể hiện tính ổn định và ít rủi ro hơn.
# 2. Biểu đồ: Lợi suất trung bình theo ngành
ggplot(nyse_sector_summary, aes(x = reorder(sector, Mean_Return), y = Mean_Return, fill = sector)) +
geom_col(show.legend = FALSE) +
coord_flip() +
labs(title = "Hình 1.3.1. Lợi suất trung bình theo ngành", x = "Ngành nghề", y = "Lợi suất danh nghĩa (nominal_return)") +
theme_minimal(base_size = 12)Biểu đồ 1.3.1 minh họa rõ xu hướng này khi ngành công nghệ và tài chính nổi bật về hiệu quả sinh lời, trong khi nhóm ngành công nghiệp cơ bản duy trì mức lợi suất khiêm tốn hơn. Điều này gợi ý rằng sự khác biệt giữa các ngành có thể đóng vai trò quan trọng trong việc xác định danh mục đầu tư hiệu quả.
Dữ liệu được nhóm theo biến investment (GOOD và BAD).
# 3. Mô tả tổng quan theo phân loại đầu tư (investment)
nyse_investment_summary <- nyse %>%
group_by(investment) %>%
summarise(
So_quan_sat = n(),
Mean_Return = mean(nominal_return, na.rm = TRUE),
Mean_Volatility = mean(Volatility_Buy, na.rm = TRUE),
Mean_Sharpe = mean(Sharpe.Ratio, na.rm = TRUE),
Mean_PE = mean(PE_ratio, na.rm = TRUE),
Mean_ROE = mean(roe_ratio, na.rm = TRUE)
)
# SỬ DỤNG KABLEEXTRA ĐỂ LÀM ĐẸP BẢNG
nyse_investment_summary %>%
mutate(
# Làm tròn số
So_quan_sat = format(So_quan_sat, big.mark = ","),
across(starts_with("Mean"), ~round(., 4))
) %>%
kable(
caption = "Bảng 1.3.2. Thống kê mô tả theo loại khoản đầu tư",
align = "c"
) %>%
kable_styling(
bootstrap_options = c("striped", "hover", "condensed", "responsive"),
full_width = F
)| investment | So_quan_sat | Mean_Return | Mean_Volatility | Mean_Sharpe | Mean_PE | Mean_ROE |
|---|---|---|---|---|---|---|
| BAD | 264,440 | 0.0054 | 0.2507 | 0.2507 | 29.3452 | 15.9127 |
| GOOD | 140,818 | 0.1942 | 0.2605 | 0.2605 | 32.1777 | 15.1399 |
Nhận xét: Nhóm GOOD investments có lợi suất danh nghĩa trung bình cao hơn đáng kể so với nhóm BAD, đồng thời sở hữu tỷ lệ Sharpe Ratio cao hơn. Điều này chứng tỏ sự phân loại đầu tư theo tiêu chí “GOOD” có cơ sở thống kê nhất định, phản ánh hiệu quả sinh lời vượt trội
# 4. Biểu đồ: So sánh lợi suất giữa GOOD và BAD investments
ggplot(nyse_investment_summary, aes(x = investment, y = Mean_Return, fill = investment)) +
geom_col(show.legend = FALSE) +
labs(title = "Hình 1.3.2. So sánh lợi suất trung bình theo loại khoản đầu tư",
x = "Phân loại đầu tư", y = "Lợi suất danh nghĩa (nominal_return)") +
theme_minimal(base_size = 12)# 5. Boxplot: Phân bố PE Ratio theo loại đầu tư
ggplot(nyse, aes(x = investment, y = PE_ratio, fill = investment)) +
geom_boxplot(outlier.color = "red", alpha = 0.6) +
labs(title = "Hình 1.5.3. Phân bố hệ số PE theo loại khoản đầu tư", x = "Loại đầu tư", y = "PE Ratio") +
theme_minimal(base_size = 12)Nhận xét: Hình 1.3.2 thể hiện rõ sự khác biệt này với khoảng cách đáng kể giữa hai cột đại diện cho lợi suất trung bình. Bên cạnh đó, boxplot PE Ratio (Hình 1.5.3) cho thấy nhóm GOOD có phân bố hệ số P/E rộng hơn và xuất hiện nhiều giá trị ngoại lai cao, ngụ ý rằng nhà đầu tư sẵn sàng trả mức định giá cao hơn cho các khoản đầu tư được đánh giá tốt, đi kèm với sự phân tán lớn hơn về định giá.
# Biểu đồ histogram lợi suất danh nghĩa
ggplot(nyse, aes(x = nominal_return)) +
geom_histogram(bins = 60, fill = "#0073C2FF", color = "white", alpha = 0.8) +
labs(title = "Hình 1.4.1. Phân bố tỷ suất lợi nhuận danh nghĩa",
x = "Tỷ suất lợi nhuận (%)",
y = "Tần suất (Số lượng quan sát)") +
theme_minimal(base_size = 12)## Min. 1st Qu. Median Mean 3rd Qu. Max.
## -0.87222 -0.02837 0.01410 0.07102 0.11124 8.84703
Nhận xét: Phân bố có dạng lệch phải (right-skewed), tập trung dày đặc ở các giá trị gần 0%. Sự tồn tại của một “đuôi” dài kéo về phía phải thể hiện tồn tại một số ít các trường hợp đầu tư đạt mức sinh lời rất cao (tỷ suất lợi nhuận đột biến), phù hợp với đặc trưng của thị trường cổ phiếu có rủi ro cao.
# So sánh độ biến động giá khi mua và khi bán
vol_data <- nyse %>%
select(Volatility_Buy, Volatility_sell) %>%
pivot_longer(cols = everything(), names_to = "Giai_doan", values_to = "Volatility")
ggplot(vol_data, aes(x = Giai_doan, y = Volatility, fill = Giai_doan)) +
geom_boxplot(alpha = 0.7) +
labs(title = "Hình 1.4.2. Phân bố độ biến động giá khi mua và khi bán",
x = "Giai đoạn giao dịch",
y = "Độ biến động (Volatility)") +
theme_minimal(base_size = 12) +
theme(legend.position = "none")Nhận xét: Phân phối độ biến động giá mua (Buy) và giá bán (Sell) rất giống nhau về cả trung vị và phạm vi phân tán trung tâm. Điều này cho thấy sự biến động không có sự khác biệt đáng kể giữa thời điểm nhà đầu tư thực hiện giao dịch mua và giao dịch bán. Việc thị trường có nhiều biến động (Volatility cao) xảy ra ở cả hai giai đoạn (mua và bán), nhưng các giao dịch cực đoan (outliers) dường như phổ biến hơn ở phía bán (Volatility_Sell) do đuôi ngoại lai ở biểu đồ hộp bán có vẻ kéo dài và dày đặc hơn một chút so với phía mua.
ggplot(nyse, aes(x = roa_ratio, y = roe_ratio)) +
geom_point(alpha = 0.4, color = "#00AFBB") +
geom_smooth(method = "lm", color = "red", se = FALSE) +
labs(
title = "Hình 1.4.3. Mối quan hệ giữa ROA và ROE của doanh nghiệp",
x = "ROA (%)",
y = "ROE (%)"
) +
theme_minimal(base_size = 12)Nhận xét: Có một mối tương quan tuyến tính dương mạnh giữa ROA và ROE. Độ dốc của đường hồi quy lớn hơn 1 là minh chứng rõ ràng cho việc sử dụng đòn bẩy tài chính đã khuếch đại lợi nhuận được tạo ra từ tài sản lên trên vốn cổ phần.