การตีความความแตกต่างระหว่าง R และ SPSS ด้วยการวิเคราะห์ปัจจัยเชิงสำรวจ


14

ฉันเป็นนักศึกษาระดับบัณฑิตศึกษาสาขาวิทยาศาสตร์คอมพิวเตอร์ ฉันทำการวิเคราะห์ปัจจัยเชิงสำรวจสำหรับโครงการวิจัย เพื่อนร่วมงานของฉัน (ที่เป็นผู้นำโครงการ) ใช้ SPSS ในขณะที่ฉันต้องการใช้ R สิ่งนี้ไม่สำคัญจนกว่าเราจะค้นพบความแตกต่างที่สำคัญระหว่างสองแพ็คเกจทางสถิติ

เราใช้แกนแฟคตอริ่งระหว่างการแยก (โปรดทราบว่าฉันตระหนักดีถึงความแตกต่างระหว่าง PCA และการวิเคราะห์ปัจจัยและเราไม่ได้ใช้ PCAอย่างน้อยก็ไม่ได้ตั้งใจ) จากสิ่งที่ฉันได้อ่านสิ่งนี้ควรสอดคล้องกับวิธี "แกนหลัก" ใน R และ "แกนตัวประกอบแฟคตอริ่งหลัก" หรือ "สแควร์สแควร์น้อยที่สุด" ใน SPSSตามเอกสาร R เราจะใช้วิธีการเอียงหมุน (เฉพาะPromax ) เพราะเราคาดว่าปัจจัยที่มีความสัมพันธ์และมีการตีความเมทริกซ์รูปแบบ

การรันสองโพรซีเดอร์ใน R และ SPSS มีความแตกต่างที่สำคัญ เมทริกซ์รูปแบบให้การโหลดที่แตกต่างกัน แม้ว่าสิ่งนี้จะให้ปัจจัยเดียวกันกับความสัมพันธ์ของตัวแปรมากขึ้นหรือน้อยลง แต่ก็มีความแตกต่างระหว่างการโหลดที่สอดคล้องกันถึง 0.15 ซึ่งดูเหมือนจะมากกว่าที่คาดไว้โดยการใช้วิธีการสกัดและการหมุนแบบโปรแม็กซ์ที่แตกต่างกัน อย่างไรก็ตามนั่นไม่ใช่ความแตกต่างที่น่าตกใจที่สุด

ความแปรปรวนสะสมที่อธิบายโดยปัจจัยอยู่ที่ประมาณ 40% ในผลลัพธ์ SPSS และ 31% ในผลลัพธ์ R นี่เป็นความแตกต่างอย่างมากและทำให้เพื่อนร่วมงานของฉันต้องการใช้ SPSS แทนอาร์ฉันไม่มีปัญหากับเรื่องนี้ แต่ความแตกต่างที่ยิ่งใหญ่ทำให้ฉันคิดว่าเราอาจตีความบางอย่างผิดพลาดซึ่งเป็นปัญหา

SPSS รายงานความแปรปรวนที่อธิบายต่างชนิดกันเมื่อเราทำการสำรวจน่านน้ำมากขึ้นเมื่อเราเรียกใช้การแยกตัวประกอบกำลังสองน้อยที่สุด สัดส่วนของความแปรปรวนที่อธิบายโดยค่าเริ่มต้นเป็นค่าเริ่มต้น 40% ในขณะที่สัดส่วนของความแปรปรวนที่อธิบายจากการแยกจำนวนของการโหลด Squared (SSL) คือ 33% นี่ทำให้ฉันคิดว่าค่าเริ่มต้นไม่ใช่ค่าที่เหมาะสมที่จะดู (ฉันสงสัยว่านี่คือความแปรปรวนที่อธิบายไว้ก่อนการหมุนแม้ว่ามันจะใหญ่ไปกว่าฉันก็ตาม) ยิ่งสับสน SPSS ยังแสดง Rotation SSL แต่ไม่คำนวณเปอร์เซ็นต์ของความแปรปรวนที่อธิบาย (SPSS บอกฉันว่าการมีปัจจัยที่มีความสัมพันธ์กันหมายความว่าฉันไม่สามารถเพิ่ม SSL เพื่อค้นหาความแปรปรวนทั้งหมดซึ่งสมเหตุสมผลกับคณิตศาสตร์ที่ฉันเคยเห็น) SSL ที่รายงานจาก R ไม่ตรงกับสิ่งเหล่านี้และ R บอกฉันว่าอธิบายความแปรปรวนทั้งหมด 31% SSL ของ R เหมาะกับ Rotation SSL มากที่สุด ค่าลักษณะเฉพาะของ R จากเมทริกซ์สหสัมพันธ์เดิมตรงกับค่าเริ่มต้นจาก SPSS

นอกจากนี้โปรดทราบว่าฉันได้เล่นกับการใช้วิธีการที่แตกต่างกันและ ULS และ PAF ของ SPSS ดูเหมือนจะตรงกับวิธี PA ของ R ใกล้เคียงที่สุด

คำถามเฉพาะของฉัน:

  1. ฉันควรคาดหวังความแตกต่างระหว่าง R กับ SPSS มากเพียงใดด้วยการใช้การวิเคราะห์ปัจจัย
  2. ผลรวมของการโหลดกำลังสองจาก SPSS ใดที่ฉันควรแปลความหมายค่าเริ่มต้นการสกัดหรือการหมุน
  3. มีปัญหาอื่นอีกไหมที่ฉันอาจมองข้ามไป

สายของฉันไปที่ SPSS และ R มีดังนี้:

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 แต่ฉันสงสัยว่ามีเอกสารหมดอายุ fm = "pa" ควรสอดคล้องกับ / EXTRACTION PAF นอกจากนี้ให้ลองเปรียบเทียบวิธีแก้ปัญหาก่อนการหมุนใด ๆ เนื่องจากความแตกต่างเล็กน้อยในการหมุน algos อาจผสมกับความแตกต่างของวิธีการสกัด
ttnphns

1
ขอบคุณสำหรับการดู! ฉันจะลองเปรียบเทียบวิธีแก้ปัญหาก่อนหมุน ฉันควรจะพูดถึงว่าฉันได้ลองทั้ง / EXTRACTION ULS และ / EXTRACTION PAF แล้วและมีความแตกต่างเล็กน้อยในการโหลด (แต่ก็ไม่ใกล้เคียงกับวิธี R "pa") เหตุผลที่ฉันแสดง / EXTRACTION ULS ข้างต้นเป็นเพราะนั่นคือคำสั่งที่ให้ SSL ต่างๆ
Oliver

1
วิธีการของแกนหลักและวิธีการกำลังสองน้อยที่สุดที่ไม่ได้ถ่วงน้ำหนักสามารถให้ผลลัพธ์ที่คล้ายกันได้ในบางครั้ง ฉันเชื่อว่าการเทียบเท่าระหว่าง R และ SPSS มีดังนี้: "pa" = PAF, "minres" = ULS, "gls" = GLS, "ml" = ML
ttnphns

1
นอกจากนี้ตรวจสอบการรักษาค่าที่หายไป ในรหัส SPSS ของคุณคุณลบออกแบบคู่ ในรหัส R ของคุณ - ... ?
ttnphns

ฉันได้เปรียบเทียบ SSL pre-rotation จาก R และตรงกับ Extraction SSLs ในโซลูชัน ULS จาก SPSS (น่าเสียดายที่โซลูชัน PAF ใน SPSS ไม่ได้ให้ค่าเหล่านี้กับฉัน) ฉันคิดว่าการหมุน promax ดูเหมือนจะเป็นผู้ร้าย ไม่ว่าจะเป็นวิธีการที่ SPSS พิมพ์ Rotation SSL บางทีอาร์อาจประมาณค่าความแปรปรวนทั้งหมดที่อธิบายโดย SSL ขั้นสุดท้ายในขณะที่ SPSS บอกฉันว่าไม่มีการประมาณการดังกล่าวเหมาะสม
Oliver

คำตอบ:


21

ก่อนอื่นฉันขอแนะนำให้คุณดูวิธีแก้ปัญหาก่อนหมุน การวิเคราะห์ปัจจัยตามที่ใช้ใน SPSS เป็นขั้นตอนที่ซับซ้อนด้วยหลายขั้นตอนการเปรียบเทียบผลลัพธ์ของแต่ละขั้นตอนเหล่านี้จะช่วยให้คุณสามารถระบุปัญหาได้

โดยเฉพาะคุณสามารถเรียกใช้

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

เพื่อดูความสัมพันธ์เมทริกซ์ SPSS ใช้เพื่อดำเนินการวิเคราะห์ปัจจัย จากนั้นใน R เตรียมเมทริกซ์สหสัมพันธ์ด้วยตัวเองด้วยการวิ่ง

r <- cor(data)

ความแตกต่างใด ๆ ในวิธีจัดการค่าที่หายไปควรปรากฏให้เห็นชัดเจนในขั้นตอนนี้ เมื่อคุณตรวจสอบแล้วว่าเมทริกซ์สหสัมพันธ์นั้นเหมือนกันคุณสามารถป้อนเข้าฟังก์ชันฟะและเรียกใช้การวิเคราะห์ของคุณอีกครั้ง:

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

หากคุณยังได้รับผลลัพธ์ที่แตกต่างใน SPSS และ R ปัญหาจะไม่หายไปเกี่ยวข้องกับค่า

ถัดไปคุณสามารถเปรียบเทียบผลลัพธ์ของการวิเคราะห์ปัจจัย / วิธีการสกัดได้

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

และ

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

อีกครั้งเปรียบเทียบเมทริกซ์ปัจจัย / ชุมชน / ผลรวมของการโหลดแบบยกกำลังสอง ที่นี่คุณสามารถคาดหวังความแตกต่างเล็ก ๆ น้อย ๆ แต่ไม่แน่นอนขนาดที่คุณอธิบาย ทั้งหมดนี้จะทำให้คุณมีความคิดที่ชัดเจนว่าเกิดอะไรขึ้น

ตอนนี้เพื่อตอบคำถามสามข้อของคุณโดยตรง:

  1. จากประสบการณ์ของฉันเป็นไปได้ที่จะได้รับผลลัพธ์ที่คล้ายกันมากบางครั้งหลังจากใช้เวลาในการหาคำศัพท์ที่แตกต่างกันและเล่นซอกับพารามิเตอร์ ฉันมีหลายครั้งที่จะเรียกใช้การวิเคราะห์ปัจจัยใน SPSS และ R (โดยทั่วไปทำงานใน R แล้วทำการจำลองการวิเคราะห์ใน SPSS เพื่อแบ่งปันกับเพื่อนร่วมงาน) และได้ผลลัพธ์ที่เหมือนกันเสมอ โดยทั่วไปฉันจะไม่คาดหวังความแตกต่างจำนวนมากซึ่งทำให้ฉันสงสัยว่าปัญหาอาจเฉพาะเจาะจงกับชุดข้อมูลของคุณ อย่างไรก็ตามฉันลองใช้คำสั่งที่คุณให้ไว้ในชุดข้อมูลที่ฉันวางไว้อย่างรวดเร็ว (เป็นระดับ Likert) และความแตกต่างนั้นใหญ่กว่าที่ฉันคุ้นเคย แต่ไม่ใหญ่เท่าที่คุณอธิบาย (ฉันอาจอัปเดตคำตอบของฉันหากฉันมีเวลามากขึ้นในการเล่นเกมนี้)
  2. ส่วนใหญ่เวลาที่คนตีความผลรวมของแรงยกกำลังสองหลังจากที่หมุนเป็น“สัดส่วนของความแปรปรวนอธิบาย” โดยแต่ละปัจจัย แต่นี้ไม่ได้มีความหมายดังต่อไปนี้การหมุนเอียง (ซึ่งเป็นเหตุผลว่าทำไมจึงไม่ได้รายงานที่ทุกคนในวิญญาณรายงานและ SPSS เท่านั้น ค่าลักษณะเฉพาะในกรณีนี้ - มีเชิงอรรถเล็กน้อยเกี่ยวกับเรื่องนี้ในผลลัพธ์) ค่าเริ่มต้นจะคำนวณค่าก่อนการแยกปัจจัยใด ๆ เห็นได้ชัดว่าพวกเขาไม่ได้บอกอะไรคุณเกี่ยวกับสัดส่วนของความแปรปรวนที่อธิบายโดยปัจจัยของคุณและไม่ได้เป็น "ผลรวมของการโหลดกำลังสอง" อย่างใดอย่างหนึ่ง (พวกเขามักจะใช้ในการตัดสินใจเกี่ยวกับจำนวนของปัจจัยที่จะรักษา) SPSS“ผลรวมของการสกัด Squared แรงกระ” แต่ควรจะตรงกับ“ภาระเอสเอส” ให้โดยวิญญาณ
  3. นี่เป็นสิ่งที่เดาได้ยากในขั้นตอนนี้ แต่คุณได้ตรวจสอบว่าขั้นตอนการแยกตัวประกอบมารวมกันเป็น 25 ซ้ำแล้วหรือยัง หากการหมุนไม่สามารถมาบรรจบกัน SPSS จะไม่เอาท์พุทเมทริกซ์รูปแบบ / โครงสร้างใด ๆ และคุณไม่ควรพลาด แต่ถ้าการแยกไม่สามารถมาบรรจบกันเมทริกซ์ตัวสุดท้ายจะแสดงขึ้นมาและ SPSS จะหมุนอย่างต่อเนื่อง อย่างไรก็ตามคุณจะเห็นข้อความ“ a. พยายามแยก 6 ปัจจัย ต้องการมากกว่า 25 ซ้ำ (Convergence = XXX) การสกัดสิ้นสุดลง” หากค่าคอนเวอร์เจนซ์มีขนาดเล็ก (เช่น. 005 เงื่อนไขการหยุดที่เป็นค่าเริ่มต้นคือ“ น้อยกว่า. 0001”) ก็จะยังไม่ได้พิจารณาถึงความคลาดเคลื่อนที่คุณรายงาน แต่ถ้ามันมีขนาดใหญ่จริงๆ

2
คำตอบที่ดีมาก ฉันจะแนะนำ (ถ้าเป็นไปได้) ผู้เขียนจัดทำเมทริกซ์สหสัมพันธ์ตัวอย่างเพื่อดูว่าปัญหาอยู่ที่ใด ไม่ควรยากเกินไปที่จะทำให้เหลวไหล / ทำให้คลุมเครือพอที่จะแบ่งปันข้อมูล นอกจากนี้หากเราไม่สามารถสร้างปัญหาขึ้นมาใหม่ได้เมื่อเริ่มต้นด้วยเมทริกซ์สหสัมพันธ์เดียวกันที่ระบุปัญหาบางส่วน
Andy W

ขอบคุณนี่เป็นคำตอบที่ยอดเยี่ยม ฉันจะทำตามขั้นตอนเหล่านี้เมื่อฉันกลับไปที่เครื่อง SPSS ของฉัน ในการตอบสนองต่อข้อที่ 3 โซลูชันจะมาบรรจบกันในการทำซ้ำ 9 ครั้ง แต่ฉันจะคำนึงถึงเรื่องนี้สำหรับการวิเคราะห์ในอนาคตที่ฉันทำ มันเป็นประโยชน์อย่างมากที่จะรู้ว่าความแตกต่างไม่ได้ใหญ่ตามที่ฉันอธิบาย (ฉันยังทำงานกับข้อมูลระดับ Likert 5 จุด)
Oliver

ในกรณีที่คนอื่นสงสัยfaฟังก์ชั่นใน R มาจากpsychแพคเกจ factanalฟังก์ชั่นแพคเกจจากฐานควรดำเนินการในทำนองเดียวกัน แต่psychมีมูลค่าการใช้เพื่อวัตถุประสงค์อื่น ๆ อยู่แล้ว ในความเป็นจริงเนื่องจากเป็นข้อมูล Likert คุณควรใช้psychแพ็คเกจfa.polyแทน: ดูเอกสารวิธีใช้
Nick Stauner

6

เมื่อเร็ว ๆ นี้ฉันได้พบว่าส่วนใหญ่การวิเคราะห์ปัจจัยความแตกต่างระหว่าง SPSS และ R (กับแพคเกจโรคจิต) ชัดเจนขึ้นเมื่อข้อมูลได้รับการปฏิบัติที่ขาดหายไปในแต่ละรายการ - เมทริกซ์สหสัมพันธ์ปรากฏขึ้นเหมือนกันในแต่ละครั้ง

ความคลาดเคลื่อนที่เหลืออยู่ในชุดของค่าที่แสดงใน scree plot ระบุค่าลักษณะเฉพาะหลังจากการแยก ใน "scree (cor (mydata))" ปัจจัย "เหล่านี้" ของ R ไม่ตรงกับที่ระบุไว้ในตารางความแปรปรวนของ SPSS ที่อธิบายไว้ภายใต้ "ผลรวมของการโหลดจำนวนมาก" โปรดทราบว่า "องค์ประกอบ" ของพล็อต scree ของพล็อตจะตรงกับพล็อตหินกรวดของ SPSS ซึ่งตรงกับ "ค่าเริ่มต้นเริ่มต้นของค่าความแปรปรวน"

ฉันยังพบว่า "สัดส่วนสัดส่วน" ที่อธิบายโดยแต่ละปัจจัยคือใน R บางครั้งรายงานว่าเป็น (สัดส่วนสำหรับปัจจัยที่กำหนด) / (จำนวนเงินที่อธิบายโดยปัจจัยทั้งหมด) ในขณะที่เวลาอื่นคือ (สัดส่วน สำหรับปัจจัยที่กำหนด) (จำนวนรายการในการวิเคราะห์) ดังนั้นหากคุณได้รับมาก่อนมันเป็นอย่างน้อยในสัดส่วนและเป็นไปได้จากสิ่งที่ SPSS รายงานภายใต้ "การสกัดจำนวนเงินของการโหลด Squared ... % ของการเปลี่ยนแปลง"

อย่างไรก็ตามการแนะนำการหมุนแบบ oblimin ในแต่ละโปรแกรมนั้นสร้างความคลาดเคลื่อนขนาดใหญ่ในการโหลดไอเท็มหรือความแปรปรวนของปัจจัยอธิบายว่าฉันไม่สามารถแก้ไขได้


1

วิธีการหมุนเริ่มต้นใน R คือ oblimin ดังนั้นสิ่งนี้อาจทำให้เกิดความแตกต่าง ในการทดสอบใช้ PAF / oblimin ใน SPSS และ R และคุณจะพบผลลัพธ์ที่เหมือนกันเกือบทั้งหมด


0

ฉันไม่ทราบว่าอะไรเป็นสาเหตุของความแตกต่างในการโหลดรูปแบบ แต่ฉันคิดว่าความแตกต่างใน% ของความแปรปรวนที่อธิบายนั้นเป็นเพราะ: - คุณอาจตีความส่วนแรก (จาก 2 หรือ 3) ของตาราง SPSS ที่อธิบายถึงความแปรปรวน ผลการวิเคราะห์องค์ประกอบหลัก ส่วนที่สองแสดงผลลัพธ์ของผลลัพธ์การวิเคราะห์ปัจจัยที่ไม่ได้ทำการหมุนและผลลัพธ์ที่สามหลังจากการหมุน (ถ้าใช้) - ความจริงที่ว่าฟังก์ชั่น fa (หรือแม่นยำกว่าวิธีการพิมพ์ของมัน) คำนวณผิด SSL สำหรับปัจจัยเอียง ในการรับ% ของความแปรปรวนทั้งหมดที่อธิบายโดยตัวคูณคุณควรคำนวณผลรวมของการโหลดโครงสร้างกำลังสองตามตัวประกอบแล้วหารด้วยจำนวนตัวแปร อย่างไรก็ตามคุณไม่สามารถสรุปผลรวมเหล่านี้ได้ (ในกรณีที่การหมุนเอียง) เพื่อให้ได้% ของความแปรปรวนที่อธิบายโดยปัจจัยทั้งหมด เพื่อให้ได้สิ่งนี้


ยินดีต้อนรับสู่เว็บไซต์ @AlesZiberna เราพยายามสร้างที่เก็บถาวรของข้อมูลสถิติในรูปแบบของคำถาม & คำตอบ สิ่งหนึ่งที่เรากังวลคือ linkrot คุณสามารถให้ภาพรวมของข้อมูลที่ลิงค์ในกรณีที่มันตายไปแล้วเพื่อให้ผู้อ่านสามารถตัดสินใจได้ว่าพวกเขาต้องการที่จะไล่ตามมันได้หรือไม่
gung - Reinstate Monica

0

คำตอบนี้เติมแต่งให้กับคนข้างต้น ตามที่ Gala แนะนำไว้ในคำตอบเขาควรพิจารณาว่าคำตอบของ R (เช่น fa ใน psych) และ SPSS นั้นแตกต่างกันก่อนการหมุนหรือไม่ หากเหมือนกันให้ดูที่การตั้งค่าการหมุนในแต่ละโปรแกรม (สำหรับ SPSS คุณสามารถค้นหาการตั้งค่าทั้งหมดในรายการคู่มืออ้างอิงสำหรับ FACTOR)

หนึ่งการตั้งค่าที่สำคัญที่จะมองหาคือการฟื้นฟู Kaiser โดยค่าเริ่มต้น SPSS จะทำการปรับมาตรฐาน Kaiser ระหว่างการหมุนในขณะที่ฟังก์ชั่น R บางอย่างเช่น 'fa' ไม่ทำเช่นนั้น คุณสามารถควบคุมการตั้งค่านั้นใน SPSS โดยระบุ / CRITERIA = NOKAISER / KAISER เพื่อตรวจสอบว่าสามารถกำจัดความคลาดเคลื่อนระหว่างผลลัพธ์กับแต่ละโปรแกรมได้หรือไม่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.