2015-04-22 129 views
0

我已經在R和SAS中編寫了相同的程序(在Mac上運行Oracle VirtualBox的大學版),我注意到了一個差異 - 這意味着我搞砸了一些東西。SAS和R之間的輸出差異

第一個差異出現在我運行的主成分分析中,我相信它與這兩個程序中可用函數的固有選項有關。我正在努力研究文檔,但我會非常感謝本網站的傑出專家的幫助。

我一直在使用這個文件 - https://drive.google.com/file/d/0B9oqAm9yKaC3bEpicEstRW8wUzg/view?usp=sharing - 來測試這兩個程序。

在R,我對PCA代碼非常簡單:

pca1=prcomp(predictor_matrix, scale.=TRUE) 

和第一個觀測轉化爲以下

<1.01, -0.79, -0.03, -1.08, 1.86, 
-0.13, 0.04, -0.03, 0.02, -0.01> 

在SAS,我對PCA的代碼如下所示:

proc factor data=regressors 
    simple corr 
    Mineigen=0 /*Retain all eigenfunctions*/ 
    NFactors=10 
    All /*Print All Optional data*/ 
    Out=NewData /*Get the transformed data*/ 
    ; 
run; 

並且第一次觀察轉化爲以下

<0.55, -0.53, -0.02, -0.89, 1.96, 
1.45, 0.89 , 1.18, 1.15, 1.46> 

NOW - 特徵向量矩陣在兩個程序中都是相同的,但是特徵值不同,所以我想這個問題與縮放有關。但我是SAS的全新人物,並且可以真正使用一些關於如何讓這兩個程序的結果趨於一致的指示。

回答

2

PCA的SAS proc是proc princomp,而不是proc factor。嘗試

proc princomp data=regressors n=10 out=newdata; 
run; 
+0

您可能需要也可能不需要包含選項來縮放因素(無法回想)。如果不進行縮放,具有'scale。= TRUE'和SAS的R將始終不同。 –

+0

@AlexA。選項'cov'使用協方差矩陣;默認是使用相關性。 –

+0

謝謝你們兩位。你真的是在諸如我之類的凡人之間編程的神。 – ANON

相關問題