library(tidyverse)
library(GDAtools)
library(showtext)
showtext_auto(TRUE)
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
.d_J %>% filter(Isup=="Active") -> .d0
res.speMCA <- speMCA(.d0[,3:6])
res.speMCA$ind$coord -> coord_ind
cbind(coord_ind[,1:3],.d0[,7:9]) -> ind_coord_sup
ind_coord_sup %>% as_tibble() %>% group_by(Gender) %>% summarize_at(.vars = 1:3,.funs = mean) -> Gender_mean # sup=Genderの平均点座標/個体空間
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
ind_coord_sup %>% as_tibble() %>% group_by(Gender) %>% count(Gender) -> Gender_wait
Gender_wait
## # A tibble: 2 × 2
## # Groups: Gender [2]
## Gender n
## <fct> <int>
## 1 男性 513
## 2 女性 702
ind_coord_sup %>% as_tibble() %>% summarize_at(.vars = 1:3,.funs = mean) # これはゼロとうこと。
## # A tibble: 1 × 3
## dim.1 dim.2 dim.3
## <dbl> <dbl> <dbl>
## 1 2.13e-16 1.14e-16 -1.08e-16
ind_coord_sup %>% as_tibble() %>% left_join(Gender_mean,by = "Gender") %>%
mutate(d1_2=(dim.1.x - dim.1.y)^2,d2_2=(dim.2.x - dim.2.y)^2,d3_2=(dim.3.x - dim.3.y)^2,) %>%
select(4,10:12) %>% group_by(Gender) %>%
summarize_at(.vars = 1:3,.funs = sum) %>% left_join(Gender_wait,by="Gender") %>% mutate(var1=d1_2/n,var2=d2_2/n,var3=d3_2/n) %>% select(-c(2:4)) -> dim_var
dim_var
## # A tibble: 2 × 5
## Gender n var1 var2 var3
## <fct> <int> <dbl> <dbl> <dbl>
## 1 男性 513 0.292 0.253 0.257
## 2 女性 702 0.464 0.392 0.261
性別ごとの軸内分散の加重平均
dim_var %>% summarise(within_1 = weighted.mean(x=var1,w=n),within_2 = weighted.mean(x=var2,w=n),within_3 = weighted.mean(x=var3,w=n))
## # A tibble: 1 × 3
## within_1 within_2 within_3
## <dbl> <dbl> <dbl>
## 1 0.391 0.333 0.259
ind_coord_sup %>% as_tibble() %>% group_by(Gender) %>% summarize_at(.vars = 1:3,.funs = mean) %>% left_join(Gender_wait,by="Gender") %>%
mutate(Gdim.1 = (dim.1^2),Gdim.2 = (dim.2^2),Gdim.3 = (dim.3^2)) %>%
summarize(between1=(weighted.mean(x=Gdim.1,w=n)),between2=(weighted.mean(x=Gdim.2,w=n)),between3=(weighted.mean(x=Gdim.3,w=n))) -> Vbetween_gender
Vbetween_gender
## # A tibble: 1 × 3
## between1 between2 between3
## <dbl> <dbl> <dbl>
## 1 0.00924 0.0182 0.0657
この値がおおきければ、そこんは差異がある。
res.speMCA$eig$eigen[1:3] -> eig1_3
Vbetween_gender %>% as.matrix() %*% diag(1/eig1_3)
## [,1] [,2] [,3]
## [1,] 0.02307637 0.05178419 0.2020366