Keşif faktörü analizi ile R ve SPSS arasındaki tutarsızlıkları yorumlama


14

Bilgisayar bilimi yüksek lisans öğrencisiyim. Bir araştırma projesi için keşifsel faktör analizi yapıyorum. Projeyi yöneten meslektaşlarım SPSS kullanıyor, ben R kullanmayı tercih ediyorum. İki istatistiksel paket arasında büyük bir tutarsızlık bulunana kadar bu önemli değildi.

Ekstraksiyon yöntemi olarak temel eksen faktoringini kullanıyoruz (lütfen PCA ve faktör analizi arasındaki farkın farkında olduğumu ve en azından kasıtlı olarak PCA kullanmadığımızı unutmayın). Okuduğum kadarıyla, bu R belgelerine göre, R'deki "ana eksen" yöntemine ve SPSS'de "ana eksen faktoringine" veya "ağırlıksız en küçük karelere" karşılık gelmelidir . Biz kullanan eğik dönüş yöntemi (özellikle, promax biz ilişkili faktörler bekledikleri için) ve yorumlama vardır model matrisi .

R ve SPSS'de iki prosedürü uygulayan büyük farklılıklar vardır. Desen matrisi farklı yükler verir. Bu, değişken ilişkilere az çok aynı faktörü verse de, karşılık gelen yüklemeler arasında 0.15'e kadar bir fark vardır; bu, ekstraksiyon yönteminin ve promax rotasyonlarının sadece farklı bir uygulamasıyla beklenenden daha fazla görünmektedir. Ancak, bu en şaşırtıcı fark değildir.

Faktörler tarafından açıklanan kümülatif varyans SPSS sonuçlarında yaklaşık% 40 ve R sonuçlarında% 31'dir. Bu büyük bir fark ve R yerine SPSS kullanmak isteyen meslektaşlarıma yol açtı. Bununla ilgili bir sorunum yok, ancak büyük bir fark bana bir şeyi yanlış yorumlayabileceğimizi düşündürüyor, bu bir problem.

Suları daha da çamurlandıran SPSS, ağırlıksız en küçük kareler faktoringini çalıştırdığımızda farklı türlerde açıklanmış varyans bildirir. Başlangıç ​​Özdeğerlerine göre açıklanan varyans oranı% 40, Kareli Yüklerin Ekstraksiyon Toplamlarından (SSL) açıklanan varyans oranı% 33'tür. Bu, İlk Özdeğerlerin bakmak için uygun sayı olmadığını düşünmeme yol açıyor (bunun, dönmeden önce açıklanan varyans olduğundan şüpheleniyorum, ancak bu benim için çok büyük. Daha da kafa karıştırıcı olan SPSS, Rotasyon SSL'yi de gösterir, ancak açıklanan varyansın yüzdesini hesaplamaz (SPSS, korelasyonlu faktörlere sahip olmanın, toplam varyansı bulmak için SSL'yi ekleyemeyeceğim anlamına geldiğini ve gördüğüm matematikle anlam ifade ettiğini söyledi). R tarafından bildirilen SSL'ler bunlardan hiçbiriyle eşleşmiyor ve R bana toplam varyansın% 31'ini açıkladığını söylüyor. R'nin SSL'leri, Rotasyon SSL'leriyle en yakından eşleşir. R'nin orijinal korelasyon matrisindeki özdeğerleri, SPSS'den Başlangıç ​​Özdeğerleriyle eşleşir.

Ayrıca, farklı yöntemler kullanarak oynadığımı ve SPSS'nin ULS ve PAF'sinin R'nin PA yöntemine en yakın şekilde eşleştiğini lütfen unutmayın.

Özel sorularım:

  1. Faktör analizi uygulamaları ile R ve SPSS arasında ne kadar fark beklemeliyim?
  2. SPSS'den Kareli Yüklerin Toplamından hangisini yorumlamalıyım, Başlangıç ​​Özdeğerleri, Ekstraksiyon veya Rotasyon?
  3. Göz ardı edebileceğim başka sorunlar var mı?

SPSS ve R'ye yaptığım çağrılar aşağıdaki gibidir:

SPSS:

FACTOR
/VARIABLES <variables>
/MISSING PAIRWISE
/ANALYSIS <variables>
/PRINT INITIAL KMO AIC EXTRACTION ROTATION
/FORMAT BLANK(.35)
/CRITERIA FACTORS(6) ITERATE(25)
/EXTRACTION ULS
/CRITERIA ITERATE(25)
/ROTATION PROMAX(4).

R:

library(psych)
fa.results <- fa(data, nfactors=6, rotate="promax",
scores=TRUE, fm="pa", oblique.scores=FALSE, max.iter=25)

R kullanamadığım için kontrol edemiyorum, ancak belgelerde bir gecikme olduğundan şüpheleniyorum. fm = "pa", / EXTRACTION PAF'a karşılık gelmelidir. Ayrıca, herhangi bir rotasyondan önce çözümleri karşılaştırmaya çalışın, çünkü rotasyon algoslarındaki hafif farklılıklar ekstraksiyon yöntemi farklılıklarıyla karışabilir.
ttnphns

1
Bir göz attığınız için teşekkürler! Dönmeden önce çözümleri karşılaştırmayı deneyeceğim. Ben / EXTRACTION ULS ve / EXTRACTION PAF denedim ve yüklemelerde çok az fark olduğunu belirtmek gerekir (ama ikisi de gerçekten R "pa" yöntemine yakın değildir). Yukarıda / EXTRACTION ULS'i göstermememin nedeni, çeşitli SSL'leri veren komut olmasıdır.
Oliver

1
Temel eksen yöntemi ve ağırlıksız en küçük kareler yöntemleri bazen benzer sonuçlar verebilir, ancak temel olarak algoritmik olarak farklıdır. "PA" = PAF "minres" = uls "GLS" = GLS, "mi" = ML: aşağıdaki gibi olan R ve SPSS arasındaki denkliği olduğuna inanıyoruz
ttnphns

1
Ayrıca, eksik değerlerin tedavisini kontrol edin. SPSS kodunuzda bunları çift olarak silmiş olursunuz. Sizde R kodu - ...?
ttnphns

R'den önceki rotasyon öncesi SSL'leri karşılaştırdım ve SPSS'den ULS çözümündeki Ekstraksiyon SSL'leriyle eşleşiyorlar (maalesef SPSS'deki PAF çözümü bana bu değerleri vermedi). Promax rotasyonunun suçlu olduğunu düşünüyorum. Bu ya SPSS'nin Rotasyon SSL'lerini basma şekli. Belki de R, nihai SSL'ler tarafından açıklanan toplam varyansı tahmin ederken, SPSS bana böyle bir tahminin uygun olmadığını söylüyor.
Oliver

Yanıtlar:


21

Her şeyden önce, ben dönmeden önce çözüme bakmak için tavsiye ttnphns ikinci. SPSS'de uygulandığı gibi faktör analizi, birkaç adımla karmaşık bir prosedürdür, bu adımların her birinin sonucunu karşılaştırmak sorunu belirlemenize yardımcı olacaktır.

Özellikle çalıştırabilirsiniz

FACTOR
/VARIABLES <variables>
/MISSING PAIRWISE
/ANALYSIS <variables>
/PRINT CORRELATION
/CRITERIA FACTORS(6) ITERATE(25)
/EXTRACTION ULS
/CRITERIA ITERATE(25)
/ROTATION NOROTATE.

SPSS'nin faktör analizini yapmak için kullandığı korelasyon matrisini görmek. Sonra, R'de korelasyon matrisini çalıştırarak kendiniz hazırlayın

r <- cor(data)

Eksik değerlerin ele alınış biçimindeki herhangi bir tutarsızlık bu aşamada açıkça görülmelidir. Korelasyon matrisinin aynı olduğunu kontrol ettikten sonra, fa fonksiyonuna besleyebilir ve analizinizi tekrar çalıştırabilirsiniz:

fa.results <- fa(r, nfactors=6, rotate="promax",
scores=TRUE, fm="pa", oblique.scores=FALSE, max.iter=25)

SPSS ve R'de hala farklı sonuçlar alıyorsanız, sorun değerlerle ilgili eksik değildir.

Ardından, faktör analizi / ekstraksiyon yönteminin sonuçlarını karşılaştırabilirsiniz.

FACTOR
/VARIABLES <variables>
/MISSING PAIRWISE
/ANALYSIS <variables>
/PRINT EXTRACTION
/FORMAT BLANK(.35)
/CRITERIA FACTORS(6) ITERATE(25)
/EXTRACTION ULS
/CRITERIA ITERATE(25)
/ROTATION NOROTATE.

ve

fa.results <- fa(r, nfactors=6, rotate="none", 
scores=TRUE, fm="pa", oblique.scores=FALSE, max.iter=25)

Yine, faktör matrisleri / komünaliteler / kare yüklerin toplamını karşılaştırın. Burada, tarif ettiğiniz büyüklükte değil, bazı küçük farklılıklar bekleyebilirsiniz. Bütün bunlar size neler olduğu hakkında daha net bir fikir verecektir.

Şimdi, üç sorunuza doğrudan cevap vermek için:

  1. Deneyimlerime göre, bazen farklı terminolojileri anlamak ve parametrelerle uğraşmak için biraz zaman geçirdikten sonra çok benzer sonuçlar elde etmek mümkündür. Hem SPSS hem de R'de (tipik olarak R'de çalışan ve daha sonra SPSS'de analizi meslektaşları ile paylaşmak için çoğaltarak) faktör analizleri yapmak için birkaç kez yaşadım ve her zaman temelde aynı sonuçları elde ettim. Bu yüzden genelde ediyorum değil veri setine özgü olabileceğini sorunu şüpheli beni neden olan büyük farklılıklar bekler. Bununla birlikte, etrafta bulunduğum bir veri kümesinde sağladığınız komutları hızlı bir şekilde denedim (Likert ölçeği) ve farklar aslında alıştığımdan daha büyüktü ama tanımladığınız kadar büyük değil. (Bununla oynamak için daha fazla zamanım olursa cevabımı güncelleyebilirim.)
  2. Çoğu zaman, insanlar rotasyon sonrası kare yüklerin toplamını her bir faktör tarafından "açıklanan varyans oranı" olarak yorumlar, ancak bu eğik bir rotasyondan sonra anlamlı değildir (bu yüzden sadece psişik ve SPSS raporlarında rapor edilmez bu durumda özdeğerler - çıktıda bunun hakkında küçük bir dipnot bile var). Başlangıç ​​özdeğerleri herhangi bir faktör ekstraksiyonundan önce hesaplanır. Açıkçası, size faktörleriniz tarafından açıklanan varyans oranı hakkında hiçbir şey söylemezler ve gerçekte “kare yüklerin toplamı” da değildir (genellikle korunacak faktörlerin sayısına karar vermek için kullanılırlar). SPSS “Squared yüklerin Ekstraksiyon Toplamları” Ancak sağladığı “SS yüklemelerini” aynı olmalıdır psikiyatriye .
  3. Bu, bu aşamada çılgın bir tahmindir, ancak faktör çıkarma prosedürünün 25 iterasyonda yakınsamasını kontrol ettiniz mi? Döndürme yakınsama yapmazsa, SPSS herhangi bir desen / yapı matrisi çıkarmaz ve bunu özleyemezsiniz, ancak ayıklama birleşmezse, son faktör matrisi yine de görüntülenir ve SPSS mutlulukla döndürmeye devam eder. Ancak bir not görürsünüz “a. 6 faktör çıkarılmaya çalışıldı. 25'ten fazla yineleme gerekir. (Yakınsama XXX =). Çıkarma sonlandırıldı. ” Yakınsama değeri küçükse (.005 gibi bir şey, varsayılan durdurma koşulu “.0001'den azdır”), yine de bildirdiğiniz tutarsızlıkları hesaba katmaz, ancak gerçekten büyükse verilerinizle ilgili patolojik bir şey vardır.

2
Çok güzel bir cevap. Yazarın (mümkünse) sorunun nerede olduğunu görmek için örnek bir korelasyon matrisi sunmasını önerecektim. Veriyi geçmek / verileri paylaşmak için yeterince belirsiz hale getirmek çok zor olmamalıdır. Ayrıca, doğrudan sorunu kısmen tanımlayan aynı korelasyon matrisi ile başlarken problemi yeniden üretemezse.
Andy W

Teşekkürler, bu harika bir cevap. SPSS makineme döndüğümde bu adımlardan geçeceğim. # 3'e yanıt olarak, çözüm 9 yinelemede birleşiyor, ancak yapacağım gelecekteki analizler için bunu aklımızda tutacağım. Farklılıkların tipik olarak tanımladığım kadar büyük olmadığını bilmek çok yardımcı oldu (5 puanlık Likert ölçek verileriyle de çalışıyorum).
Oliver

Başka birinin merak etmesi durumunda fa, R'deki fonksiyon psychpaketten gelir. factanalBaz paketinden işlevi gibi performans gösterir, ancak gerektiğini psychzaten başka amaçlar için kullanan değer. Aslında, bu Likert verileri olduğundan, bunun yerine psychpaketin kullanılması akıllıca olacaktır fa.poly: yardım belgelerine bakın .
Nick Stauner

6

Son zamanlarda, her bir programda veriler eksik-liste halinde ele alındığında, SPSS ve R (Psych paketi ile) arasındaki çoğu faktör analizi tutarsızlığının temizlendiğini, korelasyon matrisinin her birinde tam olarak aynı olduğunu ve eğik rotasyon kullanılmadığını tespit ettim.

Kalan tutarsızlıklardan biri, çıkarma grafiğinde, özütlemeden sonra özdeğerleri gösteren değer serisidir. R'nin "dağ eteğindeki taş yığını (cor (mydata))" bu "faktörler", "Kareli Yüklerin Ekstraksiyon Toplamları" altındaki SPSS'nin Varyans Açıklamalı tablosunda listelenenlerle eşleşmiyor. R dağ eteğindeki grafiğin "bileşenleri" nin, Varyans Açıklamalı tablosunun "Başlangıç ​​Özdeğerleri" ile de eşleşen SPSS'nin dağlama grafiğiyle eşleştiğini unutmayın.

Ayrıca, her bir faktör tarafından açıklanan "Oran Değişkeni" nin R cinsinden bazen (belirli bir faktör için oran) / (tüm faktörler tarafından açıklanan miktar) olarak rapor edildiğini, diğer zamanlarda ise (oran belirli bir faktör için) (analizdeki öğe sayısı). Yani, ilkini alırsanız, bir eşleşme olmasa da, "Kareli Yüklerin Çıkarma Toplamları ... Varyansın% 'si" altında SPSS'nin raporladığı şeyle en azından orantılı ve türetilebilir.

Bununla birlikte, her programda oblimin rotasyonunun başlatılması, öğe yüklemelerinde veya faktörlerin varyansında çözülemediğimi açıkladı.


1

R'deki varsayılan döndürme yöntemi oblimindir, bu nedenle bu muhtemelen farklılığa neden olacaktır. Bir test olarak SPSS ve R'de bir PAF / oblimin çalıştırın ve neredeyse aynı sonuçları bulacaksınız.


0

Desen yüklemelerindeki farklılıklara neyin neden olduğunu bilmiyorum, ancak açıklanan varyansın% 'sindeki farkın aşağıdakilerden kaynaklandığını varsayıyorum: - belki de SPSS açıklamalı varyans tablosunun ilk kısmını (2 veya 3'ün) yorumluyor musunuz? temel bileşen analizi sonuçları. İkinci bölüm, döndürülmemiş faktör analizi sonuçlarının sonuçlarını ve rotasyondan sonra üçüncü sonuçları (kullanılıyorsa) gösterir. - fa işlevinin (veya daha doğrusu yazdırma yönteminin) eğik faktörler için SSL'yi yanlış hesaplaması. Toplam varyansın yüzdesini faktörle açıklamak için, kare yapısal yüklerin toplamını faktöre göre hesaplamalı ve bunu değişken sayısına bölmelisiniz. Bununla birlikte, tüm faktörler tarafından açıklanan varyans yüzdesini elde etmek için bunları (eğik rotasyonlar durumunda) toplayamazsınız. Bunu elde etmek için,


Siteye hoş geldiniz, @AlesZiberna. Sorular ve cevaplar şeklinde kalıcı bir istatistiksel bilgi deposu oluşturmaya çalışıyoruz. Endişe ettiğimiz bir şey linkrot. Bağlantı kopması durumunda bağlantıdaki bilgilere genel bir bakış verebilir misiniz, böylece okuyucular bunu takip etmek isteyip istemediklerine karar verebilirler mi?
gung - Monica'yı eski

0

Bu cevap, yukarıdaki sorulara katkıdır. Gala'nın cevabında önerdiği gibi, öncelikle R (psişikte fa) ve SPSS tarafından sağlanan çözümlerin rotasyondan önce farklı olup olmadığına karar verilmelidir. Bunlar aynıysa, her programdaki döndürme ayarlarına bakın. (SPSS için, tüm ayarları FACTOR referans kılavuz girişinde bulabilirsiniz).

Aranacak önemli bir ayar Kaiser normalizasyonu . Varsayılan olarak, SPSS dönüş sırasında Kaiser normalleştirmesi yaparken, 'fa' gibi bazı R işlevleri yapmaz. SPSS'de bu ayarı, / CRITERIA = NOKAISER / KAISER belirterek, her programdaki sonuçlar arasında herhangi bir tutarsızlık olup olmadığını doğrulamak için kontrol edebilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.