आपके विश्लेषण के लक्ष्य पर निर्भर करता है। कुछ सामान्य प्रथाएं, जिनमें से कुछ का उल्लेख व्हिबर लिंक में किया गया है:
- मानकीकरण आमतौर पर तब किया जाता है जब चर जिस पर पीसीए किया जाता है, उसी पैमाने पर मापा नहीं जाता है। ध्यान दें कि मानकीकरण का तात्पर्य सभी चर को समान महत्व प्रदान करना है।
- यदि उन्हें समान पैमाने पर नहीं मापा जाता है और आप गैर-मानकीकृत चर पर काम करना चुनते हैं, तो अक्सर ऐसा होता है कि प्रत्येक पीसी में एक एकल चर का प्रभुत्व होता है और आपको बस चर के क्रम में चर का क्रम मिलता है। (प्रत्येक (प्रारंभिक) घटक के लोडिंग में से एक +1 या -1 के करीब होगा।)
- दो तरीकों से अक्सर अलग-अलग परिणाम होते हैं, जैसा कि आपने अनुभव किया है।
सहज ज्ञान युक्त उदाहरण:
मान लीजिए कि आपके पास दो चर हैं: एक पेड़ की ऊंचाई और एक ही पेड़ का घेरा। हम वॉल्यूम को एक कारक में बदल देंगे: एक पेड़ वॉल्यूम में उच्च होगा यदि इसकी मात्रा 20 घन फीट से बड़ी है, और कम मात्रा में अन्यथा। हम आर में पहले से लोड होने वाले ट्री डेटासेट का उपयोग करेंगे।
>data(trees)
>tree.girth<-trees[,1]
>tree.height<-trees[,2]
>tree.vol<-as.factor(ifelse(trees[,3]>20,"high","low"))
अब मान लीजिए कि ऊंचाई वास्तव में पैरों के बजाय मील में मापा गया था।
>tree.height<-tree.height/5280
>tree<-cbind(tree.height,tree.girth)
>
>#do the PCA
>tree.pca<-princomp(tree)
>summary(tree.pca)
Importance of components:
Comp.1 Comp.2
Standard deviation 3.0871086 1.014551e-03
Proportion of Variance 0.9999999 1.080050e-07
Cumulative Proportion 0.9999999 1.000000e+00
पहला घटक डेटा में परिवर्तनशीलता का लगभग 100% बताता है। लोडिंग:
> loadings(tree.pca)
Loadings:
Comp.1 Comp.2
tree.height -1
tree.girth 1
चित्रमय मूल्यांकन:
>biplot(tree.pca,xlabs=tree.vol,col=c("grey","red"))
हम देखते हैं कि अधिक मात्रा में पेड़ों के पास एक उच्च पेड़ की परिधि होती है, लेकिन तीनों ऊँचाई पेड़ों की मात्रा के बारे में कोई जानकारी नहीं देती है। यह गलत है और दो अलग-अलग इकाई उपायों का परिणाम है।
हम एक ही इकाइयों का उपयोग कर सकते हैं, या हम चर का मानकीकरण कर सकते हैं। मुझे उम्मीद है कि दोनों परिवर्तनशीलता की अधिक संतुलित तस्वीर को जन्म देंगे। बेशक इस मामले में कोई यह तर्क दे सकता है कि चर की एक ही इकाई होनी चाहिए, लेकिन मानकीकृत नहीं होनी चाहिए, जो एक वैध तर्क हो सकता है, क्या यह नहीं था कि हम दो अलग-अलग चीजों को माप रहे हैं। (जब हम पेड़ के वजन और पेड़ की परिधि को मापेंगे, तो जिस पैमाने पर दोनों को मापा जाना चाहिए वह अब बहुत स्पष्ट नहीं है। इस मामले में हमारे पास मानकीकृत चर पर काम करने के लिए एक स्पष्ट तर्क है।)
>tree.height<-tree.height*5280
>tree<-cbind(tree.height,tree.girth)
>
>#do the PCA
>tree.pca<-princomp(tree)
> summary(tree.pca)
Importance of components:
Comp.1 Comp.2
Standard deviation 6.5088696 2.5407042
Proportion of Variance 0.8677775 0.1322225
Cumulative Proportion 0.8677775 1.0000000
> loadings(tree.pca)
Loadings:
Comp.1 Comp.2
tree.height -0.956 0.293
tree.girth -0.293 -0.956
>biplot(tree.pca,xlabs=tree.vol,col=c("grey","red"))
अब हम देखते हैं कि जो पेड़ ऊँचे होते हैं और जिनमें एक बड़ा घेरा होता है, कम मात्रा वाले पेड़ों (ऊपरी दाएं कोने) के लिए कम ऊंचाई और कम ऊँचाई की तुलना में मात्रा (नीचे बाएँ कोने) में ऊँची होती है। यह सहज ज्ञान बोध कराता है।
यदि कोई बारीकी से देखता है, हालांकि, हम देखते हैं कि उच्च / निम्न मात्रा के बीच का अंतर गर्थ दिशा में सबसे मजबूत है और ऊंचाई दिशा में नहीं है। आइए देखें कि जब हम मानकीकरण करते हैं तो क्या होता है:
>tree<-scale(tree,center=F,scale=T)
>tree.pca<-princomp(tree)
> summary(tree.pca)
Importance of components:
Comp.1 Comp.2
Standard deviation 0.2275561 0.06779544
Proportion of Variance 0.9184749 0.08152510
Cumulative Proportion 0.9184749 1.00000000
> loadings(tree.pca)
Loadings:
Comp.1 Comp.2
tree.height 0.203 -0.979
tree.girth 0.979 0.203
>biplot(tree.pca,xlabs=tree.vol,col=c("grey","red"))
वास्तव में, गर्थ अब उच्च और निम्न मात्रा वाले पेड़ों में अंतर का बहुमत समझाता है! (बीप्लॉट में तीर की लंबाई मूल चर में विचरण का संकेत है।) इसलिए भले ही चीजों को एक ही पैमाने पर मापा जाए, मानकीकरण उपयोगी हो सकता है। मानकीकरण की सिफारिश नहीं की जा सकती है जब हम उदाहरण के लिए पेड़ों की विभिन्न प्रजातियों की लंबाई की तुलना करते हैं क्योंकि यह बिल्कुल एक ही माप है।