SPSS在CORRELATIONS
命令中有一個幫助函數來導出相關矩陣。從那裏你可以操縱數據來給出符合你的標準的相關對。首先,讓我們製作一些假數據來說明。現在
*Making fake data.
set seed 5.
input program.
loop i = 1 to 100.
end case.
end loop.
end file.
end input program.
dataset name test.
compute #base = RV.NORMAL(0,1).
vector X(20).
loop #i = 1 to 20.
compute X(#i) = #base*(#i/20) + RV.NORMAL(0,1).
end loop.
exe.
,我們可以運行CORRELATIONS
命令和表導出到一個新的數據集(我這裏命名爲Corrs
)。
DATASET DECLARE Corrs.
CORRELATIONS
/VARIABLES=X1 to X20
/MATRIX=OUT('Corrs').
不幸的是,SPSS返回完整的矩陣(加上樣本量的其他信息)。我們只能選擇我們感興趣的行(ROWTYPE_
列中的「CORR」),然後使用DO REPEAT
將矩陣的上半部分或下半部分設置爲系統缺失值。
DATASET ACTIVATE Corrs.
SELECT IF ROWTYPE_ = "CORR".
*Now only making lower half of matrix.
COMPUTE #iter = 0.
DO REPEAT X = X1 TO X20.
COMPUTE #iter = #iter + 1.
IF #iter > ($casenum-1) X = $SYSMIS.
END REPEAT.
我將它們設置爲系統缺失值,因爲接下來的部分,我將使用VARSTOCASES
重塑數據。這默認情況下會丟失缺失的值,所以我們最終不會得到冗餘相關對。
VARSTOCASES
/MAKE Corr FROM X1 TO X20
/INDEX X2 (Corr)
/DROP ROWTYPE_.
RENAME VARIABLES (VARNAME_ = X1).
現在您擁有您的關聯配對列表,並且可以選擇符合您的標準的關聯關係。
SELECT IF ABS(Corr) >= .5.
可以很容易地將相關對做成MACRO函數來返回對列表。下面是該功能,重新創建這裏使用的確切步驟。
DEFINE !CorrPairs (!POSITIONAL !CMDEND)
DATASET DECLARE Corrs.
CORRELATIONS
/VARIABLES=!1
/MATRIX=OUT('Corrs').
DATASET ACTIVATE Corrs.
SELECT IF ROWTYPE_ = "CORR".
COMPUTE #iter = 0.
DO REPEAT X = !1.
COMPUTE #iter = #iter + 1.
IF #iter > ($casenum-1) X = $SYSMIS.
END REPEAT.
VARSTOCASES
/MAKE Corr FROM !1
/INDEX X2 (Corr)
/DROP ROWTYPE_.
RENAME VARIABLES (VARNAME_ = X1).
!ENDDEFINE.
宏只是需要的變量的列表(在活動數據集)來獲取相關性,並返回命名Corrs
與相關對與在X1和X2列中定義的變量名的第二數據集。然後,在定義了上面的宏之後,可以簡單地通過下面重新創建上述步驟。
!CorrPairs X1 to X20.
SELECT IF ABS(Corr) >= .5.
EXECUTE.