Các tỷ số từ báo cáo lưu chuyển tiền tệ

Phân tích báo cáo tài chính bằng Python

Rohan Chatterjee

Risk Modeler

Đọc dữ liệu JSON

  • Dữ liệu ngoài thực tế không phải lúc nào cũng ở dạng bảng tính
  • Đôi khi ở định dạng JSON (JavaScript Object Notation)
  • Doanh nghiệp có thể chia sẻ báo cáo tài chính ở dạng JSON
  • Có thể đọc tệp JSON vào Python bằng pandas
cash_flow = pd.read_json("cash_flow_statement.json")
print(cash_flow.head())

Ảnh hiển thị 5 hàng đầu của dữ liệu báo cáo lưu chuyển tiền tệ đã được nạp.

Phân tích báo cáo tài chính bằng Python

Tỷ số dòng tiền trên lợi nhuận ròng

  • Tỷ trọng dòng tiền từ hoạt động kinh doanh so với lợi nhuận ròng

  • Hoạt động kinh doanh là hoạt động cốt lõi của doanh nghiệp

  • Tỷ số cao cho thấy doanh nghiệp tạo nhiều tiền từ hoạt động cốt lõi

Công thức:

$$\dfrac{\text{Cash flow from operating activities}}{\text{Net income}}$$

Phân tích báo cáo tài chính bằng Python

Tỷ số dòng tiền hoạt động

  • Tỷ trọng dòng tiền từ hoạt động kinh doanh so với nợ ngắn hạn
  • Đo lường số lần doanh nghiệp có thể trả nợ ngắn hạn từ tiền tạo ra bởi hoạt động cốt lõi
  • Tỷ số > 1 cho thấy doanh nghiệp tạo đủ tiền để đáp ứng nghĩa vụ ngắn hạn

Công thức:

$$\dfrac{\text{Cash flow from operating activities}}{\text{Current liabilities}}$$

Phân tích báo cáo tài chính bằng Python

Nội suy giá trị thiếu

  • Dữ liệu ngoài thực tế thường có giá trị thiếu
  • Có thể có dữ liệu tử số nhưng thiếu mẫu số của một tỷ số, hoặc ngược lại
  • Giải pháp: nội suy bằng dữ liệu từ các công ty khác
Phân tích báo cáo tài chính bằng Python

Nội suy giá trị thiếu

  • Trong DataFrame tên dataset hiển thị, một số mục của "Total Current Liabilities" bị thiếu, được đánh dấu bằng NaN

Ảnh cho thấy các hàng đầu của báo cáo lưu chuyển tiền tệ, trong đó một số giá trị ở cột total liabilities bị thiếu.

  • Có thể nội suy (impute) nợ ngắn hạn bị thiếu của một công ty bằng các giá trị không thiếu của chính công ty đó
Phân tích báo cáo tài chính bằng Python

Nội suy giá trị thiếu

  • Điền giá trị thiếu bằng trung bình các giá trị không thiếu theo từng công ty:
imputation = dataset.groupby("company")["Total Current Liabilities"].transform("mean")

dataset["Imputed Total Current Liabilities"] = dataset["Total Current Liabilities"].fillna(imputation)
  • Sau khi nội suy, dataset trông như sau:

Ảnh cho thấy các hàng đầu của báo cáo lưu chuyển tiền tệ với cột total liabilities có giá trị thiếu. Có thêm cột imputed total current liabilities, nơi các giá trị thiếu đã được nội suy.

  • Lấy các phân vị để thận trọng hơn
Phân tích báo cáo tài chính bằng Python

Nội suy bằng phân vị

  • Nội suy giá trị thiếu bằng phân vị 70 của các giá trị không thiếu (trường hợp xấu hơn) sẽ cho kết quả thận trọng hơn.

  • Tính tỷ số với nội suy thận trọng hơn có thể phù hợp hơn nếu tỷ số dùng để ra quyết định.

  • Nội suy theo phân vị 70, nhóm theo company:
imputation = dataset.groupby("company")["Total Current Liabilities"]\
    .transform(lambda x: np.nanquantile(x, 0.7))

dataset["Imputed Total Current Liabilities"] = dataset["Total Current Liabilities"]\
    .fillna(imputation)
Phân tích báo cáo tài chính bằng Python

Ayo berlatih!

Phân tích báo cáo tài chính bằng Python

Preparing Video For Download...