Giới thiệu dự án

  • Bối cảnh ngành: Trách nhiệm xã hội doanh nghiệp (CSR) đang trở thành tiêu chuẩn quan trọng trong việc thu hút nhà đầu tư và nâng cao uy tín thương hiệu tại Việt Nam. Theo báo cáo của GCN‑Viet (2023), hơn 65 % các công ty niêm yết trên HOSE đã công bố thông tin CSR ít nhất một lần trong 5 năm gần nhất.
  • Problem statement: Mối quan hệ giữa đặc điểm Tổng giám đốc (CEO)mức độ công bố thông tin CSR của doanh nghiệp niêm yết tại Việt Nam chưa được giải thích một cách định lượng, dẫn đến việc các công ty không tối ưu hoá chiến lược CSR dựa trên yếu tố lãnh đạo.
  • Mục tiêu dự án
    1. Xây dựng mô hình OLS/FEM để đo lường ảnh hưởng của các thuộc tính CEO (giới tính, tuổi, trình độ học vấn, thời gian trong vị trí) lên mức độ công bố CSR.
    2. So sánh kết quả với các giải pháp phân tích hồi quy truyền thống hiện có.
    3. Đề xuất các đổi mới trong quản trị CSR dựa trên bằng chứng thống kê.
  • Giải pháp đề xuất:
    • Thu thập dữ liệu panel 2018‑2021 từ Báo cáo thường niên (445 doanh nghiệp) và Vietstock.
    • Tiền xử lý bằng Python 3.11 (pandas 2.2, numpy 1.26).
    • Phân tích hồi quy bằng Stata 15 (OLS, Fixed Effects Model).
  • Kết quả kỳ vọng
    • R‑squared tăng 12 % so với mô hình cơ bản.
    • Giảm 30 % thời gian tổng hợp báo cáo CSR nhờ tự động hoá quy trình.
    • ROI ước tính 1.8× từ việc cải thiện độ minh bạch và thu hút vốn.

Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Giải pháp hiện tại Ưu điểm Nhược điểm
Phân tích OLS đơn giản (trước đây) Dễ triển khai, yêu cầu phần mềm ít Không kiểm soát được độ không đồng nhất (heterogeneity) giữa các công ty
Sử dụng Excel để tính toán Thân thiện người dùng Độ lỗi cao, không thể mở rộng dữ liệu panel
Báo cáo thủ công Đảm bảo kiểm soát nội dung Tốn thời gian (≈ 2 ngày cho mỗi công ty)

Market research – competitor comparison

Công ty Công cụ phân tích Phạm vi dữ liệu Chi phí
CSR‑Analytics (USA) Python + Stata 10 k doanh nghiệp toàn cầu $12 k/yr
Sustainability Insight (EU) R + SAS 5 k công ty EU $9 k/yr
LocalDataLab (VN) Excel + Stata 300 công ty VN $2 k/yr

Thiết kế hệ thống

  • Architecture design:
    Component diagram
    • Data Ingestion (Python script) → Data Lake (CSV on NFS) → Processing Engine (Stata) → Reporting Layer (Markdown + HTML).
  • Technology stack
Layer Technology Version
Data ingestion Python 3.11
Data wrangling pandas 2.2
Statistical## Giới thiệu dự án
  • Bối cảnh ngành: Trách nhiệm xã hội doanh nghiệp (CSR) đang trở thành tiêu chuẩn quan trọng trong việc thu hút nhà đầu tư và nâng cao uy tín thương hiệu tại Việt Nam. Theo báo cáo của GCN‑Viet (2023), hơn 65 % các công ty niêm yết trên HOSE đã công bố thông tin CSR ít nhất một lần trong 5 năm gần nhất.
  • Problem statement: Mối quan hệ giữa đặc điểm Tổng giám đốc (CEO)mức độ công bố thông tin CSR của doanh nghiệp niêm yết tại Việt Nam chưa được giải thích một cách định lượng, dẫn đến việc các công ty không tối ưu hoá chiến lược CSR dựa trên yếu tố lãnh đạo.
  • Mục tiêu dự án
    1. Xây dựng mô hình OLS/FEM để đo lường ảnh hưởng của các thuộc tính CEO (giới tính, tuổi, trình độ học vấn, thời gian trong vị trí) lên mức độ công bố CSR.
    2. So sánh kết quả với các giải pháp phân tích hồi quy truyền thống hiện có.
    3. Đề xuất các đổi mới trong quản trị CSR dựa trên bằng chứng thống kê.
  • Giải pháp đề xuất:
    • Thu thập dữ liệu panel 2018‑2021 từ Báo cáo thường niên (445 doanh nghiệp) và Vietstock.
    • Tiền xử lý bằng Python 3.11 (pandas 2.2, numpy 1.26).
    • Phân tích hồi quy bằng Stata 15 (OLS, Fixed Effects Model).
  • Kết quả kỳ vọng
    • R‑squared tăng 12 % so với mô hình cơ bản.
    • Giảm 30 % thời gian tổng hợp báo cáo CSR nhờ tự động hoá quy trình.
    • ROI ước tính 1.8× từ việc cải thiện độ minh bạch và thu hút vốn.

Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Giải pháp hiện tại Ưu điểm Nhược điểm
Phân tích OLS đơn giản (trước đây) Dễ triển khai, yêu cầu phần mềm ít Không kiểm soát được độ không đồng nhất (heterogeneity) giữa các công ty
Sử dụng Excel để tính toán Thân thiện người dùng Độ lỗi cao, không thể mở rộng dữ liệu panel
Báo cáo thủ công Đảm bảo kiểm soát nội dung Tốn thời gian (≈ 2 ngày cho mỗi công ty)

Market research – competitor comparison

Công ty Công cụ phân tích Phạm vi dữ liệu Chi phí
CSR‑Analytics (USA) Python + Stata 10 k doanh nghiệp toàn cầu $12 k/yr
Sustainability Insight (EU) R + SAS 5 k công ty EU $9 k/yr
LocalDataLab (VN) Excel + Stata 300 công ty VN $2 k/yr

Thiết kế hệ thống

  • Architecture design:
    Component diagram
    • Data Ingestion (Python script) → Data Lake (CSV on NFS) → Processing Engine (Stata) → Reporting Layer (Markdown + HTML).
  • Technology stack
Layer Technology Version
Data ingestion Python 3.11
Data wrangling pandas 2.2
Statistical analysis Stata 15
Visualization matplotlib 3.8
Containerisation Docker 24.0
Orchestration Kubernetes 1.28
CI/CD GitHub Actions latest
Version control Git 2.43
  • Database design (nếu dùng DB):

    • companies(id PK, ticker, exchange)
    • ceos(id PK, company_id FK, gender, age, education, tenure)
    • csr_metrics(id PK, company_id FK, year, gri_score, roA, disclosure_level)
  • API design (cho bộ công cụ nội bộ)

paths:
  /companies/{ticker}/csr:
    get:
      summary: Lấy dữ liệu CSR của công ty
      parameters:
        - name: ticker
          in: path
          required: true
          schema: {type: string}
      responses:
        '200':
          description: Dữ liệu CSR
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CSRMetric'
components:
  schemas:
    CSRMetric:
      type: object
      properties:
        year: {type: integer}
        gri_score: {type: number}
        roA: {type: number}
        disclosure_level: {type: string}

Methodology

  • Phương pháp nghiên cứu:

    1. Thu thập dữ liệu: Scraping PDF báo cáo thường niên → chuyển đổi sang CSV bằng tabula‑py.
    2. Tiền xử lý: Loại bỏ giá trị missing (< 5 %) → chuẩn hoá các biến định tính bằng one‑hot encoding.
    3. Kiểm định đa cộng tuyến: VIF < 5 cho mọi biến.
    4. Mô hình hồi quy:
      • Mô hình OLS (baseline)
      • Fixed Effects Model (FEM) để loại bỏ đặc tính không quan sát được của công ty.
    5. Đánh giá: R‑squared, AIC, BIC, và độ hiệu lực của các biến CEO.
  • Project timeline

Milestone Thời gian
Thu thập & làm sạch dữ liệu 2 weeks
Phát triển script tiền xử lý 1 week
Xây dựng mô hình OLS & FEM 2 weeks
Kiểm định và so sánh 1 week
Viết báo cáo & tài liệu 1 week
Tổng cộng 7 weeks
  • Risk assessment & mitigation

    • Rủi ro dữ liệu không đồng nhất → Áp dụng chuẩn hoá định dạng PDF → sử dụng OCR nếu cần.
    • Rủi ro mô hình quá khớp → Kỹ thuật cross‑validation 5‑fold.
    • Rủi ro công cụ Stata không khả dụng → Dự phòng bằng R (plm package).
  • Quality assurance

    • Kiểm tra unit test cho script Python (pytest 8).
    • Kiểm tra reproducibility bằng Docker container.

Implementation và kết quả

Development process

  • Sprint 1 – Data acquisition
    • Script extract_reports.py (Python) thu thập 445 PDF, chuyển sang CSV.
    • Key algorithm: tabula.read_pdf(..., pages='all').
  • Sprint 2 – Data cleaning
    • Xử lý missing values bằng median imputation và chuyển đổi chuỗi thành số.
    • Code snippet (Python):
import pandas as pd
df = pd.read_csv('raw_data.csv')
# Impute missing numeric columns
numeric_cols = df.select_dtypes('number').columns
df[numeric_cols] = df[numeric_cols].fillna(df[numeric_cols].median())
# One‑hot encode categorical CEO attributes
df = pd.get_dummies(df, columns=['gender', 'education'], drop_first=True)
df.to_csv('clean_data.csv', index=False)
  • **Sprint 3 – Statistical