井出草平の研究ノート

lavaanで潜在変数の相関係数を求める[R]

データとモデルの作成

library("lavaan")
Data <- HolzingerSwineford1939[,c("x1","x2","x3","x4", "x5", "x6")] 
model <- '
  f1 =~ x1 + x2 + x3
  f2 =~ x4 + x5 + x6
  '
fit <- sem(model, data = Data, std.lv = TRUE)

lavaanパッケージに含まれているデータHolzingerSwineford1939を利用する。

データはこちらを参照のこと。 https://ides.hatenablog.com/entry/2020/06/13/005540

潜在変数の相関係数

inspect関数を利用する。

inspect(fit, what="cor.lv")

結果。

   f1    f2   
f1 1.000      
f2 0.461 1.000

観測変数の相関係数

inspect(fit, what="cor.ov")

結果。

   x1    x2    x3    x4    x5    x6   
x1 1.000                              
x2 0.335 1.000                        
x3 0.442 0.245 1.000                  
x4 0.305 0.169 0.223 1.000            
x5 0.306 0.170 0.224 0.728 1.000      
x6 0.300 0.166 0.219 0.714 0.716 1.000

すべての変数の相関係数

inspect(fit, what="cor.all")

結果。

   x1    x2    x3    x4    x5    x6    f1    f2   
x1 1.000                                          
x2 0.335 1.000                                    
x3 0.442 0.245 1.000                              
x4 0.305 0.169 0.223 1.000                        
x5 0.306 0.170 0.224 0.728 1.000                  
x6 0.300 0.166 0.219 0.714 0.716 1.000            
f1 0.778 0.431 0.568 0.393 0.393 0.386 1.000      
f2 0.358 0.199 0.262 0.852 0.854 0.838 0.461 1.000

inspect関数

inspect関数全体についてはこちらを参照。 https://ides.hatenablog.com/entry/2020/07/30/020722

手動

通常の結果表示summaryで共分散が表示される。共分散を各々の標準偏差で割ると相関係数になるので、手動で求めることもできる。

https://sci-pursuit.com/math/statistics/correlation-coefficient.html