中人网
标题:
求教:因子分析与主成分分析作为降维方法的运用
[打印本页]
作者:
maureenlmh
时间:
2011-5-9 16:24
标题:
求教:因子分析与主成分分析作为降维方法的运用
Dear Kenneth:
: n! f: C/ M* E( `
我论文的研究问题是:哪些主要因素影响了地方人大预算监督的强度?
a' _4 F8 J Y, {
由于我所研究的问题,在我们的学科中并没有现成的量表(国外有类似的研究,但由于制度的差异极大,国外用以测量立法机关预算监督强度的指标如果直接用于测量中国地方人大,则结果几乎不具有差异性;而国内本领域未有此类定量研究),所以我构建了一个评估指标用以测量地方人大预算监督的强度(一共有58个指标)。对于研究的主要因素,我根据现有的文献和理论,构建了一个“行动者的自主性-行动空间”解释框架,其中自主性包括了行动者的角色认知、阻力认知、法律赋权、组织能力和领导者态度五个变量,行动空间包括党委支持、政府合作、公众预算监督需求、政府内部预算控制和审计监督五个变量。这10个解释变量中,法律赋权是通过对各研究样本的预算监督法规进行内容分析,量化取值得到;审计监督是通过相关统计年鉴获得其2005-2008连续四年的审计机构在职人员数和每年获奖审计项目数进行测量。其他8个变量均是通过相关的问题题项,与Y的58个指标一块,在同一份问卷中,面向全国80个省市(有立法权的)的地方人大进行了问卷调查。这些通过问卷调查所获得的指标,大部分是采用likert五点量阶设计选项。(具体的问卷请参见附件)
' V5 Y9 p6 z& t, ], `
我的问题是:
7 ?% r: z8 v& G6 r: P4 n% }
1.对于Y,我采用的是各指标平均值的方式,是否合适?
" Y* M( `$ z7 e9 \6 ^# e
2.对于8个通过问卷获得数据的解释变量,我是用SPSS中的因子分析来进行的。但这里就涉及到我最大的困惑。
, T# }) { {9 p% @) F
例如,对于政府合作这一变量,我在设计之初,就考虑到在预算监督领域,来自于政府的合作会包括有两个方面:一是政府领导人的合作;二是财政部门的合作。所以,我在操作化时,就分别设计了不同的题项了解这两个方面的合作程度。在数据处理和分析时,我将这两个方面共计17个题项进行了因子分析(用了主成分方法,正交旋转),得到2个公因子,各题项的负荷情况,也与设计理念相吻合,我将两个因子分别命名为“政府领导合作因子”和“财政部门合作因子”。因此,我用了SPSS软件因子分析得到的这两个因子值,并用如下公式得到了一个综合因子值,即F综=(F1*第一个因子解释的方差比重+F2*第二个因子解释的方差比重)/两个因子解释的总方差比重。
4 M, _/ J! \- e! v6 _
在最后的多元回归分析中,我将该综合因子值作为“政府合作”的取值进行回归。
' c4 I6 m3 R3 J
我这样做是否可行?
0 G% j/ _; G: v4 D9 z! O9 f
另外,对于公众预算监督需求这一变量,我设计了8个题项,同样用SPSS进行降维分析时,我选了“主成分方法”,得到一个主成分,解释了63%的方差。每个题项的载荷都超过.60。因此,我用了这个主成分分析得到的值,然后用如下公式计算:C=F(SPSS所生成的未旋转的值)* 方差贡献的平方根
0 k# a$ J, s$ V% v4 u/ H
然后,我将这一计算得到的值作为公众预算监督需求的取值,同样运用于回归分析。
" ]# g( K. y( N* X8 A- [" H
这样做是否正确?
3 W3 J6 O' N! _& W: @$ n
我将前一种叫做“因子分析”,后一种叫“主成分分析”(CPA),是否有误?
/ Y) s& v2 A0 o2 A
其实,我的主要的目的只是要获得各个变量的取值,即是将由若干个题项所共同测量的一个变量,通过因子分析和主成分分析这两种降维方法,得到相应的取值和排名。
' l$ w# Y6 n5 T+ d% K, m8 F* G
不知道学生是否有将求教的问题讲清楚?
) g. y! y* \* X. U" f6 K$ o+ a
期盼着老师能够抽空帮我指点迷津!
7 @5 u# a2 @: t9 n" @+ h- ^
感激不尽!
7 _1 Y; W `; Z* N# Z3 T0 d
作者:
Kenneth
时间:
2011-5-10 11:04
回复
1楼
maureenlmh
的帖子
) K) v; b. C; M0 P. z9 ]+ [
1. 如果y指标全是测量“同一个”构念,平均是可以的。不过也要做一下CFA以确定结构。
, w- {+ }" R. z8 u& {$ Y! V
2. 为什么不把两个因子看成是两个构念(变量),由回归分析(也就是数据)来决定比重?这总比用主观的用“因子解释的方差比重”好吧。
$ J9 y' n* `6 b
3. 关于“公众预算监督需求”,不如就在SPSS中要求程式计算“因子数”(factor score)给你就好了,不用这么复杂了。
6 V" o! B0 F9 W' E+ v' ^4 |
4. “主成分分析”是“因子分析”中抽取因子的其中一个方法,不用这样划分了。
( Y/ Q( {# J+ a$ e8 V) d5 M
5. 但是注意不要把每一个构念
分别
作因子分析。要把
所有的同一个源头的数据
一块做因子分析,这样的因子分析才有意思的。
L6 J7 u; i. o/ ~. @
希望对你有帮助吧。
; m' w2 ?; K; P0 ~# c- @, Q: N
9 L/ V |4 f7 g9 w- y
作者:
rwxld
时间:
2011-5-11 14:37
kenny,您好!看了你对maureenlmh的解释,我有两个疑问。
( W/ d. b- b' O7 z0 v# c
1
、如果y指标全是测量“同一个”构念,平均是可以的。不过也要做一下CFA以确定结构
Q" Q% w9 u$ O& {" _2 K1 i& d
如果CFA显示Y是两个因子的结构时怎么处理呢?是不是也要用两个因子构造一个复合变量(composite index)再进行后续分析呢?
- n, Q- B: J' r# Z$ Q
2、
为什么不把两个因子看成是两个构念(变量),由回归分析(也就是数据)来决定比重?这总比用主观的用“因子解释的方差比重”好吧。
2 N9 _* X$ @! q6 r/ a0 Y- u2 l
您的意思是在由F1和F2构成F综时,F综=F1*回归系数+F2*回归系数 ?
) ?" f8 {$ j* ]% C5 n( n) u& H8 R
如果是的话,回归系数是谁和谁回归的系数呢?
& x, |1 }' N& v$ Q2 A2 o5 a( O! r0 g
对不起,又问了你这么多问题,我最近在做一篇论文,以前不懂得实证分析,这是我看了你的博客后写的第一篇有实证分析的论文。由于找不到现成量表,我自己编题目测量解释变量X,数据分析显示X有2个维度(因子),记得你曾经说过如果在某个概念的层面上分析,就不应该以其维度去证实,我同意你的观点,所以想用两个维度构造一个新的变量,但不知如何做。我上网没有查找到如何构造复合变量的相关资料,又找不到人问,只好又麻烦你了。
4 [* X$ W8 c2 X( t6 M$ K; p5 P
本帖最后由 rwxld 于 2011-5-11 14:39 编辑
1 r8 ?% z, ` C j9 G6 a: [, X
* e3 b2 L6 Q% L3 Z5 @
本帖最后由 rwxld 于 2011-5-11 14:41 编辑
$ o: b) h k$ L0 N* a6 j
9 X0 ]; f. m$ e) q
作者:
Kenneth
时间:
2011-5-11 15:34
回复
3楼
rwxld
的帖子
. M, R* v; h7 Z* ?! c
rwxld,
[& f' D! ~1 L8 N u
1. “
如果CFA显示Y是两个因子的结构时怎么处理呢?
”
q% {3 n% u: m" |1 E) H
那代表你的项目根本不是在量同一个構念,如何能把它们平均呢?不要讲平均,就算是加权平均(你所谓的复合变量)也是不可以的。
- y) _9 w, w* g; P) N4 U0 r+ u
2. 要么是:
, e% q0 y4 |$ G& a: K4 A% P- A; h3 N
y = a0 + a1F (F 是用任何形式的主观地把F1与F2加权,变成一个F)
9 g( |. y k: u H. L) q# x3 Z
要么是:
' \0 C5 A8 ~; q( ]8 ?3 i, J+ F
y = b0 + b1 F1 + b2 F2
p& o+ t3 ]3 D M5 ]0 H
我的意思是后者。
0 d+ D# P1 i, X/ \3 Z2 y* S h
$ i& M' E [6 ` H; i0 _
作者:
rwxld
时间:
2011-5-11 23:43
kenny好,没想到你这么快就回复我了。对于你的答案,我还有一点点疑问,也可能是我没有把问题说清楚。
6 ?8 S3 |0 ]: q# Q' W, T
假设我有一个因变量Y和一个自变量X,我设计了8个item测量Y,10个item测量X。收集到数据之后发现测量Y的8个项目落在了两个因子上,前4个item是一个因子FY1,后4个item是一个因子FY2;测量X的10个item也落在了两个因子上,前5个是FX1,后5个是FX2。
' Q& J- G- _* S( [, y2 l# R+ ?
1、我可不可以理解成Y有两个维度,X也有两个维度?还是测量Y的8个item只能落在一个因子上,测量X的10个item也只能在一个因子上,否则就是测量设计有问题?
! J( B* o) @+ d' B* P1 t$ N: F
2、如果可以理解成Y和X各自有两个维度,我是否应该用FX1和FX2构造一个新的变量去代表X,同样用FY1和FY2构造一个新变量去代表Y,然后做回归:Y=a0+a1X
% S0 p2 J: A" u9 T P r2 s$ a
3、你说“
F 是用任何形式的主观地把F1与F2加权,变成一个F
”,我是看到maureenlmh 朋友提到的新变量产生方法“F综=(F1*第一个因子解释的方差比重+F2*第二个因子解释的方差比重)/两个因子解释的总方差比重”很复杂,查了资料也找不到构造新的变量的方法及其依据,所以一直期待你对maureenlmh 朋友这个帖子的回答。根据你的说法,这个转换方法是主观的。所以我想我们可能有一点误会,因为maureenlmh 朋友问的是如何将两个因子F1和F2变成F,你的回答是不用变,用F1和F2作为两个自变量去做回归就可以了。而我却把你的回答理解成了先用一个回归产生F1和F2的权数然后构成F。
* f# n) o5 Z# m
这回理解对吗?
. U# W) F( q" b
4、记得你以前在一个帖子里说过“当有因变量Y,自变量X1,X2,X3,X 4等等,如果自变量X1,X2,X3和X4之间互相相关系数差不多,并且这些自变量分别和Y的相关系数也差不多,那么这些自变量分别和Y都相关,却在回归时有一部分不显著,此时可以将这些自变量变成一个复合变量,再做回归”,那么这个复合变量是怎么产生的?是不是也像上面说的一样,
用任何形式的主观地把X1,X2,X3和X4加权,变成一个新的X,再做Y对X的回归?
还是说不是纯粹主观,而是有一定的转换依据?
; I! [. `, e6 W5 b* g! \
本帖最后由 rwxld 于 2011-5-11 23:56 编辑
/ W$ M/ A" |, @$ V) M: v
& E, Q$ j( c9 B: u& a4 ^
4 Z; w9 F0 ]4 `9 q0 E* l* E
$ J: l0 O6 R) h+ Z) F# R9 U1 n6 H
本帖最后由 rwxld 于 2011-5-12 00:18 编辑
" K1 J7 ~9 ^7 A* y3 B
8 q$ u; h8 @7 B& p
作者:
jkliang
时间:
2011-5-12 00:11
rwxld,看完您的問題我的想法是,首先您在定義變數X和Y的時候,根據所引用的理論或觀點,這兩個變數X和Y是否就是個多維構念呢?變數的維度應該也是由理論或觀點出發,而不能僅用數據來判斷,至少我的想法是如此,除非您的研究真是無任何的理論觀點,非得由數據才能確定不可,不過我記得Kenny與黃熾森老師的一篇文章,有關大陸企業的議題,到最後reviewr也建議他們引用一個理論,所以是否想想有適當的理論嗎?進一步再想維度的問題。如果這個確立後,就可依照Kenny之前文章提到的多維度構念的3種類型,進行後續的研究處理,供您與大家參考討論。
作者:
rwxld
时间:
2011-5-12 00:37
谢谢jkliang,我想理解了你和kenny的意思是一样的,就是说必须理论上是多维的,数据也是多维的,才可以。否则,理论是一个单维构念,数据却是2个因子,那么就是设计有问题了。也就是理论和数据都吻合才可以。
9 j( ^/ n% n/ v$ f1 |& O
那么我还有一个疑问,就是我有X1,X2,X3三个自变量,如果这三个自变量之间相关,并且都和因变量Y相关,如果对X1,X2,X3进行EFA,发现KMO等检验表明适合因子分析,有一个因子F1提取出来,我可不可以用F1代替X1,X2,X3做回归:Y=a0+a1F,也就是说,上述情况下,EFA的作用仅仅是data reduction,而不是去探索数据结构呢?
作者:
Kenneth
时间:
2011-5-12 09:18
回复
5楼
rwxld
的帖子
" K; V6 k5 \- T5 g, t; Y
rwxld,
) W; c" I) e9 A( x; h
1. 谢谢 jkliang 回答了你的问题了。
. V. B3 ~% {+ ?% K% t( d9 [
2. 把维度建构成一个“二阶构念”是可以的,你可以考虑用我们AMR(Law, Wong & Mobley, A taxonomy of Multidimensional Constructs)中讲的latent model或aggregate model或profile model。但是问题还是你的假设到底是在构念层面的,还是在维度层面的?你的理论到底容许你假设到什么层面?
' W; a4 t Q' H9 p1 `. T
3. 对的。
. b V4 C( A4 m: Q# U, V
4. 如果理论容许,符合假设的话,你可以考虑 canonical correlation 或是 principal component analysis.
5 F3 W+ r) e' z3 w5 c5 m, x$ }
5. 接着第4点,也顺便回答你的jkliang的问题。因子分析当然可以作为一个variable reduction的工具。你问我可以可以,答案是肯定可以的。这就等于问在回归分析中,能否随便放进一些变量,以增加模型的R-平方。理由是回归不竟是一个预测y变量的方差的工具嘛。我的答案是肯定可以的。问题是什么呢?问题是
到底你想做什么
?你的目的完全是预测y,自然可以随便放一些自变量,看看哪一个有用。但是,你的目的如果是理论验证的话,就绝对不可以这样了。同样的,因子分析是一个减少变量的统计工具,但是在CFA(甚至有时在EFA)中,它的主要工作是验证因子结构。如果是这样的话,你就不可以随便的把不同的项目、维度合起来了。
" x! h2 A# Y: J" h* q
我举最后一个例子。自然「工资满足感」和「主管满足感」都是「工作满足感」,我们可不可以把前两者加起来,作为后者的估计呢?是可以的。问题是你的假设到底是:「主管满足感影响Y」还是「工作满足感影响Y」?
& V) |& p( A* Z
9 M# T3 s2 F% W# _0 {3 p" I9 h
作者:
rwxld
时间:
2011-5-12 10:48
再次感谢kenny和JKliang的回答。
" V# B: ~' R; `. d
" W N( I1 R9 L) z) O
我的理论是符合主成分回归(principle component analysis)的,也就是我的X1,X2,X3和X4在理论上是可以合起来的。我是把这4个变量放在一起提取了一个因子F,然后用factor score作为F的取值做的回归。但是看到1楼maureenlmh用的那么复杂的方法我对自己的做法有了怀疑,所以来问。
- T# ?1 w! m, h, d! L4 r# U' g% T: J
8 d1 p* ]3 v; m& D- w, D6 M. P9 S
其实我想maureenlmh朋友可能和我的问题一样,就是在理论假设合适的情况下,如何将多个应该合并的变量转变成一个变量?我直接用的factor score, 他用的加权的办法,我没有看懂他的方法,也不知道我的方法是否太简单了。
0 U1 {$ x( N6 g, b3 E
5 q$ J: f' A- |$ m" X
语言有时候真的是苍白的,要把一个自己想问的问题很精确地表达出来真的很难。真的很感谢kenny,很多时候因为我们没有表达清楚,你都是边猜边解答。
% L+ y ~) d& p) f2 F
本帖最后由 rwxld 于 2011-5-12 10:51 编辑
3 l8 M2 }) H. q* i
5 u8 \, G" |3 B0 D* c# v
本帖最后由 rwxld 于 2011-5-12 10:54 编辑
8 |7 ^& _* ]' ]# E; f+ _
$ G7 |9 i# w. P, N6 ~
作者:
maureenlmh
时间:
2011-5-14 11:35
看了kenny的回答之后,我自己就一直在努力去理解和吸收,在自己还不能确定是否准确理解了kenny的意思之前,也不敢跟帖讨论。非常感谢rwxld契而不舍地继续求教,让我也能够在你来我往的讨论中,一点点地领会。
0 l4 o5 B; r/ Q" ?: j5 W
其实,我的研究问题,既考虑了在Y这一构念层面上与若干X的关系,也考虑了Y所包括的三个维度与这若干个X的关系(后面这一考虑,或者在我们的学科中,是指的更进一步地理解X影响Y的作用机制,即X对Y有影响,并且,对构成Y的各维度也有不同的影响)。所以,我在设计Y的测量项目时,也是从三个维度出发,分别设计了各个维度的若干个item,然后进行问卷调查的。数据回来后,我用了SPSS进行因子分析,由于item数量太多(58个),并且由于最致命的是样本量的限制(因为我研究的是组织机构),所以若用因子分析提取3个因子的话,只能解释较小的方差变异量。抛开这些不讲,如果我坚持自己的理论,得到了3个因子值,现在的问题就在于,我如果是在维度的层面上进行回归分析,则可以直接用SPSS生成的factor score;但如果我要在构念的层面上进行回归分析,该如何操作呢?(BTW,我最初只是考虑如何将问卷所得到的各item的值形成Y的取值)
作者:
Kenneth
时间:
2011-5-16 22:31
maureenlmh,
5 X; S6 }' B: v9 w* F( F: d, L
1. 你的构念很复杂吗?干嘛要58个项目来测3个维度?我的建议是大概每个维度5到6个项目一般就足够了。正确的做法,是每个维度选取载荷最高的(例如)5个项目。然后再收一次数据来验证因子结构。如果因为是企业层面的原因,你没有能力再收数据,那单用载荷最高的5个项目,总比用58个项目来得好吧!起码数据会"干净"很多。
% \: C* Y8 S1 p. M+ i0 K
2. 如果你不想在维度分析,可以用维度额因子数,再从这3个因子数中抽一个二阶因子(再做一个因子分析,不过不是用58个变量,而是用3个因子数)。这个二阶因子就是你的多维变量了。
+ ?6 f" B: f: V; _- X% I
欢迎光临 中人网 (http://bbs.chinahrd.net/)
Powered by Discuz! X2.5