thongke.info
Đang tải dữ liệu...

  
Trang chủGiới thiệuPhương pháp luậnQuản lý, phân tích số liệuCơ sở dữ liệu, xuất bản phẩmĐào tạo và tư vấnDiễn đàn
Quản lý số liệu (Data management)
Nhập liệuXử lý số liệu
Xử lý giá trị missing trong SPSS
Trang chủ  >  Quản lý, phân tích số liệu  >  Quản lý số liệu (Data management)  >  Xử lý số liệu  >  Xử lý giá trị missing (Working with missing values)  >  Xử lý giá trị missing trong SPSS

Xử lý giá trị missing

Trong quá trình thu thập số liệu, mặc dù đã cố gắng kiểm soát chất lượng nhưng khó có thể tránh khỏi việc bị missing số liệu (hay số liệu bị thiếu thông tin). Có một số cách để xử lý các giá trị missing đó, thongke.info xin giới thiệu một số lệnh syntax cơ bản để xử lý giá trị missing.

a. Thay thế giá trị missing bằng giá trị trung bình của biến nhiều phân loại

Tạo bộ số liệu với một số giá trị missing.

SET SEED=123456.

INPUT PROGRAM.

LOOP id=1 TO 250.

COMPUTE cat1=RND(UNIFORM(25)).

IF (UNIFORM(1)>.15) var1=UNIFORM(5).

END CASE.

END LOOP.

END FILE.

END INPUT PROGRAM.

SAVE OUTFILE='c:\temp\temp.sav'.

Cách 1

GET FILE='c:\temp\temp.sav'.

SORT CASES BY cat1.

AGGREGATE OUTFILE=*

/PRESORTED

/BREAK=cat1

/meanvar1=MEAN(var1).

LIST

Có thể kiểm tra kết quả

COMPUTE nobreak=1.

MATCH FILES FILE=* /BY=nobreak /FIRST=first /LAST=last.

WRITE OUTFILE='c:\temp\define vars1.sps.

/'IF MISSING(var2) AND cat1 = 'cat1' var2='meanvar1'.'.

EXECUTE.

GET FILE='c:\temp\temp.sav'.

COMPUTE var2=var1. /* preserve original values*/.

INCLUDE 'c:\temp\define vars1.sps'.

EXECUTE.

Cách 2

GET FILE='c:\temp\temp.sav'.

SORT CASES BY cat1.

SPLIT FILE BY cat1.

RMV var2=MEAN(var1,ALL).

SPIT FILE OFF.

b. Thay thế giá trị missing bằng giá trị trung bình


SET MPRINT=no.


define impute (!positional !enclose ('(',')')


/ !positional !enclose('(',')')


/ !positional !enclose ('(',')'))


!LET !varlist=!HEAD(!1)


!DO !var !IN (!TAIL(!1))


!LET !varlist=!CONCAT(!varlist,',',!var)


!DOEND


COUNT #mitems = !1 (MISSING).


COUNT #items = !1 (lo thru hi).


compute #diff = 1 - (#mitems / #items).


DO IF (#diff LT .75).


compute #FILL = MEAN(!varlist).


END IF.


DO REPEAT x = !1.


if missing(x) x = #fill.


END REPEAT.


compute scale1 = SUM(!varlist ).


EXECUTE .


!enddefine.


SET MPRINT=yes.


* call the macro.


impute (q2a q2b q2c).


Thongke.info cám ơn Mr. Raynald Levesque đã cho phép thongke.info sử dụng một số syntax trong bài viết này từ www.spsstools.net



Số lượt đọc:  3583  -  Cập nhật lần cuối:  19/06/2012 05:17:20 PM