KTL cơ bảnPhân tích hồi quy

Hệ số tương quan Pearson

Hướng dẫn tính Hệ số tương quan Pearson với SPSS

Tóm tắt: Hệ số tương quan Pearson là công cụ thống kê cơ bản trong thực hành kinh tế lượng để đo lường mức độ tương quan tuyến tính giữa hai biến định lượng. Bài viết hướng dẫn chi tiết cách tính toán, diễn giải và ứng dụng hệ số tương quan Pearson trong nghiên cứu kinh tế, kèm theo các ví dụ thực tế từ kinh tế Việt Nam như phân tích mối quan hệ giữa thu nhập và chi tiêu, giá cả và cung cầu, đầu tư và tăng trưởng kinh tế.

Giới thiệu về tương quan trong kinh tế lượng

Trong thực hành kinh tế lượng, việc xác định mối quan hệ giữa các biến kinh tế là vấn đề cốt lõi. Tương quan (correlation) cung cấp thông tin quan trọng về mức độ liên hệ tương đối giữa hai biến số, đặc biệt hữu ích trong phân tích kinh tế vĩ mô và vi mô.

Có hai phương pháp chính để xác định hệ số tương quan trong nghiên cứu kinh tế:

  • Hệ số tương quan Pearson: Đo lường mối quan hệ tuyến tính giữa hai biến liên tục
  • Tương quan hạng Spearman: Đo lường mối quan hệ đơn điệu giữa hai biến thứ tự

Bài viết này tập trung vào hệ số tương quan Pearson, một công cụ không thể thiếu trong phân tích dữ liệu kinh tế. Tương quan là điều kiện tiên quyết trong nhiều mô hình kinh tế lượng như hồi quy tuyến tính, phân tích phương sai, và các kiểm định thống kê khác.

Ví dụ ứng dụng trong kinh tế Việt Nam:

  • Phân tích mối quan hệ giữa thu nhập bình quân đầu người và mức chi tiêu hàng tháng
  • Nghiên cứu tương quan giữa tỷ lệ lạm phát và lãi suất ngân hàng
  • Đánh giá mối liên hệ giữa đầu tư FDI và tăng trưởng GDP
  • Phân tích tương quan giữa giá dầu thế giới và chỉ số VN-Index

Xem thêm: Kiểm định tham số và phi tham số

Khái niệm và đặc điểm của hệ số tương quan Pearson

Hệ số tương quan Pearson (Pearson correlation coefficient, ký hiệu r) là thước đo định lượng mức độ tương quan tuyến tính giữa hai biến số. Nguyên tắc cơ bản của phương pháp này là tìm ra một đường thẳng phù hợp nhất với mối quan hệ tuyến tính giữa hai biến được phân tích.

Minh họa các mức độ tương quan Pearson từ -1 đến +1

Đặc điểm quan trọng của hệ số tương quan Pearson

  • Phạm vi giá trị: Hệ số r luôn nằm trong khoảng từ -1 đến +1
  • Tương quan dương: r > 0 cho thấy mối quan hệ cùng chiều
  • Tương quan âm: r < 0 cho thấy mối quan hệ ngược chiều
  • Không tương quan: r = 0 cho thấy không có mối quan hệ tuyến tính
  • Tương quan hoàn hảo: r = ±1 cho thấy mối quan hệ tuyến tính hoàn hảo
Lưu ý quan trọng: Hệ số tương quan Pearson đôi khi được gọi là “phân tích hồi quy giản đơn” do cùng nguyên tắc toán học, nhưng hai phương pháp này khác nhau về mục đích và cách diễn giải kết quả.

Quy tắc đánh giá mức độ tương quan

Trong thực hành kinh tế lượng, việc diễn giải mức độ tương quan dựa trên giá trị tuyệt đối của hệ số r là rất quan trọng. Quy tắc Evans (1996) được sử dụng rộng rãi trong nghiên cứu kinh tế:

Giá trị tuyệt đối |r|Mức độ tương quanÝ nghĩa trong kinh tế
0.00 – 0.19Rất yếuMối quan hệ gần như không đáng kể
0.20 – 0.39YếuMối quan hệ tồn tại nhưng không ổn định
0.40 – 0.59Đáng kểMối quan hệ có ý nghĩa thực tiễn
0.60 – 0.79MạnhMối quan hệ rõ ràng và đáng tin cậy
0.80 – 1.00Rất mạnhMối quan hệ rất chặt chẽ, có thể dự báo
Ví dụ minh họa: Nếu hệ số tương quan giữa thu nhập và chi tiêu của hộ gia đình Việt Nam là r = 0.75, điều này cho thấy mối quan hệ dương mạnh – khi thu nhập tăng thì chi tiêu có xu hướng tăng theo một cách khá dự đoán được.

Các vấn đề quan trọng trong phân tích tương quan

Loại biến phù hợp cho hệ số tương quan Pearson

Hệ số tương quan Pearson yêu cầu hai biến phải có thang đo khoảng hoặc tỉ lệ. Hai biến không nhất thiết phải cùng thang đo, ví dụ một biến có thang đo khoảng và một biến có thang đo tỉ lệ vẫn có thể phân tích được.

  • Phù hợp: Biến liên tục như thu nhập, tuổi, giá cả, sản lượng
  • Không phù hợp: Biến thứ tự như mức độ hài lòng, xếp hạng
  • Thay thế: Sử dụng Spearman hoặc Kendall’s Tau cho biến thứ tự

Vấn đề đơn vị đo lường

Câu hỏi thường gặp: Hai biến có cần cùng đơn vị đo không?

Trả lời: Hoàn toàn KHÔNG cần thiết. Hệ số tương quan Pearson không bị ảnh hưởng bởi đơn vị đo lường, do đó có thể so sánh giữa các cặp biến khác nhau.

Ví dụ thực tế: Phân tích tương quan giữa tuổi (đơn vị: năm) và mức glucose trong máu (đơn vị: mmol/l) của bệnh nhân tiểu đường tại Việt Nam.

Mối quan hệ nhân quả và vai trò biến số

Biểu đồ minh họa sự khác biệt giữa tương quan và nhân quả

Lưu ý quan trọng: Hệ số tương quan Pearson KHÔNG thể xác định mối quan hệ nhân quả hay vai trò biến độc lập/phụ thuộc. Nó chỉ đo lường mức độ tương quan giữa hai biến.

Ví dụ minh họa: Nghiên cứu tại một thành phố Việt Nam cho thấy tương quan dương mạnh (r = 0.7) giữa số lượng tội phạm và số lượng cảnh sát. Điều này không có nghĩa là:

  • Cảnh sát nhiều gây ra tội phạm
  • Tội phạm nhiều tạo ra cảnh sát
  • Có thể là do yếu tố thứ ba (quy mô dân số) ảnh hưởng đến cả hai

Tương quan và độ dốc đường thẳng

Minh họa sự khác biệt giữa hệ số tương quan và độ dốc đường thẳng

Lỗi thường gặp: Nhiều người nhầm lẫn hệ số tương quan Pearson với độ dốc của đường thẳng hồi quy. Hệ số r = +1 không có nghĩa là mỗi đơn vị tăng của biến này sẽ làm tăng một đơn vị của biến kia.

Giả thiết của kiểm định tương quan Pearson

Để có kết quả chính xác trong thực hành kinh tế lượng, kiểm định tương quan Pearson cần thỏa mãn năm giả thiết cơ bản:

Giả thiết 1: Thang đo biến số

Các biến phải có dạng khoảng hoặc tỉ lệ (biến liên tục).

Giả thiết 2: Phân phối chuẩn

Các biến phải có phân phối chuẩn hoặc xấp xỉ phân phối chuẩn.

Giả thiết 3: Mối quan hệ tuyến tính

Phải tồn tại mối quan hệ tuyến tính giữa hai biến.

Giả thiết 4: Không có điểm dị biệt

Cần tối thiểu hóa hoặc loại bỏ các điểm dị biệt. Nếu không thể loại bỏ, hãy sử dụng tương quan hạng Spearman hoặc Kendall’s Tau.

Giả thiết 5: Phương sai đồng nhất

Dữ liệu phải thỏa mãn phương sai đồng nhất (homoscedasticity).

Biểu đồ minh họa phương sai đồng nhất và phương sai thay đổi

Kiểm tra giả thiết: Trước khi thực hiện phân tích tương quan, cần kiểm tra tất cả giả thiết bằng các phương pháp thống kê phù hợp như kiểm định Shapiro-Wilk cho phân phối chuẩn, biểu đồ phân tán cho tính tuyến tính.

Công thức tính hệ số tương quan Pearson

Hệ số tương quan Pearson được tính trực tiếp từ dữ liệu đo lường thực tế (không phải dữ liệu xếp hạng). Quá trình tính toán gồm sáu bước cơ bản:

Bước 1: Tính giá trị trung bình

Tính trung bình của hai biến X và Y:

$$\left\{ \begin{array}{l}\bar{x} = \frac{\sum\limits_{i=1}^n x_i}{n}\\\bar{y} = \frac{\sum\limits_{i=1}^n y_i}{n}\end{array} \right.$$

Trong đó: n là số quan sát, \(\bar{x}\) và \(\bar{y}\) là giá trị trung bình của X và Y.

Bước 2: Tính độ lệch chuẩn

Tính độ lệch của từng quan sát so với trung bình:

$$\left\{ \begin{array}{l}x_i – \bar{x}\\y_i – \bar{y}\end{array} \right.$$

Bước 3: Tính tích và bình phương độ lệch

Tính các giá trị cần thiết cho công thức:

$$\left\{ \begin{array}{l}(x_i – \bar{x})(y_i – \bar{y})\\(x_i – \bar{x})^2\\(y_i – \bar{y})^2\end{array} \right.$$

Bước 4: Tính tổng các giá trị

Tổng hợp tất cả các giá trị đã tính:

$$\left\{ \begin{array}{l}\sum\limits_{i=1}^n (x_i – \bar{x})(y_i – \bar{y})\\\sum\limits_{i=1}^n (x_i – \bar{x})^2\\\sum\limits_{i=1}^n (y_i – \bar{y})^2\end{array} \right.$$

Bước 5: Tính hệ số tương quan r

Áp dụng công thức chính của hệ số tương quan Pearson:

$$r = \frac{\sum\limits_{i=1}^n (x_i – \bar{x})(y_i – \bar{y})}{\sqrt{\sum\limits_{i=1}^n (x_i – \bar{x})^2 \sum\limits_{i=1}^n (y_i – \bar{y})^2}}$$

Bước 6: Kiểm định ý nghĩa thống kê

Tính giá trị thống kê t để kiểm định ý nghĩa:

  • Với n > 10: \(t_s = \frac{\sqrt{(n-2)r^2}}{\sqrt{1-r^2}}\)
  • Với n ≤ 10: Sử dụng bảng tra cứu phân phối t

Ví dụ minh họa từ kinh tế Việt Nam

Để minh họa cách tính hệ số tương quan Pearson trong thực hành kinh tế lượng, chúng ta sử dụng dữ liệu về mối quan hệ giữa thu nhập hàng tháng và chi tiêu tiêu dùng của 10 hộ gia đình tại TP.HCM:

Bảng tính minh họa các bước tính hệ số tương quan Pearson

Dữ liệu mẫu:

Hộ gia đìnhThu nhập (triệu VND)Chi tiêu (triệu VND)
11512
22016
32518
41814
53022
Kết quả minh họa: Với dữ liệu trên, hệ số tương quan Pearson r = 0.89, cho thấy mối quan hệ dương rất mạnh giữa thu nhập và chi tiêu của hộ gia đình Việt Nam.

Hướng dẫn thực hành với SPSS

Trong SPSS, việc tính hệ số tương quan Pearson được thực hiện đơn giản thông qua menu AnalyzeCorrelateBivariate. Quá trình này sẽ được trình bày chi tiết trong bài viết về Tương quan hạng Spearman, bao gồm cả so sánh giữa hai phương pháp.

  • Giao diện thân thiện, dễ sử dụng
  • Kết quả chi tiết với kiểm định ý nghĩa thống kê
  • Có thể phân tích nhiều cặp biến cùng lúc
  • Xuất kết quả dưới nhiều định dạng khác nhau

Lưu ý quan trọng trong thực hành

Hạn chế của hệ số tương quan Pearson

Những điều cần lưu ý:

  • Chỉ đo lường mối quan hệ tuyến tính
  • Nhạy cảm với điểm dị biệt
  • Không thể suy luận nhân quả
  • Yêu cầu phân phối chuẩn

Khi nào nên sử dụng phương pháp khác

  • Dữ liệu thứ tự: Sử dụng Spearman hoặc Kendall’s Tau
  • Mối quan hệ phi tuyến: Sử dụng hồi quy đa thức
  • Nhiều điểm dị biệt: Sử dụng tương quan robust
  • Phân phối không chuẩn: Sử dụng kiểm định phi tham số

Tổng kết

Hệ số tương quan Pearson là công cụ cơ bản và quan trọng trong thực hành kinh tế lượng, giúp các nhà nghiên cứu đo lường mức độ tương quan tuyến tính giữa hai biến định lượng. Phương pháp này có ứng dụng rộng rãi trong phân tích kinh tế, từ nghiên cứu vi mô đến vĩ mô.

Tuy nhiên, việc sử dụng hệ số tương quan Pearson cần tuân thủ nghiêm ngặt các giả thiết thống kê và hiểu rõ hạn chế của phương pháp. Kết hợp với các công cụ phân tích khác như hồi quy tuyến tính, hệ số tương quan Pearson sẽ cung cấp cái nhìn toàn diện về mối quan hệ giữa các biến kinh tế.

Điểm then chốt:

  • Hệ số tương quan Pearson đo lường mối quan hệ tuyến tính giữa hai biến liên tục
  • Giá trị r nằm trong khoảng từ -1 đến +1, với quy tắc Evans để đánh giá mức độ tương quan
  • Cần kiểm tra đầy đủ năm giả thiết trước khi áp dụng
  • Tương quan không đồng nghĩa với mối quan hệ nhân quả
  • SPSS cung cấp công cụ tính toán đơn giản và chính xác

Mối liên hệ giữa tương quan và hồi quy

Phân tích tương quan có nhiều điểm tương đồng với hồi quy tuyến tính giản đơn về mặt toán học, nhưng khác nhau về mục đích và cách diễn giải. Tham khảo bài viết Tương quan và hồi quy tuyến tính giản đơn để hiểu rõ hơn về sự khác biệt giữa hai phương pháp này.

Phụ lục – Code thực hành đa phần mềm

Để hỗ trợ sinh viên làm quen với nhiều phần mềm thống kê khác nhau trong thực hành kinh tế lượng, dưới đây là code tính hệ số tương quan Pearson:

SPSS Syntax

SPSS Syntax (.sps)


* Phân tích tương quan Pearson trong SPSS
* Tác giả: Thực hành kinh tế lượng
* Mô tả: Tính hệ số tương quan Pearson giữa hai biến liên tục

* Mở file dữ liệu
GET FILE='C:\data\correlation_data.sav'.

* Thống kê mô tả ban đầu
DESCRIPTIVES VARIABLES=thu_nhap chi_tieu
  /STATISTICS=MEAN STDDEV MIN MAX.

* Kiểm tra phân phối chuẩn
EXAMINE VARIABLES=thu_nhap chi_tieu
  /PLOT=HISTOGRAM NPPLOT
  /STATISTICS=DESCRIPTIVES
  /CINTERVAL 95.

* Tính hệ số tương quan Pearson
CORRELATIONS
  /VARIABLES=thu_nhap chi_tieu
  /PRINT=TWOTAIL NOSIG
  /MISSING=PAIRWISE.

* Biểu đồ phân tán
GRAPH
  /SCATTERPLOT(BIVAR)=thu_nhap WITH chi_tieu
  /MISSING=LISTWISE.

* Kiểm định ý nghĩa với bootstrap
CORRELATIONS
  /VARIABLES=thu_nhap chi_tieu
  /PRINT=TWOTAIL SIG
  /MISSING=PAIRWISE
  /STATISTICS=DESCRIPTIVES XPROD
  /BOOTSTRAP=YES.

Stata Code

Stata Code (.do)


* Phân tích tương quan Pearson trong Stata
* Tác giả: Thực hành kinh tế lượng
* Mô tả: Tính hệ số tương quan Pearson và kiểm định ý nghĩa

* Mở dữ liệu
use "C:\data\correlation_data.dta", clear

* Thống kê mô tả
summarize thu_nhap chi_tieu

* Kiểm tra phân phối chuẩn
sktest thu_nhap chi_tieu
swilk thu_nhap chi_tieu

* Tính hệ số tương quan Pearson
correlate thu_nhap chi_tieu

* Tính hệ số tương quan với kiểm định ý nghĩa
pwcorr thu_nhap chi_tieu, sig

* Ma trận tương quan
corr thu_nhap chi_tieu, means

* Biểu đồ phân tán
scatter chi_tieu thu_nhap || lfit chi_tieu thu_nhap, ///
  title("Mối quan hệ giữa thu nhập và chi tiêu") ///
  xlabel(, grid) ylabel(, grid) ///
  legend(order(1 "Quan sát" 2 "Đường hồi quy"))

* Kiểm định tương quan với bootstrap
bootstrap, reps(1000): correlate thu_nhap chi_tieu

* Xuất kết quả
outreg2 using correlation_results, excel replace

R Code

R Code (.R)


# Phân tích tương quan Pearson trong R
# Tác giả: Thực hành kinh tế lượng
# Mô tả: Tính hệ số tương quan Pearson và visualize kết quả

# Tải các thư viện cần thiết
library(corrplot)      # Vẽ ma trận tương quan
library(ggplot2)       # Vẽ biểu đồ
library(psych)         # Thống kê mô tả
library(nortest)       # Kiểm định phân phối chuẩn
library(Hmisc)         # Tương quan với khoảng tin cậy

# Đọc dữ liệu
data <- read.csv("C:/data/correlation_data.csv")

# Xem cấu trúc dữ liệu
str(data)
head(data)

# Thống kê mô tả
summary(data)
describe(data)

# Kiểm tra phân phối chuẩn
shapiro.test(data$thu_nhap)
shapiro.test(data$chi_tieu)

# Kiểm định Anderson-Darling
ad.test(data$thu_nhap)
ad.test(data$chi_tieu)

# Tính hệ số tương quan Pearson
cor(data$thu_nhap, data$chi_tieu, method = "pearson")

# Kiểm định ý nghĩa
cor.test(data$thu_nhap, data$chi_tieu, method = "pearson")

# Tương quan với khoảng tin cậy
rcorr(as.matrix(data[,c("thu_nhap", "chi_tieu")]), type = "pearson")

# Ma trận tương quan
cor_matrix <- cor(data[,c("thu_nhap", "chi_tieu")])
print(cor_matrix)

# Vẽ ma trận tương quan
corrplot(cor_matrix, method = "circle", type = "upper", 
         order = "hclust", tl.cex = 0.8, tl.col = "black")

# Biểu đồ phân tán với đường hồi quy
ggplot(data, aes(x = thu_nhap, y = chi_tieu)) +
  geom_point(alpha = 0.7, size = 2) +
  geom_smooth(method = "lm", se = TRUE, color = "red") +
  labs(title = "Mối quan hệ giữa thu nhập và chi tiêu",
       x = "Thu nhập (triệu VND)",
       y = "Chi tiêu (triệu VND)") +
  theme_minimal()

# Kiểm tra các giả thiết
# 1. Tính tuyến tính
plot(data$thu_nhap, data$chi_tieu, 
     main = "Biểu đồ phân tán",
     xlab = "Thu nhập", ylab = "Chi tiêu")
abline(lm(chi_tieu ~ thu_nhap, data = data), col = "red")

# 2. Phân phối chuẩn
qqnorm(data$thu_nhap, main = "Q-Q Plot Thu nhập")
qqline(data$thu_nhap)

qqnorm(data$chi_tieu, main = "Q-Q Plot Chi tiêu")
qqline(data$chi_tieu)

# Bootstrap confidence interval
library(boot)
cor_boot <- function(data, indices) {
  sample_data <- data[indices, ]
  return(cor(sample_data$thu_nhap, sample_data$chi_tieu))
}

boot_results <- boot(data, cor_boot, R = 1000)
boot.ci(boot_results, type = "perc")

# Xuất kết quả
write.csv(cor_matrix, "correlation_results.csv")

Python Code

Python Code (.py)


# Phân tích tương quan Pearson trong Python
# Tác giả: Thực hành kinh tế lượng
# Mô tả: Tính hệ số tương quan Pearson với visualization

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from scipy import stats
from scipy.stats import pearsonr
import warnings
warnings.filterwarnings('ignore')

# Cài đặt hiển thị tiếng Việt
plt.rcParams['font.family'] = 'DejaVu Sans'
plt.rcParams['figure.figsize'] = (10, 6)

# Đọc dữ liệu
data = pd.read_csv('C:/data/correlation_data.csv')

# Xem cấu trúc dữ liệu
print("Cấu trúc dữ liệu:")
print(data.info())
print("\nThống kê mô tả:")
print(data.describe())

# Kiểm tra missing values
print("\nMissing values:")
print(data.isnull().sum())

# Kiểm tra phân phối chuẩn
def check_normality(data, column):
    """Kiểm tra phân phối chuẩn"""
    statistic, p_value = stats.shapiro(data[column])
    print(f"\nKiểm định Shapiro-Wilk cho {column}:")
    print(f"Statistic: {statistic:.4f}")
    print(f"P-value: {p_value:.4f}")
    if p_value > 0.05:
        print("Dữ liệu có phân phối chuẩn")
    else:
        print("Dữ liệu không có phân phối chuẩn")

check_normality(data, 'thu_nhap')
check_normality(data, 'chi_tieu')

# Tính hệ số tương quan Pearson
correlation, p_value = pearsonr(data['thu_nhap'], data['chi_tieu'])
print(f"\nHệ số tương quan Pearson: {correlation:.4f}")
print(f"P-value: {p_value:.4f}")

# Diễn giải kết quả
def interpret_correlation(r):
    """Diễn giải mức độ tương quan"""
    abs_r = abs(r)
    if abs_r < 0.2:
        return "Rất yếu"
    elif abs_r < 0.4:
        return "Yếu"
    elif abs_r < 0.6:
        return "Đáng kể"
    elif abs_r < 0.8:
        return "Mạnh"
    else:
        return "Rất mạnh"

print(f"Mức độ tương quan: {interpret_correlation(correlation)}")

# Ma trận tương quan
corr_matrix = data[['thu_nhap', 'chi_tieu']].corr()
print("\nMa trận tương quan:")
print(corr_matrix)

# Visualization
# 1. Biểu đồ phân tán
plt.figure(figsize=(12, 8))

plt.subplot(2, 2, 1)
plt.scatter(data['thu_nhap'], data['chi_tieu'], alpha=0.7)
plt.plot(np.unique(data['thu_nhap']), 
         np.poly1d(np.polyfit(data['thu_nhap'], data['chi_tieu'], 1))(np.unique(data['thu_nhap'])), 
         'r--', linewidth=2)
plt.xlabel('Thu nhập (triệu VND)')
plt.ylabel('Chi tiêu (triệu VND)')
plt.title('Biểu đồ phân tán với đường hồi quy')
plt.grid(True, alpha=0.3)

# 2. Heatmap tương quan
plt.subplot(2, 2, 2)
sns.heatmap(corr_matrix, annot=True, cmap='coolwarm', center=0,
            square=True, linewidths=0.5)
plt.title('Ma trận tương quan')

# 3. Histogram
plt.subplot(2, 2, 3)
plt.hist(data['thu_nhap'], bins=20, alpha=0.7, color='skyblue', edgecolor='black')
plt.xlabel('Thu nhập (triệu VND)')
plt.ylabel('Tần số')
plt.title('Phân phối thu nhập')

plt.subplot(2, 2, 4)
plt.hist(data['chi_tieu'], bins=20, alpha=0.7, color='lightgreen', edgecolor='black')
plt.xlabel('Chi tiêu (triệu VND)')
plt.ylabel('Tần số')
plt.title('Phân phối chi tiêu')

plt.tight_layout()
plt.show()

# Q-Q Plot để kiểm tra phân phối chuẩn
fig, axes = plt.subplots(1, 2, figsize=(12, 5))

stats.probplot(data['thu_nhap'], dist="norm", plot=axes[0])
axes[0].set_title('Q-Q Plot Thu nhập')
axes[0].grid(True, alpha=0.3)

stats.probplot(data['chi_tieu'], dist="norm", plot=axes[1])
axes[1].set_title('Q-Q Plot Chi tiêu')
axes[1].grid(True, alpha=0.3)

plt.tight_layout()
plt.show()

# Confidence interval bằng bootstrap
def bootstrap_correlation(x, y, n_bootstrap=1000):
    """Tính khoảng tin cậy bằng bootstrap"""
    bootstrap_corrs = []
    n = len(x)
    
    for _ in range(n_bootstrap):
        indices = np.random.choice(n, size=n, replace=True)
        x_boot = x[indices]
        y_boot = y[indices]
        corr, _ = pearsonr(x_boot, y_boot)
        bootstrap_corrs.append(corr)
    
    return np.array(bootstrap_corrs)

boot_corrs = bootstrap_correlation(data['thu_nhap'].values, data['chi_tieu'].values)
ci_lower = np.percentile(boot_corrs, 2.5)
ci_upper = np.percentile(boot_corrs, 97.5)

print(f"\nKhoảng tin cậy 95% cho hệ số tương quan:")
print(f"[{ci_lower:.4f}, {ci_upper:.4f}]")

# Regression analysis bổ sung
from sklearn.linear_model import LinearRegression
from sklearn.metrics import r2_score

X = data[['thu_nhap']]
y = data['chi_tieu']

model = LinearRegression()
model.fit(X, y)

y_pred = model.predict(X)
r2 = r2_score(y, y_pred)

print(f"\nPhân tích hồi quy bổ sung:")
print(f"R-squared: {r2:.4f}")
print(f"Hệ số góc: {model.coef_[0]:.4f}")
print(f"Hệ số chặn: {model.intercept_:.4f}")

# Xuất kết quả
results = pd.DataFrame({
    'Metric': ['Correlation', 'P-value', 'R-squared', 'CI_Lower', 'CI_Upper'],
    'Value': [correlation, p_value, r2, ci_lower, ci_upper]
})

results.to_csv('correlation_results.csv', index=False)
print("\nKết quả đã được xuất ra file correlation_results.csv")

Tài liệu tham khảo

Để tìm hiểu sâu hơn về hệ số tương quan Pearson và ứng dụng trong kinh tế lượng:

  • Evans, J.D. (1996). Straightforward Statistics for the Behavioral Sciences. Brooks/Cole Publishing.
  • Field, A. (2013). Discovering Statistics Using IBM SPSS Statistics. Sage Publications.
  • Gujarati, D.N. (2003). Basic Econometrics. McGraw-Hill Education.
  • IBM SPSS Statistics Documentation – Bivariate Correlations
  • Wooldridge, J.M. (2020). Introductory Econometrics: A Modern Approach. Cengage Learning.

Liên kết hữu ích:

Xem thêm
Back to top button