thongke.info
Đang tải dữ liệu...
Phần mềm Cspro
Trang chủ  >  Main menu  >  Phần mềm thống kê  >  Phần mềm Cspro

Batch File trong CS Pro

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