第6回(12月3日) Task Check and Weekly Assignment

探索的因子分析による潜在構造の把握

To Do

□ 因子分析法により,潜在構造を明らかにする

う・ん・ち・く

□ 因子分析法Factor Analysisとは心理学における統計技法の利用の中では伝統的な技術の一つで,潜在構造を明らかにする探索的因子分析をへて構造方程式モデリング(確認的因子分析)につなげると当てはめやすいのだ!

Using Package; lavaan,psych

Assignment

■ 投手のデータ(base_pitch.csv)をつかって探索的因子分析を行い,構造方程式モデリングで確認してみてください。

まずはデータセットを読み込んでください。これはプロ野球選手のデータで, 2013年の成績,年俸などが含まれているデータセットです。出典はこちら。>>http://baseball-data.com/ ついでに標準化しておきましょうね。

batter <- read.csv("base_bat.csv", na.strings = "NA")
summary(batter)
##      money            year            age           hight    
##  Min.   : 8600   Min.   : 1.00   Min.   :24.0   Min.   :169  
##  1st Qu.:11375   1st Qu.: 7.75   1st Qu.:30.0   1st Qu.:177  
##  Median :16000   Median :12.00   Median :32.5   Median :180  
##  Mean   :17488   Mean   :11.12   Mean   :33.4   Mean   :181  
##  3rd Qu.:20000   3rd Qu.:15.25   3rd Qu.:37.0   3rd Qu.:184  
##  Max.   :57000   Max.   :25.00   Max.   :42.0   Max.   :196  
##  NA's   :5       NA's   :5       NA's   :5      NA's   :5    
##      weight          daritu          shiai         daseki        dasuu    
##  Min.   : 67.0   Min.   :0.185   Min.   :  9   Min.   : 10   Min.   : 10  
##  1st Qu.: 80.8   1st Qu.:0.230   1st Qu.: 69   1st Qu.:238   1st Qu.:212  
##  Median : 87.5   Median :0.266   Median :108   Median :424   Median :374  
##  Mean   : 88.4   Mean   :0.262   Mean   :102   Mean   :395   Mean   :347  
##  3rd Qu.: 94.0   3rd Qu.:0.290   3rd Qu.:141   3rd Qu.:581   3rd Qu.:508  
##  Max.   :130.0   Max.   :0.333   Max.   :144   Max.   :658   Max.   :590  
##  NA's   :5                                                                
##       anda           HR         datgen          steal      
##  Min.   :  2   Min.   : 0   Min.   :  1.0   Min.   : 0.00  
##  1st Qu.: 50   1st Qu.: 2   1st Qu.: 17.0   1st Qu.: 0.00  
##  Median : 88   Median : 6   Median : 40.0   Median : 1.00  
##  Mean   : 95   Mean   :10   Mean   : 45.7   Mean   : 5.65  
##  3rd Qu.:147   3rd Qu.:16   3rd Qu.: 67.0   3rd Qu.: 6.00  
##  Max.   :180   Max.   :41   Max.   :136.0   Max.   :47.00  
##                                                            
##       four            dead             K              gida      
##  Min.   :  0.0   Min.   : 0.00   Min.   :  3.0   Min.   : 0.00  
##  1st Qu.: 16.0   1st Qu.: 1.00   1st Qu.: 38.0   1st Qu.: 0.00  
##  Median : 33.0   Median : 2.00   Median : 54.0   Median : 1.00  
##  Mean   : 38.8   Mean   : 3.63   Mean   : 62.6   Mean   : 3.19  
##  3rd Qu.: 54.0   3rd Qu.: 5.00   3rd Qu.: 81.0   3rd Qu.: 5.00  
##  Max.   :105.0   Max.   :15.00   Max.   :164.0   Max.   :19.00  
## 
batter.z <- as.data.frame(scale(batter))

今回必要なパッケージ,lavaanとpsychを装着します(持ってない人はインストールしてください)

# install.packages('psych')
library(lavaan)
## This is lavaan 0.5-15
## lavaan is BETA software! Please report any bugs.
library(psych)

データセットの中でつかう変数だけ取り出しておきます。

batter2 <- batter[6:16]

想定する因子(潜在変数)の数を決めます。 決める方法はいろいろありますが,今回は平行分析というのをやってみます。

fa.parallel(batter2)
## Loading required package: MASS

plot of chunk unnamed-chunk-4

## Parallel analysis suggests that the number of factors =  1  and the number of components =  1

2つのfactorを設定するのがいいよ,ということなので,そうした因子分析を考えます。

fa.result <- fa(batter2, nfactors = 2, fm = "minres", rotate = "promax")
print(fa.result, sort = T, digit = 3, cut = 0.3)
## Factor Analysis using method =  minres
## Call: fa(r = batter2, nfactors = 2, rotate = "promax", fm = "minres")
## Standardized loadings (pattern matrix) based upon correlation matrix
##        item    MR1    MR2    h2      u2  com
## anda      5  0.894        0.981 0.01904 1.03
## dasuu     4  0.892        0.993 0.00716 1.24
## daseki    3  0.800        0.992 0.00814 1.19
## shiai     2  0.750        0.922 0.07767 1.05
## daritu    1  0.646        0.495 0.50457 1.04
## steal     8  0.607        0.262 0.73808 1.00
## four      9         0.940 0.901 0.09852 1.52
## HR        6         0.834 0.688 0.31171 1.11
## dead     10         0.645 0.439 0.56068 1.00
## datgen    7  0.340  0.639 0.844 0.15606 1.00
## K        11  0.344  0.522 0.656 0.34394 1.73
## 
##                         MR1   MR2
## SS loadings           4.563 3.612
## Proportion Var        0.415 0.328
## Cumulative Var        0.415 0.743
## Proportion Explained  0.558 0.442
## Cumulative Proportion 0.558 1.000
## 
##  With factor correlations of 
##       MR1   MR2
## MR1 1.000 0.738
## MR2 0.738 1.000
## 
## Mean item complexity =  1.2
## Test of the hypothesis that 2 factors are sufficient.
## 
## The degrees of freedom for the null model are  55  and the objective function was  23.78 with Chi Square of  1225
## The degrees of freedom for the model are 34  and the objective function was  7.844 
## 
## The root mean square of the residuals (RMSR) is  0.065 
## The df corrected root mean square of the residuals is  0.117 
## 
## The harmonic number of observations is  57 with the empirical chi square  26.67  with prob <  0.811 
## The total number of observations was  57  with MLE Chi Square =  393.5  with prob <  9.39e-63 
## 
## Tucker Lewis Index of factoring reliability =  0.489
## RMSEA index =  0.4613  and the 90 % confidence intervals are  0.393 0.4694
## BIC =  256
## Fit based upon off diagonal values = 0.991
## Measures of factor score adequacy             
##                                                  MR1   MR2
## Correlation of scores with factors             0.999 0.993
## Multiple R square of scores with factors       0.997 0.987
## Minimum correlation of possible factor scores  0.994 0.974

結果として,どこがどのようにまとまるのかがわかりましたので,それにあわせて方程式モデリングをします。

model <- " 
jibun =~ anda+dasuu+daseki+shiai+daritu+steal+datgen+K
aite  =~ four+HR+dead+datgen+K
jibun ~~ aite
money ~jibun + aite
"

sem.result <- sem(model, data = batter.z)
summary(sem.result, fit.measures = TRUE, standardized = T)
## lavaan (0.5-15) converged normally after 136 iterations
## 
##                                                   Used       Total
##   Number of observations                            52          57
## 
##   Estimator                                         ML
##   Minimum Function Test Statistic              366.564
##   Degrees of freedom                                50
##   P-value (Chi-square)                           0.000
## 
## Model test baseline model:
## 
##   Minimum Function Test Statistic             1239.640
##   Degrees of freedom                                66
##   P-value                                        0.000
## 
## User model versus baseline model:
## 
##   Comparative Fit Index (CFI)                    0.730
##   Tucker-Lewis Index (TLI)                       0.644
## 
## Loglikelihood and Information Criteria:
## 
##   Loglikelihood user model (H0)               -433.988
##   Loglikelihood unrestricted model (H1)       -250.706
## 
##   Number of free parameters                         28
##   Akaike (AIC)                                 923.976
##   Bayesian (BIC)                               978.611
##   Sample-size adjusted Bayesian (BIC)          890.683
## 
## Root Mean Square Error of Approximation:
## 
##   RMSEA                                          0.349
##   90 Percent Confidence Interval          0.316  0.383
##   P-value RMSEA <= 0.05                          0.000
## 
## Standardized Root Mean Square Residual:
## 
##   SRMR                                           0.104
## 
## Parameter estimates:
## 
##   Information                                 Expected
##   Standard Errors                             Standard
## 
##                    Estimate  Std.err  Z-value  P(>|z|)   Std.lv  Std.all
## Latent variables:
##   jibun =~
##     anda              1.000                               0.937    0.979
##     dasuu             0.999    0.030   32.996    0.000    0.936    0.998
##     daseki            0.997    0.031   32.086    0.000    0.934    0.997
##     shiai             0.946    0.047   19.986    0.000    0.886    0.960
##     daritu            0.715    0.111    6.436    0.000    0.670    0.673
##     steal             0.518    0.134    3.867    0.000    0.486    0.475
##     datgen            0.342    0.057    6.007    0.000    0.321    0.324
##     K                 0.540    0.127    4.252    0.000    0.506    0.518
##   aite =~
##     four              1.000                               0.655    0.674
##     HR                1.504    0.238    6.317    0.000    0.986    0.973
##     dead              0.981    0.225    4.369    0.000    0.643    0.639
##     datgen            1.111    0.187    5.932    0.000    0.728    0.735
##     K                 0.498    0.197    2.524    0.012    0.326    0.334
## 
## Regressions:
##   money ~
##     jibun            -0.205    0.189   -1.084    0.278   -0.192   -0.194
##     aite              0.770    0.297    2.591    0.010    0.504    0.509
## 
## Covariances:
##   jibun ~~
##     aite              0.422    0.124    3.414    0.001    0.688    0.688
## 
## Variances:
##     anda              0.038    0.008                      0.038    0.042
##     dasuu             0.003    0.002                      0.003    0.004
##     daseki            0.006    0.002                      0.006    0.006
##     shiai             0.068    0.014                      0.068    0.079
##     daritu            0.542    0.107                      0.542    0.547
##     steal             0.808    0.159                      0.808    0.774
##     datgen            0.026    0.018                      0.026    0.027
##     K                 0.366    0.072                      0.366    0.383
##     four              0.517    0.104                      0.517    0.546
##     HR                0.054    0.032                      0.054    0.053
##     dead              0.601    0.120                      0.601    0.592
##     money             0.823    0.163                      0.823    0.839
##     jibun             0.878    0.180                      1.000    1.000
##     aite              0.429    0.157                      1.000    1.000

で,ちょっと図で確認してみたりして。

# install.packages('semPlot')
library(semPlot)
## This is semPlot 0.3.3
## semPlot is BETA software! Please report any bugs.
semPaths(sem.result, "std")

plot of chunk plotDemo

ここからモデルを改良していった方が楽よね。

modificationindices(sem.result)
##       lhs op    rhs     mi    epc sepc.lv sepc.all sepc.nox
## 1   jibun =~   anda     NA     NA      NA       NA       NA
## 2   jibun =~  dasuu  0.000  0.000   0.000    0.000    0.000
## 3   jibun =~ daseki  0.000  0.000   0.000    0.000    0.000
## 4   jibun =~  shiai  0.000  0.000   0.000    0.000    0.000
## 5   jibun =~ daritu  0.000  0.000   0.000    0.000    0.000
## 6   jibun =~  steal  0.000  0.000   0.000    0.000    0.000
## 7   jibun =~ datgen  0.000  0.000   0.000    0.000    0.000
## 8   jibun =~      K  0.000  0.000   0.000    0.000    0.000
## 9   jibun =~   four 16.078  0.612   0.573    0.589    0.589
## 10  jibun =~     HR 13.705 -0.642  -0.602   -0.594   -0.594
## 11  jibun =~   dead  0.939  0.159   0.149    0.148    0.148
## 12   aite =~   anda  4.008  0.120   0.079    0.082    0.082
## 13   aite =~  dasuu  8.024 -0.076  -0.050   -0.053   -0.053
## 14   aite =~ daseki  3.135  0.050   0.033    0.035    0.035
## 15   aite =~  shiai  0.520  0.057   0.037    0.040    0.040
## 16   aite =~ daritu  3.292  0.400   0.262    0.263    0.263
## 17   aite =~  steal  9.418 -0.825  -0.540   -0.529   -0.529
## 18   aite =~ datgen  0.000  0.000   0.000    0.000    0.000
## 19   aite =~      K  0.000  0.000   0.000    0.000    0.000
## 20   aite =~   four     NA     NA      NA       NA       NA
## 21   aite =~     HR  0.000  0.000   0.000    0.000    0.000
## 22   aite =~   dead  0.000  0.000   0.000    0.000    0.000
## 23   anda ~~   anda  0.000  0.000   0.000    0.000    0.000
## 24   anda ~~  dasuu  4.333  0.008   0.008    0.009    0.009
## 25   anda ~~ daseki  6.599 -0.010  -0.010   -0.011   -0.011
## 26   anda ~~  shiai  3.541 -0.014  -0.014   -0.016   -0.016
## 27   anda ~~ daritu 36.987  0.125   0.125    0.131    0.131
## 28   anda ~~  steal  0.038  0.005   0.005    0.005    0.005
## 29   anda ~~ datgen 11.048  0.021   0.021    0.022    0.022
## 30   anda ~~      K 10.546 -0.055  -0.055   -0.059   -0.059
## 31   anda ~~   four  8.871 -0.060  -0.060   -0.065   -0.065
## 32   anda ~~     HR  0.784 -0.008  -0.008   -0.008   -0.008
## 33   anda ~~   dead  0.010 -0.002  -0.002   -0.002   -0.002
## 34  dasuu ~~  dasuu  0.000  0.000   0.000    0.000    0.000
## 35  dasuu ~~ daseki  0.427  0.004   0.004    0.005    0.005
## 36  dasuu ~~  shiai  1.965 -0.005  -0.005   -0.006   -0.006
## 37  dasuu ~~ daritu  2.771 -0.015  -0.015   -0.016   -0.016
## 38  dasuu ~~  steal  0.003 -0.001  -0.001   -0.001   -0.001
## 39  dasuu ~~ datgen  0.011  0.000   0.000    0.000    0.000
## 40  dasuu ~~      K  0.002  0.000   0.000    0.000    0.000
## 41  dasuu ~~   four 11.130 -0.030  -0.030   -0.032   -0.032
## 42  dasuu ~~     HR  0.331  0.002   0.002    0.002    0.002
## 43  dasuu ~~   dead  5.917 -0.023  -0.023   -0.025   -0.025
## 44 daseki ~~ daseki  0.000  0.000   0.000    0.000    0.000
## 45 daseki ~~  shiai  6.521  0.010   0.010    0.012    0.012
## 46 daseki ~~ daritu  1.286 -0.011  -0.011   -0.012   -0.012
## 47 daseki ~~  steal  0.681  0.010   0.010    0.010    0.010
## 48 daseki ~~ datgen  2.644 -0.005  -0.005   -0.005   -0.005
## 49 daseki ~~      K  2.199  0.012   0.012    0.013    0.013
## 50 daseki ~~   four 26.661  0.048   0.048    0.053    0.053
## 51 daseki ~~     HR  0.213 -0.002  -0.002   -0.002   -0.002
## 52 daseki ~~   dead  6.683  0.026   0.026    0.027    0.027
## 53  shiai ~~  shiai  0.000  0.000   0.000    0.000    0.000
## 54  shiai ~~ daritu  0.576 -0.020  -0.020   -0.022   -0.022
## 55  shiai ~~  steal  2.017 -0.047  -0.047   -0.049   -0.049
## 56  shiai ~~ datgen  0.108 -0.003  -0.003   -0.003   -0.003
## 57  shiai ~~      K  0.186  0.010   0.010    0.011    0.011
## 58  shiai ~~   four  1.291  0.030   0.030    0.034    0.034
## 59  shiai ~~     HR  0.002  0.001   0.001    0.001    0.001
## 60  shiai ~~   dead  0.019  0.004   0.004    0.004    0.004
## 61 daritu ~~ daritu  0.000  0.000   0.000    0.000    0.000
## 62 daritu ~~  steal  0.002 -0.004  -0.004   -0.004   -0.004
## 63 daritu ~~ datgen  5.462  0.054   0.054    0.055    0.055
## 64 daritu ~~      K  6.664 -0.160  -0.160   -0.165   -0.165
## 65 daritu ~~   four  2.871 -0.126  -0.126   -0.130   -0.130
## 66 daritu ~~     HR  0.285 -0.017  -0.017   -0.017   -0.017
## 67 daritu ~~   dead  0.083  0.023   0.023    0.023    0.023
## 68  steal ~~  steal  0.000  0.000   0.000    0.000    0.000
## 69  steal ~~ datgen  4.493 -0.060  -0.060   -0.059   -0.059
## 70  steal ~~      K  4.784  0.166   0.166    0.166    0.166
## 71  steal ~~   four  5.447  0.211   0.211    0.213    0.213
## 72  steal ~~     HR  0.108 -0.013  -0.013   -0.012   -0.012
## 73  steal ~~   dead  1.760  0.129   0.129    0.126    0.126
## 74 datgen ~~ datgen  0.000  0.000   0.000    0.000    0.000
## 75 datgen ~~      K  0.640 -0.017  -0.017   -0.017   -0.017
## 76 datgen ~~   four  2.048 -0.041  -0.041   -0.042   -0.042
## 77 datgen ~~     HR 18.009  0.263   0.263    0.263    0.263
## 78 datgen ~~   dead  0.054 -0.007  -0.007   -0.007   -0.007
## 79      K ~~      K  0.000  0.000   0.000    0.000    0.000
## 80      K ~~   four  1.013  0.062   0.062    0.065    0.065
## 81      K ~~     HR  0.535  0.021   0.021    0.021    0.021
## 82      K ~~   dead  0.294  0.036   0.036    0.036    0.036
## 83   four ~~   four  0.000  0.000   0.000    0.000    0.000
## 84   four ~~     HR  1.394 -0.047  -0.047   -0.048   -0.048
## 85   four ~~   dead  2.415  0.123   0.123    0.125    0.125
## 86     HR ~~     HR  0.000  0.000   0.000    0.000    0.000
## 87     HR ~~   dead  0.916 -0.039  -0.039   -0.038   -0.038
## 88   dead ~~   dead  0.000  0.000   0.000    0.000    0.000
## 89  money ~~  money  0.000  0.000   0.000    0.000    0.000
## 90  jibun ~~  jibun  0.000  0.000   0.000    0.000    0.000
## 91  jibun ~~   aite  0.000  0.000   0.000    0.000    0.000
## 92   aite ~~   aite  0.000  0.000   0.000    0.000    0.000
## 93  money  ~  jibun  0.000  0.000   0.000    0.000    0.000
## 94  money  ~   aite  0.000  0.000   0.000    0.000    0.000
## 95  jibun  ~  money     NA     NA      NA       NA       NA
## 96  jibun  ~   aite     NA     NA      NA       NA       NA
## 97   aite  ~  money     NA     NA      NA       NA       NA
## 98   aite  ~  jibun     NA     NA      NA       NA       NA

model.2 <- " 
jibun =~ anda+dasuu+daseki+shiai+daritu+steal+datgen+K
aite  =~ four+HR+dead+datgen+K
jibun ~~ aite
anda ~~ daritu
daseki ~~ four
money ~ aite
"

sem.result.2 <- sem(model.2, data = batter.z)
summary(sem.result.2, fit.measures = TRUE, standardized = T)
## lavaan (0.5-15) converged normally after 148 iterations
## 
##                                                   Used       Total
##   Number of observations                            52          57
## 
##   Estimator                                         ML
##   Minimum Function Test Statistic              209.031
##   Degrees of freedom                                49
##   P-value (Chi-square)                           0.000
## 
## Model test baseline model:
## 
##   Minimum Function Test Statistic             1239.640
##   Degrees of freedom                                66
##   P-value                                        0.000
## 
## User model versus baseline model:
## 
##   Comparative Fit Index (CFI)                    0.864
##   Tucker-Lewis Index (TLI)                       0.816
## 
## Loglikelihood and Information Criteria:
## 
##   Loglikelihood user model (H0)               -355.222
##   Loglikelihood unrestricted model (H1)       -250.706
## 
##   Number of free parameters                         29
##   Akaike (AIC)                                 768.444
##   Bayesian (BIC)                               825.030
##   Sample-size adjusted Bayesian (BIC)          733.961
## 
## Root Mean Square Error of Approximation:
## 
##   RMSEA                                          0.251
##   90 Percent Confidence Interval          0.216  0.286
##   P-value RMSEA <= 0.05                          0.000
## 
## Standardized Root Mean Square Residual:
## 
##   SRMR                                           0.228
## 
## Parameter estimates:
## 
##   Information                                 Expected
##   Standard Errors                             Standard
## 
##                    Estimate  Std.err  Z-value  P(>|z|)   Std.lv  Std.all
## Latent variables:
##   jibun =~
##     anda              1.000                               0.937    0.979
##     dasuu             1.001    0.029   34.429    0.000    0.938    1.000
##     daseki            0.900    0.027   33.898    0.000    0.843    0.989
##     shiai             0.942    0.048   19.511    0.000    0.883    0.956
##     daritu            0.709    0.093    7.634    0.000    0.664    0.667
##     steal             0.517    0.134    3.855    0.000    0.484    0.474
##     datgen            0.394    0.055    7.221    0.000    0.369    0.373
##     K                 0.550    0.120    4.584    0.000    0.515    0.527
##   aite =~
##     four              1.000                               0.093    0.101
##     HR               10.836    4.648    2.331    0.020    1.003    0.990
##     dead              6.723    3.101    2.168    0.030    0.622    0.618
##     datgen            7.444    3.196    2.329    0.020    0.689    0.696
##     K                 3.537    1.933    1.830    0.067    0.327    0.335
## 
## Regressions:
##   money ~
##     aite              4.062    2.214    1.834    0.067    0.376    0.380
## 
## Covariances:
##   jibun ~~
##     aite              0.056    0.028    1.990    0.047    0.646    0.646
##   anda ~~
##     daritu            0.124    0.026    4.674    0.000    0.124    0.855
##   daseki ~~
##     four              0.115    0.023    5.025    0.000    0.115    0.980
## 
## Variances:
##     anda              0.038    0.008                      0.038    0.042
##     dasuu             0.000    0.001                      0.000    0.000
##     daseki            0.016    0.003                      0.016    0.023
##     shiai             0.073    0.014                      0.073    0.085
##     daritu            0.550    0.108                      0.550    0.555
##     steal             0.810    0.159                      0.810    0.776
##     datgen            0.041    0.020                      0.041    0.041
##     K                 0.365    0.072                      0.365    0.383
##     four              0.839    0.164                      0.839    0.990
##     HR                0.020    0.040                      0.020    0.019
##     dead              0.627    0.124                      0.627    0.618
##     money             0.839    0.165                      0.839    0.856
##     jibun             0.878    0.180                      1.000    1.000
##     aite              0.009    0.007                      1.000    1.000

追記) 修正指数が出過ぎて困るというあなたへ。modificationindeces関数はdata.frameで返すから,受け取ってsortすれば良い。トップ5だけ欲しい,といった場合はhead関数を使えば(デフォルトで6位まで)出る。

modi <- modindices(sem.result)
modi[order(modi$mi, decreasing = T), ]
##       lhs op    rhs     mi    epc sepc.lv sepc.all sepc.nox
## 1    anda ~~ daritu 36.987  0.125   0.125    0.131    0.131
## 2  daseki ~~   four 26.661  0.048   0.048    0.053    0.053
## 3  datgen ~~     HR 18.009  0.263   0.263    0.263    0.263
## 4   jibun =~   four 16.078  0.612   0.573    0.589    0.589
## 5   jibun =~     HR 13.705 -0.642  -0.602   -0.594   -0.594
## 6   dasuu ~~   four 11.130 -0.030  -0.030   -0.032   -0.032
## 7    anda ~~ datgen 11.048  0.021   0.021    0.022    0.022
## 8    anda ~~      K 10.546 -0.055  -0.055   -0.059   -0.059
## 9    aite =~  steal  9.418 -0.825  -0.540   -0.529   -0.529
## 10   anda ~~   four  8.871 -0.060  -0.060   -0.065   -0.065
## 11   aite =~  dasuu  8.024 -0.076  -0.050   -0.053   -0.053
## 12 daseki ~~   dead  6.683  0.026   0.026    0.027    0.027
## 13 daritu ~~      K  6.664 -0.160  -0.160   -0.165   -0.165
## 14   anda ~~ daseki  6.599 -0.010  -0.010   -0.011   -0.011
## 15 daseki ~~  shiai  6.521  0.010   0.010    0.012    0.012
## 16  dasuu ~~   dead  5.917 -0.023  -0.023   -0.025   -0.025
## 17 daritu ~~ datgen  5.462  0.054   0.054    0.055    0.055
## 18  steal ~~   four  5.447  0.211   0.211    0.213    0.213
## 19  steal ~~      K  4.784  0.166   0.166    0.166    0.166
## 20  steal ~~ datgen  4.493 -0.060  -0.060   -0.059   -0.059
## 21   anda ~~  dasuu  4.333  0.008   0.008    0.009    0.009
## 22   aite =~   anda  4.008  0.120   0.079    0.082    0.082
## 23   anda ~~  shiai  3.541 -0.014  -0.014   -0.016   -0.016
## 24   aite =~ daritu  3.292  0.400   0.262    0.263    0.263
## 25   aite =~ daseki  3.135  0.050   0.033    0.035    0.035
## 26 daritu ~~   four  2.871 -0.126  -0.126   -0.130   -0.130
## 27  dasuu ~~ daritu  2.771 -0.015  -0.015   -0.016   -0.016
## 28 daseki ~~ datgen  2.644 -0.005  -0.005   -0.005   -0.005
## 29   four ~~   dead  2.415  0.123   0.123    0.125    0.125
## 30 daseki ~~      K  2.199  0.012   0.012    0.013    0.013
## 31 datgen ~~   four  2.048 -0.041  -0.041   -0.042   -0.042
## 32  shiai ~~  steal  2.017 -0.047  -0.047   -0.049   -0.049
## 33  dasuu ~~  shiai  1.965 -0.005  -0.005   -0.006   -0.006
## 34  steal ~~   dead  1.760  0.129   0.129    0.126    0.126
## 35   four ~~     HR  1.394 -0.047  -0.047   -0.048   -0.048
## 36  shiai ~~   four  1.291  0.030   0.030    0.034    0.034
## 37 daseki ~~ daritu  1.286 -0.011  -0.011   -0.012   -0.012
## 38      K ~~   four  1.013  0.062   0.062    0.065    0.065
## 39  jibun =~   dead  0.939  0.159   0.149    0.148    0.148
## 40     HR ~~   dead  0.916 -0.039  -0.039   -0.038   -0.038
## 41   anda ~~     HR  0.784 -0.008  -0.008   -0.008   -0.008
## 42 daseki ~~  steal  0.681  0.010   0.010    0.010    0.010
## 43 datgen ~~      K  0.640 -0.017  -0.017   -0.017   -0.017
## 44  shiai ~~ daritu  0.576 -0.020  -0.020   -0.022   -0.022
## 45      K ~~     HR  0.535  0.021   0.021    0.021    0.021
## 46   aite =~  shiai  0.520  0.057   0.037    0.040    0.040
## 47  dasuu ~~ daseki  0.427  0.004   0.004    0.005    0.005
## 48  dasuu ~~     HR  0.331  0.002   0.002    0.002    0.002
## 49      K ~~   dead  0.294  0.036   0.036    0.036    0.036
## 50 daritu ~~     HR  0.285 -0.017  -0.017   -0.017   -0.017
## 51 daseki ~~     HR  0.213 -0.002  -0.002   -0.002   -0.002
## 52  shiai ~~      K  0.186  0.010   0.010    0.011    0.011
## 53  shiai ~~ datgen  0.108 -0.003  -0.003   -0.003   -0.003
## 54  steal ~~     HR  0.108 -0.013  -0.013   -0.012   -0.012
## 55 daritu ~~   dead  0.083  0.023   0.023    0.023    0.023
## 56 datgen ~~   dead  0.054 -0.007  -0.007   -0.007   -0.007
## 57   anda ~~  steal  0.038  0.005   0.005    0.005    0.005
## 58  shiai ~~   dead  0.019  0.004   0.004    0.004    0.004
## 59  dasuu ~~ datgen  0.011  0.000   0.000    0.000    0.000
## 60   anda ~~   dead  0.010 -0.002  -0.002   -0.002   -0.002
## 61  dasuu ~~  steal  0.003 -0.001  -0.001   -0.001   -0.001
## 62  dasuu ~~      K  0.002  0.000   0.000    0.000    0.000
## 63  shiai ~~     HR  0.002  0.001   0.001    0.001    0.001
## 64 daritu ~~  steal  0.002 -0.004  -0.004   -0.004   -0.004
## 65  jibun =~  dasuu  0.000  0.000   0.000    0.000    0.000
## 66  jibun =~ daseki  0.000  0.000   0.000    0.000    0.000
## 67  jibun =~  shiai  0.000  0.000   0.000    0.000    0.000
## 68  jibun =~ daritu  0.000  0.000   0.000    0.000    0.000
## 69  jibun =~  steal  0.000  0.000   0.000    0.000    0.000
## 70  jibun =~ datgen  0.000  0.000   0.000    0.000    0.000
## 71  jibun =~      K  0.000  0.000   0.000    0.000    0.000
## 72   aite =~ datgen  0.000  0.000   0.000    0.000    0.000
## 73   aite =~      K  0.000  0.000   0.000    0.000    0.000
## 74   aite =~     HR  0.000  0.000   0.000    0.000    0.000
## 75   aite =~   dead  0.000  0.000   0.000    0.000    0.000
## 76   anda ~~   anda  0.000  0.000   0.000    0.000    0.000
## 77  dasuu ~~  dasuu  0.000  0.000   0.000    0.000    0.000
## 78 daseki ~~ daseki  0.000  0.000   0.000    0.000    0.000
## 79  shiai ~~  shiai  0.000  0.000   0.000    0.000    0.000
## 80 daritu ~~ daritu  0.000  0.000   0.000    0.000    0.000
## 81  steal ~~  steal  0.000  0.000   0.000    0.000    0.000
## 82 datgen ~~ datgen  0.000  0.000   0.000    0.000    0.000
## 83      K ~~      K  0.000  0.000   0.000    0.000    0.000
## 84   four ~~   four  0.000  0.000   0.000    0.000    0.000
## 85     HR ~~     HR  0.000  0.000   0.000    0.000    0.000
## 86   dead ~~   dead  0.000  0.000   0.000    0.000    0.000
## 87  money ~~  money  0.000  0.000   0.000    0.000    0.000
## 88  jibun ~~  jibun  0.000  0.000   0.000    0.000    0.000
## 89  jibun ~~   aite  0.000  0.000   0.000    0.000    0.000
## 90   aite ~~   aite  0.000  0.000   0.000    0.000    0.000
## 91  money  ~  jibun  0.000  0.000   0.000    0.000    0.000
## 92  money  ~   aite  0.000  0.000   0.000    0.000    0.000
## 93  jibun =~   anda     NA     NA      NA       NA       NA
## 94   aite =~   four     NA     NA      NA       NA       NA
## 95  jibun  ~  money     NA     NA      NA       NA       NA
## 96  jibun  ~   aite     NA     NA      NA       NA       NA
## 97   aite  ~  money     NA     NA      NA       NA       NA
## 98   aite  ~  jibun     NA     NA      NA       NA       NA
head(modi[order(modi$mi, decreasing = T), ])
##      lhs op    rhs    mi    epc sepc.lv sepc.all sepc.nox
## 1   anda ~~ daritu 36.99  0.125   0.125    0.131    0.131
## 2 daseki ~~   four 26.66  0.048   0.048    0.053    0.053
## 3 datgen ~~     HR 18.01  0.263   0.263    0.263    0.263
## 4  jibun =~   four 16.08  0.612   0.573    0.589    0.589
## 5  jibun =~     HR 13.71 -0.642  -0.602   -0.594   -0.594
## 6  dasuu ~~   four 11.13 -0.030  -0.030   -0.032   -0.032

これでちょっとはやりやすくなったかな?