ポリコリック相関係数のThresholdsの意味

院生からのメールで、Rのpolycorパッケージのpolychor()やpolyserial()のthreshold=TRUEで表示されるThresholdsの意味について問い合わせがあったので調べてみた。以下返信メールの該当部分を貼り付ける。

======(ここから)======
Thresholdsは計算途中で使われる値で、  

https://www.researchgate.net/profile/Fritz-Drasgow/publication/313196484_Polychoric_and_polyserial_correlations/links/5968d1d2458515e9afa7a0b8/Polychoric-and-polyserial-correlations.pdf 

や  

https://documentation.sas.com/doc/en/pgmsascdc/9.4_3.5/procstat/procstat_corr_details16.htm 

を見ると、その順序カテゴリまでに含まれるサンプルの割合の正規分布のパーセント点です。講義テキスト(第8章、pp.112)の例だと、 

> library(MASS)
> library(polychor)
> survey$Smoke <- factor(survey$Smoke, levels=levels(survey$Smoke)[c(2, 3, 4, 1)])
> survey$Exer <- factor(survey$Exer, levels=levels(survey$Exer)[c(2, 3, 1)])
> polychor(survey$Smoke, survey$Exer, std.err=TRUE)

Polychoric Correlation, 2-step est. = 0.1269 (0.1011)
Test of bivariate normality: Chisquare = 4.274, df = 5, p = 0.5107

  Row Thresholds
1 0.8447
2 1.1820
3 1.6790

  Column Thresholds
1 -1.29600
2  0.03187
となりますが、

> print(dat <- xtabs(~Smoke+Exer, data=survey))
       Exer
Smoke   None Some Freq
  Never   18   84   87
  Occas    3    4   12
  Regul    1    7    9
  Heavy    1    3    7  

> print(RR <- rowSums(dat))
Never Occas Regul Heavy
  189    19    17    11  

> print(CC <- colSums(dat))
None Some Freq
  23   98  115 

のように、行ごと、列ごとの合計を計算しておいて、

> qnorm(cumsum(RR)/sum(RR))
    Never     Occas     Regul     Heavy
0.8446521 1.1817923 1.6786497       Inf 

> qnorm(cumsum(CC)/sum(CC))
       None        Some        Freq
-1.29617484  0.03186931         Inf 

として出てくる値がThresholdsです。計算途中で使われる値で、分布の様子を示しますが、とくに意味を解釈する必要はありません。

コメント

このブログの人気の投稿

統計教育サンプルデータ作成プロジェクト

差がゼロという帰無仮説以外の仮説の下でのp値の計算

対応のある多群間のノンパラメトリックな比較のためのFriedmanの検定後の対比較について