Thăm dò dữ liệu khảo sát tình hình kinh tế bệnh nhân – Điều tra thực nghiệm 2014

Posted on September 2, 2014 by

7


Op-Economica, 2-9-2014 — Như đã trình bày về dự án Nghiên cứu về điều kiện kinh tế của bệnh nhân. Sau những suy nghĩ về cách thức tổ chức dữ liệu, một số hướng hình thành giả thiết cho câu hỏi nghiên cứu trọng tâm, và cả một số câu hỏi liên quan, chúng tôi bắt tay vào thử.

Những phép thử này là cách kiểm tra quá trình nhập liệu, và thăm dò khả năng hình thành các liên kết từ dữ liệu, nhờ sự gợi ý của các mô hình lý thuyết (thuần túy dựa trên logic).

Trước mắt, đây mới chỉ là đợt thử lần đầu, các tính toán dữ liệu cũng mới tạm dừng ở 88 ca điều trị bệnh nhân đầu tiên. Cơ bản là hình thành kiểu như ‘prototype’ cho quá trình điều tra và khảo sát dữ liệu sâu tiếp theo.

Các kết quả và phương án xử lý dữ liệu sẽ được cập nhật dần, nhất là khi chúng tôi đạt một số tiến bộ đáng kể trong quá trình tổ chức và phân tích dữ liệu, hay bắt gặp một vài nhận thức thú vị. Cũng có thể những vấn đề hóc búa khó giải quyết cũng sẽ được đưa lên để trao đổi.

* * *

Đầu tiên gọi dữ liệu từ file csv:

> psdat <- read.table(“c:/DrVuongQH/PS.csv”, sep=”,”,header=TRUE)

Thử xem lại cấu trúc và chi tiết (kiểm tra xem có lỗi gì trong khi nhập liệu không): sử dụng lệnh >psdat.

Kiểm tra thử 10 bản ghi đầu tiên, copy thể hiện dưới đây (trước đó, ta bỏ cột thứ 2 là cột tên, để chỉ còn giữ lại mã bệnh nhân ở cột đầu tiên):

> psdat2 <-psdat[,-2]
> psdat22014-09-02_psdat12014-09-02_psdat22014-09-02_psdat3

Việc tiếp theo là sắp xếp vào các bảng từ kích thước đơn giản đến phức tạp. Các bảng phân phối tần suất sử dụng dữ liệu đếm.

> attach(psdat)
> tab1 <- xtabs(~Res+Insured+Burden, data=psdat)
> ftable(tab1)2014-09-02_multiway1

Thử kiểm định khi bình phương (\chi^2):

> summary(tab1)

Call: xtabs(formula = ~Res + Insured + Burden, data = psdat)

Number of cases in table: 88
Number of factors: 3
Test for independence of all factors:
Chisq = 15.919, df = 10, p-value = 0.102
Chi-squared approximation may be incorrect

Thử với bảng đơn giản hơn, 2-way:

> tab2 <- xtabs(~Insured+Burden, data=psdat)

> ftable(tab2)

Burden Affected Distressed Indebted Strong

Insured

No                   15         0       30     6
Yes                   6         1       27     3

> summary(tab2)

Call: xtabs(formula = ~Insured + Burden, data = psdat)
Number of cases in table: 88
Number of factors: 2
Test for independence of all factors:

Chisq = 3.886, df = 3, p-value = 0.274

Chi-squared approximation may be incorrect

Đối biến tham gia vào bảng, vẫn 2-way:

> tab3 <- xtabs(~Res+Burden, data=psdat)

> summary(tab3)
Call: xtabs(formula = ~Res + Burden, data = psdat)
Number of cases in table: 88
Number of factors: 2
Test for independence of all factors:
Chisq = 10.591, df = 3, p-value = 0.01416
Chi-squared approximation may be incorrect

> ftable(tab3)

Burden Affected Distressed Indebted Strong

Res

No               12         1       48     4

Yes               9         0       9     5

Kiểm tra thử ‘dáng điệu’ theo tần suất số ngày nằm viện của điều tra:

> hist(Days)

2014-09-02_histdays

Nên có thêm histogram về phân phối mức chi tiêu bình quân ngày của các bệnh nhân trong mẫu điều tra. Hai đồ thị histogram này nói lên rất nhiều ý nghĩa có thể quan sát khá trực giác, và ấn tượng. Thử thêm một phân phối tần suất cho mức độ “cảm kích” của bệnh nhân với hệ thống y tế:

> attach(psdat)
> hist(Senv)

2014-09-02_histsenv> detach(psdat)

Sau khi sử dụng xong dữ liệu psdat thì kết bằng lệnh: >detach(psdat)

Tương tự cách tạo bảng trên, có thể “cấu trúc” các bảng dữ liệu mang ý nghĩa khác nhau, thể hiện một số bằng chứng cho các quan hệ dữ liệu khả dĩ. Chắc chắn sẽ mang lại kết quả nào đó đáng để hiểu biết.

Trong nghiên cứu này sẽ cần sử dụng các hàm vcd và vcdExtra, do đó cần load package “grid”, rồi gọi hàm:

> install.packages(“grid”)
Installing package into ‘C:/Users/toshiba/Documents/R/win-library/3.0’
(as ‘lib’ is unspecified)
— Please select a CRAN mirror for use in this session —
Warning: package ‘grid’ is in use and will not be installed

> library(vcd)

Một ghi chú từ trao đổi 2-9-2014 với NPKC:

Về cơ sở thực tiễn (từ quan sát chi trả của bệnh nhân) về mức phân chia cao thấp của người được bảo hiểm xã hội:

  Cao (Hi) Trung bình (Med) Thấp (Lo)
80% >50% 30-50% <30%
90% >55% 35-55% <35%

Phân mức chi trả bình quân ngày theo category thấp-cao:

  Chi phí (triệu đ/ngày)
UHi 8.5
Hi 5.5-8.4
Med 1.5-5.4
Lo <1.5

Như vậy, để gán giá trị category cho chính xác, ta sử dụng tiêu chuẩn trên và xử lý trong bảng gốc excel (từ đó tạo ra file .csv), sử dụng lệnh điều kiện IF như sau:

=IF(Q2>10, “Uhi”, IF(Q2>5.4, “Hi”, IF(Q2>1.5, “Med”, “Lo”)))

Một giả thiết có thể đưa vào hồi quy/phân tích (quan trọng):

Biến phụ thuộc: Tình trạng tài chính sau điều trị (hiện nay là 4 mức; có thể transform để trở thành biến nhị thức: Stable vs. Distressing. Sử dụng các biến predictor tiêu biểu như sau: 1)Income; 2) Illness; 3) Days in hospital; 4) Insured or MaxIns or % Insured; 5) Dcost; và v.v.. Tùy thực tế kết cục mà điều chỉnh specification với sự tồn tại của các biến: bỏ bớt hay bổ sung.

Một nhóm các yếu tố cần kiểm tra quan hệ (mức độ xác lập, ảnh hưởng và ý nghĩa thống kê) từ dữ liệu thực chứng:

Thu nhập/tích lũy Cấu trúc nguồn Cấu trúc khoản
Thu nhập Chi trả từ BHYT Khám điều trị trực tiếp
Ổn định công việc Chi trả từ thu nhập/gia đình Liên quan người nhà / phục vụ
Số năm làm việc Chi trả từ XH đóng góp “Quan hệ” biếu xén, lót tay
Vị thế gia đình Chi trả từ vay  

Về mô hình log-linear và kiểm định liên quan (nên thử luôn trên 88 ca bệnh)

[…]

* Ghi chú: Phần dưới đây để chờ các phân tích riêng lẻ tiếp theo:

> psdat <- read.table(“c:/DrVuongQH/PS.csv”, sep=”,”,header=TRUE)

> attach(psdat)

 


© 2014 Dr. Vuong Quan Hoang – Nghiem P. K. Cuong.