日々の記録簿

日々のできごとの記録

日記

FactoMineRからベンゼクリの修正割合(Benzecri’s modified rates)を計算する

投稿日:2018-04-05 更新日:

最近、多重対応分析(Multiple Correspondence Analysis)を勉強していた。RではFactoMineRのMCA関数がいい感じである。

ただ、ベンゼクリの修正割合を計算できるというmodif.rate関数(GDAtools)がMCA関数には使えなかったので、その原因を探ってみた。

結論から言うと、modif.rate関数はspeMCA関数(GDAtools)には対応しているが、FactoMineRのMCA関数には対応していないようである。

ということでMCA関数用に修正してみた
(※2018年4月19日追記:途中のQの算出方法を間違っていたので訂正した)。

ModifRate <- function(mca){
  Q <- length(mca$call$quali)
  seuil <- 1 / Q
  e <- mca$eig[, 1][mca$eig[, 1] >= seuil]
  pseudo <- (Q / (Q - 1) * (e - seuil)) ^ 2
  mrate <- round(pseudo / sum(pseudo), 3)
  cum.mrate <- cumsum(mrate)
  return(data.frame(mrate, cum.mrate))
}

使い方。例はFactoMineRを流用している。

library(FactoMineR)

data(tea)
mca <- MCA(tea, quanti.sup = 19, quali.sup = 20:36, graph = FALSE)

ModifRate(mca)

ベンゼクリの修正割合については、次の本のp.39に計算式が載っている。これ一冊で多重対応分析がさくっと勉強できる良書。

なお、いくつか多重対応分析を利用している研究を調べてみたが、Benzecri’s modified ratesの邦訳については、「ベンゼクリの修正割合」だったり、「修正比率」だったり、「Benzecriの修正」だったりと、いまいち安定していないようである。

スポンサーリンク

スポンサーリンク

-日記

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

PISA2000から2012までのデータをダウンロードし、csvに変換するPisaDataToCsvを作成した!

タイトルで終わっていますが、pythonの勉強を兼ねて、以前に公開していたスクリプトを修正しました。いろいろ寄り道した分、以前よりはわかりやすいコードになっていると思います。 Python 3が動作す …

systemdを245にアップデートすると、netctlが動かない?

焦ったけど、バグレポートが出ていた上に、末尾に修正方法が書いてあった。 sudo netctl reenable <your-profile-name> を実行すればok。ログを見ると、s …

“rstanarm”や”brms”のインストールが、”PKI”がインストールできないために失敗する

タイトルどおり。rstanarmやbrmsをインストールしようと思ったのだが、PKIがインストールできなくて失敗した。 環境はArch Linuxで、Rのバージョンは3.4。 すこし調べてみたところ、 …

Thinkpad X250を購入した!

物欲に負けて、Thinkpad X250を購入してしまいました・・・。 さっそく、Linuxをインストールしたのですが、いくつか設定が必要なことがあったので、そのメモです。 トラックポイント/タッチパ …

Lenovoのドッキングステーションは何台のディスプレイに出力できるのか?

Lenovoのドッキングステーションを使って、マルチディスプレイ環境を構築するときに気になるのが、同時に何台のディスプレイに出力できるのかという点。2020年現在の情報は、こちらのLenovoのサイト …