问:怎么数自由度?
(1) 此处只有observed variables。如果现在的情况是有12个observed variables,对应于3个latent variables,那么k=? 不知道k是否包括latent variables? 度量模型的系数 (因子负荷)应该算是parameters of being
estimated吧。那么现在degrees of freedom required应该是多少呢? 如下图所示,我想应该是15。
(2) 运行LISREL的结果是df = 51。不知道这个51是指什么? 是怎么算出来的?
(3) SEM中的变量可以是定类变量吗? 因为在define variable时, 只提供了ordinal 跟continuous可选。 答:
先答问题3:SEM不可用定类变量。如果一定要用,方法一是将其转换成 dummy variable (零一变量),比较容易;方法二是将其当作 grouping variable(分组变量), 然后每一组为一个样本,做multigroup comparisons(多组比较模型),比较麻烦;方法三是改用Latent Classification Model,那是全新的另一世界。
回到如何计算自由度 (degrees of freedom, df)。记得很久前小彭问过类似问题,我答应要写个贴,但一直忘了。估计小彭现在已知道答案了,但大概还有其他庄员有兴趣。
用我自己的语言来说,自由度是指“原有数据中所提供的信息与验证模型所需的信息之间的剩余信息”。为了便于说明,我在你的图上加了一些符号。
这里的“数据提供的信息”有两种算法。一种是计算数据中observed variables indicators (变量) 之间的相关系数(correlations)的个数,一般用k来表示变量的个数,其相关系数的个数则为 k X (k – 1) / 2。如你的例子中有12个变量,它们之间的相关系数应该有12 X 11 / 2 = 66。
另一种是计算数据所有变量之间的variance-covariance (方差-协方差) 的个数,公式为 k X (k + 1) / 2。在本例中,共有 12 X 13 /2 = 78。
“模型所需的信息”也有两种对应的算法。与相关系数对应的算法是模型中所需估计的parameters (参数),包括factor loadings (因子负荷,即λ,本例中有12个)、coefficients of exogenous factors (自变量因子对因变量因子的影响系数,即γ,本例中有2个)、 coefficients of endogenous factors (因变量因子对因变量因子的影响系数,即в,本例中有1个),三者相加共有 12 + 2 + 1 = 15个参数需要被估计。
如果按方差-协方差计算的话,那么需要被估计的参数,除了以上的λ、γ和в以外,还需要加上每个errors of indicators(变量的残差,即δ和ε,本例中有12个),四者相加为 12 + 2 + 1 + 12 = 27。
好了,我一开始说的“自由度是数据提供的信息与模型所需的信息之差”就是 66 – 15 = 51 或者 78 – 27 = 51。这就是你用LISREL算出的结果。不管用相关系数还是方差-协方差来算,结果都一样(一定而且必须一样,不然不就乱套了吗?)。
再讲几句题外话。一个模型的自由度多好还是少好?这有点象“我们应该把钱藏在枕头底下好、还是消费享受”的问题。前者为了将来幸福而眼下受苦,而后者眼下痛快、将来痛苦。统计中的自由度当然有不同的含义,但有些道理大概是相通的。从理论上讲,一个模型用的参数越少、其自由度就越大,因此越符合parsimony(简约性)的原则。但是,参数越少,模型的goodness of fit(拟合
度)就越差,这时,自由度再多有什么用(不就成了把钱压在枕头下了吗)? 当然,乱用自由度也是会受到惩罚的,如果估计的参数大于数据的信息,就会碰到Over-fit(“过度拟合”)的问题,如果严重到“自由度透支”,LISREL或其它软件会自动罢工,拒绝执行。
因篇幅问题不能全部显示,请点此查看更多更全内容