คุณต้องใช้เมทริกซ์ $loadings
ไม่ใช่$rotmat
:
x <- matrix(rnorm(600),60,10)
prc <- prcomp(x, center=TRUE, scale=TRUE)
varimax7 <- varimax(prc$rotation[,1:7])
newData <- scale(x) %*% varimax7$loadings
เมทริกซ์$rotmat
เป็นเมทริกซ์มุมฉากที่สร้างแรงกระทำใหม่จากวัตถุที่ไม่ได้หมุน
แก้ไข ณ วันที่ 12 ก.พ. 2558:
เป็นแหลมที่ถูกต้องด้านล่างโดย @amoeba (เห็นของเขา / เธอโพสต์ก่อนหน้านี้เช่นเดียวกับการโพสต์อื่นจาก @ttnphns ) คำตอบนี้ไม่ถูกต้อง พิจารณา Data Matrix Xการสลายตัวมูลค่าเอกพจน์คือ
ที่มีคอลัมน์ของตน (ปกติ) eigenvectors ของX'Xตอนนี้การหมุนคือการเปลี่ยนแปลงของพิกัดและจำนวนการเขียนความเท่าเทียมกันข้างต้นเป็น:
โดยเป็นเมทริกซ์มุมฉากที่เลือกเพื่อให้ได้ใกล้กระจัดกระจาย (ความแตกต่างสูงสุดระหว่างรายการพูดอย่างหลวม ๆ ) ทีนี้ถ้านั่นคือทั้งหมดn×mX
X=USVT
VX′XX=(UST)(TTVT)=U∗V∗
TV∗ซึ่งไม่ใช่ใครสามารถโพสต์คูณความเท่าเทียมกันข้างต้นโดยเพื่อให้ได้คะแนนเป็นแต่แน่นอนเราไม่เคยหมุนพีซีทั้งหมด แต่เราพิจารณาเซตของซึ่งมียังคงดี rank-ประมาณของ ,
ดังนั้นวิธีการแก้ปัญหาที่หมุนอยู่ในขณะนี้
โดยที่ตอนนี้คือเมทริกซ์เราไม่สามารถคูณเพียงอย่างเดียวได้ด้วยการเปลี่ยนแต่เราต้องหันไปใช้วิธีแก้ปัญหาที่อธิบายโดย @amoeba
V∗U∗X(V∗)Tk<mkXX≈(UkSkTk)(T T k V T k )=U ∗ k V ∗ k V ∗ k k×nXV ∗ kX≈(UkSk)(VTk)
X≈(UkSkTk)(TTkVTk)=U∗kV∗k
V∗kk×nXV∗k
กล่าวอีกนัยหนึ่งวิธีแก้ปัญหาที่ฉันเสนอนั้นถูกต้องเฉพาะในกรณีที่ไม่มีประโยชน์และไร้สาระ
ขอบคุณอย่างจริงใจไปที่ @amoeba เพื่อชี้แจงเรื่องนี้ให้ฉันฟัง ฉันใช้ชีวิตอยู่กับความเข้าใจผิดมาหลายปีแล้ว
จุดหนึ่งที่ทราบข้างต้นออกจาก @ อะมีบาของการโพสต์ก็คือเธอ / เขาดูเหมือนว่าจะร่วมกับในLฉันคิดว่าใน PCA เป็นเรื่องธรรมดาที่จะมีคอลัมน์ปกติของและดูดซับในค่าขององค์ประกอบหลัก ในความเป็นจริงมักเหล่านั้นจะถูกนำเสนอเป็นเชิงเส้นรวมกันของเดิม (ศูนย์กลางอาจจะลดขนาด) ตัวแปรที่อาจมีการ 1 ฉันคิดว่าวิธีใดเป็นที่ยอมรับและทุกสิ่งในระหว่าง (เช่นในการวิเคราะห์ biplot)SVLVSvTiX (i=1,…,m)∥vi∥=1
แก้ไขเพิ่มเติมเมื่อวันที่ 12 กุมภาพันธ์ 2015
ตามที่ระบุโดย @amoeba ถึงแม้ว่าเป็นรูปสี่เหลี่ยมผืนผ้าวิธีแก้ปัญหาที่ฉันเสนออาจยังคงเป็นที่ยอมรับได้:จะให้เมทริกซ์หน่วยและ * ดังนั้นทุกอย่างดูเหมือนจะขึ้นอยู่กับความหมายของคะแนนที่เราชอบ V ∗ k ( V ∗ k ) T X ( V ∗ k ) T ≈ U ∗ kV∗kV∗k(V∗k)TX(V∗k)T≈U∗k