1 ggadd_varsupには変数マップを指定しなければならない

library(tidyverse)
library(GDAtools)
library(ggrepel)
library(showtext)
showtext_auto(TRUE)

2 日本語版「嗜好データ」を読み込む

load("taste_d_J.rda")
.d_J
## # A tibble: 1,253 × 9
##       ID Isup   TV            Film               Art   Eat   Gender Age   Income
##    <int> <fct>  <fct>         <fct>              <fct> <fct> <fct>  <fct> <fct> 
##  1     1 Active TV-メロドラマ 映画-アクション    芸術… 外食… 女性   55-64 £20-29
##  2     2 Active TV-メロドラマ 映画-ホラー        芸術… 外食… 女性   45-54 <£9   
##  3     3 Active TV-自然       映画-アクション    芸術… 外食… 女性   55-64 <£9   
##  4     4 Active TV-メロドラマ 映画-時代劇        芸術… 外食… 女性   65+   £10-19
##  5     5 Active TV-コメディー 映画-ホラー        芸術… 外食… 女性   35-44 £10-19
##  6     6 Active TV-コメディー 映画-ホラー        芸術… 外食… 女性   18-24 <£9   
##  7     7 Active TV-ニュース   映画-アクション    芸術… 外食… 女性   25-34 £10-19
##  8     8 Active TV-ニュース   映画-ドキュメンタ… 芸術… 外食… 男性   65+   £10-19
##  9     9 Active TV-メロドラマ 映画-時代劇        芸術… 外食… 女性   65+   <£9   
## 10    10 Active TV-ニュース   映画-アクション    芸術… 外食… 女性   65+   £10-19
## # ℹ 1,243 more rows

2.1 Isup == “Active” の1215行を切り出す

.d_J %>% filter(Isup=="Active") -> .d0

3 speMCAを実行

3.1 実行後、1,2軸を反転させて、res.speMCAとする

res.speMCA0 <- speMCA(.d0[,3:6])
res.speMCA0 %>% flip.mca(dim = c(1,2)) -> res.speMCA

3.2 追加要素(サプリメンタリ:性別、年齢、収入)を接続する

  • 個体座標(1−3軸)と追加要素を接続したデータを、ind_coord_supとする★
res.speMCA$ind$coord[,1:3] -> coord_ind
cbind(coord_ind[,1:3],.d0[,7:9]) -> ind_coord_sup

4 個体空間と変数空間

4.1 個体マップをpi12として生成

ggcloud_indiv(resmca = res.speMCA,axes = c(1,2),col = "grey") -> pi12

4.2 間違ったplot!

  • ggadd_supvar の p= で個体マップ(pi12)を指定している。
ggadd_supvar(p = pi12,resmca = res.speMCA,var = ind_coord_sup$Gender) + coord_fixed(ratio=1) -> pi12_sup # これは、ggadd_supvarに個体マップpi12を指定しているのでNG!
pi12_sup

4.3 集中楕円は、個体マップの中の平均点を中心に楕円を描画

ここにみるのは、pi12_supの位置のズレ

ggadd_kellipses(p=pi12_sup,resmca = res.speMCA,var = .d0$Gender)

5 個体マップ内の平均点を求める

5.1 個体マップでplotすべき追加変数の平均点を計算する。

ind_coord_sup %>% group_by(Gender) %>% summarize_at(.vars = 1:3,.funs = mean) -> Gender_mean
Gender_mean
## # A tibble: 2 × 4
##   Gender   dim.1  dim.2  dim.3
##   <fct>    <dbl>  <dbl>  <dbl>
## 1 男性   -0.112  -0.158  0.300
## 2 女性    0.0822  0.115 -0.219

5.2 個体マップに、追加変数(Gender)の平均点をplotした

pi12 + geom_point(data=Gender_mean,aes(x=dim.1,y=dim.2)) + 
  geom_text_repel(data = Gender_mean,aes(x=dim.1,y=dim.2,label=Gender,colour=Gender)) -> pi12_supmean#%>% 
#  scale_color_manual(values=c(男性="blue",女性="red")) #-> pi12_supmean #まで文字色を変更できない...2023/09/10

5.3 これは、集中楕円の中心と重さなる

ggadd_kellipses(p=pi12_supmean,resmca = res.speMCA,var = .d0$Gender) + coord_fixed(ratio=1)