Xin chào các bạn!
Ở các bài trước thongke.info đã giới thiệu tới các bạn những thông tin
cơ bản để các bạn có thể tạo ra một form nhập liệu bằng phần mềm CsPro như cách
tạo từ điển, cách tạo form, và cách tạo lệnh logic. Ở bài này, chúng tôi sẽ giới
thiệu với các bạn cách tạo lệnh consistency check trong CSPro.
Như các bạn đã biết, chúng ta có 2 loại lệnh để kiểm soát và kiểm tra số
liệu đó là:
+ Interactive check: lệnh kiểm tra trực tiếp: đây là các lệnh/công thức
các bạn sử dụng trong quá trình nhập liệu trực tiếp. Ví dụ: giới hạn cho trường
tuổi là những người trong độ tuổi 15-49, hoặc các bạn tạo các lệnh cho các bước
nhảy….
+ Consistency check: là lệnh chỉ được sử dụng để kiểm tra tính nhất quán
của số liệu, ví dụ: các bạn kiểm tra liệu có trường hợp nào nam giới lại trả lời
những câu hỏi về mang thai, hay những giá trị outliers….
Consistency check trong Epidata chắc hẳn đã rất quen thuộc với các bạn,
sau khi các bạn nhập xong số liệu các bạn sẽ viết lệnh để kiểm tra tính nhất
quán của số liệu vừa nhập. Điều này cũng giống như trong CsPro khi các bạn sử dụng
phần mềm này để nhập liệu, khi các bạn sử dụng CsPro để tạo form phỏng vấn thì
phần này cần được hoàn thiện trước và được sử dụng trong quá trình thu thập số
liệu để đảm bảo tính nhất quán và chính xác của số liệu thu thập, trong CsPro gọi
đây là phần kiểm tra logic hay Batch file. Đây là một phần giúp ích quan trọng
trong việc đảm bảo chất lượng số liệu thu thập được từ thực địa, và hỗ trợ các
giám sát viên rất nhiều.
Để tạo Batch file, các bạn thực mở CsPro/create a new application
Sau đó các bạn chọn Batch Edit Application và chọn OK
Sau đó các bạn đặt tên file Batch, chú ý cần đặt tên file Batch giống
như file từ điển (dictionary) để lấy link của 2 files với nhau.
Đây là hình ảnh của batch file. Batch file sẽ được lưu dưới dạng hình ảnh
cây bút chì và được đặt và lưu cùng folder với các files khác.
Đây là hình ảnh file batch file sẽ gồm cây từ điển bên trái (gồm tất cả
các biến), bên tay phải là các lệnh viết để kiểm tra số liệu và góc dưới là các
thư mục tin để báo lỗi để mình biết số liệu đó có lỗi gì.
Một số lệnh kiểm tra chính trong
batch file.
1. Kiểm tra giá trị missing: nhằm đảm bảo số liệu đầy đủ, không bị missing
hay bỏ xót thông tin nào trừ khi có bước nhảy.
PROC SA1B
if $=notappl then
errmsg(001,"SA1B-Mã số Trạm
y tế");
endif;
Ví dụ lệnh trên nhằm kiểm tra xem biến SA1B có bị missing thông tin hay
không.
2. Kiểm tra giá trị ngoài khoảng
PROC SA4A
if $ in 1:31 then
else
errmsg(002,"Câu
sb4a",$,1,31);
endif;
Ví dụ biến ngày SA4A chỉ nhận giá trị từ 1-31 ngày, không thể có ngày 32
3. Kiểm tra tính logic của thông
tin: khi thiết kế bộ câu hỏi
thường có những câu được thiết kế để kiểm tra tính logic của các thông tin và đảm
bảo chất lượng số liệu thu thập được.
PROC SB7
if $ in 1:2 then
else
errmsg(002,"Câu
sb7",$,1,2);
endif;
if sb5=1 then
if sb7=1 then
errmsg(006,"Kiểm tra logic
câu sb5: hoàn toàn không hút thuốc lá nhưng có hút trong 7 ngày qua");
endif;
endif;
if sb5=3|sb5=4 then
if sb7=2 then
errmsg(006,"Kiểm tra logic
câu sb5: hút thuốc lá hầu hết các ngày hoặc hàng ngày nhưng không hút trong 7
ngày qua");
endif;
endif;
Ví dụ ở câu trên kiểm tra logic
giữa câu Sb5- Hiện tại, tần suất hút thuốc lá như thế nào và Sb7-trong 7 ngày
qua có hút thuốc lá không.
Ở trường hợp 1-Sb5=1: hiện tại
không hút thuốc lá nhưng câu Sb7=1-có hút thuốc trong 7 ngày quaàTrong
trường hợp này cần kiểm tra lại xem đáp án nào bất hợp lý.
Ở trường hợp 2 – Sb5= 3 hoặc
Sb5=4: hiện tại hút thuốc lá hầu hết các ngày hoặc hàng ngày nhưng sb7=2-không
hút thuốc lá trong 7 ngày quaàTrong
trường hợp này cần kiểm tra lại xem đáp án nào bất hợp lý.
4. Kiểm tra đáp án khác trong các
câu có phần khác ghi rõ
PROC SB7AK
if sb7a=6 &$=""
then
errmsg (007, "sb7k: thiếu
thông tin khác");
endif;
if
sb7a<>6&$<>"" then
errmsg (007, "sb7ak: thừa
thông tin khác");
endif;
5. Kiểm tra tiêu chí loại trừ - đặc
biệt hữu ích khi bạn làm logic cho các
câu hỏi sang lọc trước khi chọn đối tượng trả lời.
PROC SC1
if $ in 1:2 then
else
errmsg(002,"Câu
sc1",$,1,2);
endif;
if (sb2<18|sb3a=1|sb3a=2|sb3a=3|sb3a=4|sb5=1|sb7=2|sb8a=3|sb9a=1)&$=1
then
errmsg(006,"sc1-phải loại trừ-kiểm
tra lại các tiêu chí loại trừ");
endif;
if
sc21=2&sc22=2&sc23=2&sc24=2&sc25=2&sc26=2&sc27=2&$=2
then
errmsg(006,"sc1-đủ tiêu chuẩn-kiểm
tra lại các tiêu chí loại trừ");
endif;
if
(sc21=1|sc22=1|sc23=1|sc24=1|sc25=1|sc26=1|sc27=1)&$=1 then
errmsg(006,"sc1-phải loại trừ-kiểm
tra lại các tiêu chí loại trừ");
endif;
6. Kiểm tra câu nhiều lựa chọn để
đảm bảo các trường con trong câu hỏi nhiều lựa chọn đã có những đáp án phù hợp,
không bị missing thôn tin.
PROC C1
if id2<>notappl then
if
c1_entry(1)=""&c1_entry(2)=""&c1_entry(3)=""&c1_entry(4)=""
&c1_entry(5)=""
then
errmsg (003, "c1-Mising
thông tin");
endif;
endif;
PROC C1_ENTRY000
tencau="Câu c1 - ";
tenmuc( 1)="Mã 1";
tenmuc( 2)="Mã 2";
tenmuc( 3)="Mã 3";
tenmuc( 4)="Mã 4";
tenmuc( 5)="Mã 5";
do ix = 1 while ix <= 5;
if c1_ENTRY(ix) = "0" |
c1_ENTRY(ix) = "1" then
else
errmsg(004,concat(tencau,tenmuc(ix)),"c1-sai
hoặc thiếu giá trị̣",0,1);
endif;
enddo;
if c1_ENTRY(1)="0" then
if c1_ENTRY(2)="0" then
if c1_ENTRY(3)="0" then
if c1_ENTRY(4)="0" then
if c1_ENTRY(5)="0" then
errmsg(005,"c1: Câu Nhiều lựa
chọn nhưng tất cả các lựa chọn đều = ", c1_entry(1));
endif;
endif;
endif;
endif;
endif;
……còn tiếp
|