D=Ip('s4.txt') #簡単な例: 4人の成績
## File: s4.txt / Class: data.frame / Rows: 4 / Columns: 3
##
## v1.English v2.Physics v3.Latin
## i1.Ana 9 14 18
## i2.Juan 17 7 11
## i3.Mary 15 13 14
## i4.Ken 5 18 8
Ev=CorrespEv(); Ev #対応分析: E:固有値;R:相関係数; P:寄与率;C:累積寄与率
## E R P C
## 1 0.0898 0.2997 82.9% 82.9%
## 2 0.0186 0.1363 17.1% 100.0%
## 3 0.0000 0.0000 0.0% 100.0%
D=Ip('s4'); gChart() #簡単な例
## File: s4.txt / Class: data.frame / Rows: 4 / Columns: 3
##
## v1.English v2.Physics v3.Latin
## i1.Ana 9 14 18
## i2.Juan 17 7 11
## i3.Mary 15 13 14
## i4.Ken 5 18 8
D0=CorrespDg(d=0); Dt(D0); gChart(D0) #対応分析:対角化(なし)
## Class: matrix, array / Rows: 4 / Columns: 3
##
## v1.English v2.Physics v3.Latin
## i1.Ana 9 14 18
## i2.Juan 17 7 11
## i3.Mary 15 13 14
## i4.Ken 5 18 8
D1=CorrespDg(d=1); Dt(D1); gChart(D1) #対応分析:対角化(行)
## Class: matrix, array / Rows: 4 / Columns: 3
##
## v1.English v2.Physics v3.Latin
## i2.Juan 17 7 11
## i3.Mary 15 13 14
## i4.Ken 5 18 8
## i1.Ana 9 14 18
D2=CorrespDg(d=2); Dt(D2); gChart(D2) #対応分析:対角化(列)
## Class: matrix, array / Rows: 4 / Columns: 3
##
## v3.Latin v1.English v2.Physics
## i1.Ana 18 9 14
## i2.Juan 11 17 7
## i3.Mary 14 15 13
## i4.Ken 8 5 18
D3=CorrespDg(d=3); Dt(D3); gChart(D3) #対応分析:対角化(行/列)
## Class: matrix, array / Rows: 4 / Columns: 3
##
## v2.Physics v3.Latin v1.English
## i4.Ken 18 8 5
## i1.Ana 14 18 9
## i3.Mary 13 14 15
## i2.Juan 7 11 17
D=Ip('s4'); gChart() #簡単な例
## File: s4.txt / Class: data.frame / Rows: 4 / Columns: 3
##
## v1.English v2.Physics v3.Latin
## i1.Ana 9 14 18
## i2.Juan 17 7 11
## i3.Mary 15 13 14
## i4.Ken 5 18 8
gChart(d=1) #対角化(行)
gChart(d=2) #対角化(列)
gChart(d=3) #対角化(行/列)
CorrespSc(s=0) #行スコア
## [,1] [,2]
## i1.Ana -0.3144032 1.5456707
## i2.Juan 1.3345204 -0.6321826
## i3.Mary 0.3594851 -0.1920953
## i4.Ken -1.5779373 -1.0702614
CorrespSc(s=1) #列スコア
## [,1] [,2]
## v1.English 1.25932741 -0.8082233
## v2.Physics -1.20577148 -0.6414825
## v3.Latin 0.09355012 1.3830463
gCorrespBp(M=D,lx=’‘,ly=’‘,s=0,c=’‘,a=T,w=F,f=12,m=1)
M:数値行列,lx,ly:ラベル,s=[0]:変数+個体/s=1:変数/s=2:個体,
c:色指定(例:’V=>blue,..’),a:矢印,w:白黒,m:変数Vの乗数
D=Ip('s4.txt'); Dt() #簡単な例: 4人の成績
## File: s4.txt / Class: data.frame / Rows: 4 / Columns: 3
##
## v1.English v2.Physics v3.Latin
## i1.Ana 9 14 18
## i2.Juan 17 7 11
## i3.Mary 15 13 14
## i4.Ken 5 18 8
## Class: data.frame / Rows: 4 / Columns: 3
##
## v1.English v2.Physics v3.Latin
## i1.Ana 9 14 18
## i2.Juan 17 7 11
## i3.Mary 15 13 14
## i4.Ken 5 18 8
gCorrespBp() #対応分析:バイプロット: 固有値*相関係数(X-Y軸)
gCorrespBp(c='V=>r') #V文字色指定
gCorrespBp(c='V=>b,I=>c') #V,I文字色指定
gCorrespBp(c='V=>b',m=.7) #m:変数Vの乗数=.7
gCorrespBp(c='V=>b',m=.7,a=F) #a=F:矢印なし
gCorrespBp(w=T) #w=T: 白黒
gChart(a=90,f=10)+gCorrespBp(c='V=>b') #行列とバイプロットを比較
D=caith; Dt() #データ:caith (data.frame)
## Class: data.frame / Rows: 4 / Columns: 5
##
## fair red medium dark black
## blue 326 38 241 110 3
## light 688 116 584 188 4
## medium 343 84 909 412 26
## dark 98 48 403 681 85
gChart(lx='Hair',ly='Eye',lg='Frequency')
CorrespEv() # E:固有値;R:相関係数; P:寄与率;C:累積寄与率
## E R P C
## 1 0.1992 0.4464 86.6% 86.6%
## 2 0.0301 0.1735 13.1% 99.6%
## 3 0.0009 0.0293 0.4% 100.0%
## 4 0.0000 0.0000 0.0% 100.0%
Dg=CorrespDg(d=3); Dt(Dg); gChart(Dg) #対応分析:対角化
## Class: matrix, array / Rows: 4 / Columns: 5
##
## fair red medium dark black
## light 688 116 584 188 4
## blue 326 38 241 110 3
## medium 343 84 909 412 26
## dark 98 48 403 681 85
gChart(D,a=90)+gChart(Dg,a=90) #対角化なし+対角化あり
gChart(lx='Hair',ly='Eye',lg='Frequency',a=90,b=20)
gCorrespBp() #バイプロット: 固有値*相関係数(X-Y軸)
gCorrespBp(c='V=>r') #V文字色指定
gCorrespBp(c='V=>b,I=>g') #V,I文字色指定
gCorrespBp(c='V=>blue',a=F) #文字色指定; a=F:矢印なし
gCorrespBp(w=T) #w=T: 白黒
D=Ip('mozi.txt') #簡単なデータ例 文字行列 (df)
## File: mozi.txt / Class: data.frame / Rows: 10 / Columns: 3
##
## A B C
## 1 a1 b1 c2
## 2 a1 b2 c3
## 3 a1 b3 c1
## 4 a1 b1 c3
## 5 a1 b1 c2
## 6 a2 b2 c1
## 7 a2 b2 c3
## 8 a2 b1 c1
## 9 a2 b3 c1
## 10 a2 b2 c2
D=Cross(v=1:3); Dt() #ダミー行列
## Class: data.frame / Rows: 10 / Columns: 8
##
## a1 a2 b1 b2 b3 c1 c2 c3
## 1 1 0 1 0 0 0 1 0
## 2 1 0 0 1 0 0 0 1
## 3 1 0 0 0 1 1 0 0
## 4 1 0 1 0 0 0 0 1
## 5 1 0 1 0 0 0 1 0
## 6 0 1 0 1 0 1 0 0
## 7 0 1 0 1 0 0 0 1
## 8 0 1 1 0 0 1 0 0
## 9 0 1 0 0 1 1 0 0
## 10 0 1 0 1 0 0 1 0
CorrespEv() #E:固有値;R:相関係数; P:寄与率;C:累積寄与率
## E R P C
## 1 0.5992 0.7741 36.0% 36.0%
## 2 0.4782 0.6915 28.7% 64.6%
## 3 0.3333 0.5774 20.0% 84.6%
## 4 0.1885 0.4341 11.3% 96.0%
## 5 0.0675 0.2598 4.0% 100.0%
## 6 0.0000 0.0000 0.0% 100.0%
## 7 0.0000 0.0000 0.0% 100.0%
## 8 0.0000 0.0000 0.0% 100.0%
E=CorrespDg(); E; gChart(E) #分布の対角化
## b3 c1 a2 b2 c3 a1 b1 c2
## 9 1 1 1 0 0 0 0 0
## 6 0 1 1 1 0 0 0 0
## 3 1 1 0 0 0 1 0 0
## 8 0 1 1 0 0 0 1 0
## 7 0 0 1 1 1 0 0 0
## 10 0 0 1 1 0 0 0 1
## 2 0 0 0 1 1 1 0 0
## 4 0 0 0 0 1 1 1 0
## 1 0 0 0 0 0 1 1 1
## 5 0 0 0 0 0 1 1 1
gChart(D,a=90)+gChart(E,a=90) #
gChart(D,a=90,b=10)+gChart(E,a=90,b=10)
gCorrespBp(s=1) #バイプロット(X-Y軸=固有値*相関係数), s=1:変数出力
gCorrespBp(s=1,c='V:a=>r,V:b=>g,V:c=>b') #色指定
gCorrespBp(s=1,c='V:a=>r,V:b=>g,V:c=>b',a=F) #同+a=F:矢印なしF
D=HairEyeColor; Dt() #Hair,Eye,Sex: tb(table)
## Class: table / Rows: 4 / Columns: 4
##
## Hair Eye Sex Freq
## 1 Black Brown Male 32
## 2 Brown Brown Male 53
## 3 Red Brown Male 10
## 4 Blond Brown Male 3
## 5 Black Blue Male 11
## 6 Brown Blue Male 50
## 7 Red Blue Male 10
## 8 Blond Blue Male 30
## 9 Black Hazel Male 10
## 10 Brown Hazel Male 25
D=Cross(v=1:3,n=4,t=T); Dt() #数値行列
## Class: data.frame / Rows: 32 / Columns: 10
##
## Hair.Black Hair.Brown Hair.Red Hair.Blond Eye.Brown Eye.Blue Eye.Hazel
## 1 32 0 0 0 32 0 0
## 2 0 53 0 0 53 0 0
## 3 0 0 10 0 10 0 0
## 4 0 0 0 3 3 0 0
## 5 11 0 0 0 0 11 0
## 6 0 50 0 0 0 50 0
## 7 0 0 10 0 0 10 0
## 8 0 0 0 30 0 30 0
## 9 10 0 0 0 0 0 10
## 10 0 25 0 0 0 0 25
## Eye.Green Sex.Male Sex.Female
## 1 0 32 0
## 2 0 53 0
## 3 0 10 0
## 4 0 3 0
## 5 0 11 0
## 6 0 50 0
## 7 0 10 0
## 8 0 30 0
## 9 0 10 0
## 10 0 25 0
gChart(lx='Hair',ly='Eye',lg='Frequency',a=90,f=8) #a:X軸ラベル角度=90, f:フォントサイズ=8
gChart(lx='Hair',ly='Eye',lg='Frequency',a=90,f=8,d=3) #同+d=3:対角化:行/列
gCorrespBp(s=1) #バイプロット(X-Y軸=固有値*相関係数), s=1:変数出力
gCorrespBp(s=1,c='V:H=>r,V:E=>g,V:S=>b') #同+色指定
gCorrespBp(s=1,c='V:H=>r,V:E=>g,V:S=>b',a=F) #同+a=F:矢印なしF
gChart(f=20,E=D,s=0,lm=’‘,lx=’‘,ly=’‘,lg=’‘,X=’‘,Y=’‘,a=0,b=15,f=12,k=T,t=F,w=F,d=0,c=F,gx=0,gy=0,ar=F,ac=F)\ D:数値行列,s:チャート選択=0/’h’:ヒートチャート,
s=1/‘b’:バブルチャート, s=2/‘bf’:バブルフィルチャート,
s=3/‘s’:スクエアチャート, s=4/‘sf’:スクエアフィルチャート,
lm,lx,ly,lg:ラベル,X,Y:並べ替え,a:X軸ラベル角度,b:バブルサイズ,f:フォントサイズ,
k:数値表示,t:転置,w:白黒,d:対角化=0:なし,1:行,2:列,3:行列,c:連続軸,gx.gy:グループ数(x軸,y軸),
ar:行軸間隔調整(d>0,c=T),ac:列軸間隔調整(d>0,c=T)
D=Ip('santander-m') #データ:santander-m
## File: santander-m.txt / Class: data.frame / Rows: 31 / Columns: 8
##
## H M E1 E2 E3 N1 N2 N3
## ah 11 23 7 6 20 9 18 6
## ay 6 28 3 1 30 5 22 6
## bueno 17 16 10 12 11 13 9 12
## claramente 33 0 0 26 8 28 3 3
## claro 12 22 5 10 18 13 9 12
## directamente 20 13 17 15 2 22 10 2
## efectivamente 12 21 0 8 26 1 7 26
## eh 24 9 10 13 10 15 8 10
## exactamente 28 5 0 19 14 12 5 16
## generalmente 24 9 5 19 9 0 19 15
CorrespEv() #E:固有値;R:相関係数; P:寄与率;C:累積寄与率
## E R P C
## 1 0.1290 0.3591 36.6% 36.6%
## 2 0.0864 0.2940 24.5% 61.1%
## 3 0.0608 0.2465 17.2% 78.4%
## 4 0.0476 0.2182 13.5% 91.9%
## 5 0.0285 0.1688 8.1% 100.0%
## 6 0.0001 0.0101 0.0% 100.0%
## 7 0.0000 0.0070 0.0% 100.0%
## 8 0.0000 0.0000 0.0% 100.0%
gCorrespBp(s=1) #バイプロット: 固有値*相関係数(X-Y軸), s=1:変数のみ出力
gCorrespBp(s=1,c='V:H=>r,V:E=>g,V:S=>b') #列(細分)と行の文字色指定
gChart() #(デフォルト)
gChart(gx=2,gy=3,lg='Frec.',d=1) #gx, gy:クラスターグループ=2,3, lg:凡例,d=1:対角化=行
gChart(gx=2,gy=3,lg='Frec.',d=2) #gx, gy:クラスターグループ=2,3, lg:凡例,d=1:対角化=列
gChart(gx=2,gy=3,lg='Frec.',d=3) #gx, gy:クラスターグループ=2,3, lg:凡例,d=1:対角化=行/列
E=CorrespDg(); E #分布の対角化
## H N1 N3 E1 E3 E2 M N2
## claramente 33 28 3 0 8 26 0 3
## realmente 24 15 15 23 7 3 10 3
## normalmente 28 9 21 8 19 6 6 3
## exactamente 28 12 16 0 14 19 5 5
## simplemente 26 8 15 20 6 6 8 11
## eh 24 15 10 10 10 13 9 8
## directamente 20 22 2 17 2 15 13 10
## oye 25 14 7 3 12 18 8 12
## joder 29 14 1 5 15 14 5 18
## uhum 18 5 26 5 5 23 16 2
## bueno 17 13 12 10 11 12 16 9
## mm 18 10 13 11 9 13 15 11
## hm 10 16 12 10 14 10 23 6
## generalmente 24 0 15 5 9 19 9 19
## sinceramente 21 15 0 8 10 15 13 18
## efectivamente 12 1 26 0 26 8 21 7
## hola 23 11 4 5 3 25 11 19
## claro 12 13 12 5 18 10 22 9
## prácticamente 21 3 8 14 9 11 12 23
## perfectamente 12 6 16 4 24 6 22 12
## muchísimo 7 14 8 7 8 18 27 11
## ah 11 9 6 7 20 6 23 18
## vamos 8 4 8 22 6 6 25 22
## totalmente 13 1 12 9 2 22 20 20
## pff 13 6 3 8 11 15 20 24
## uy 5 14 2 4 18 12 28 18
## vale 10 6 5 7 7 20 23 22
## madre mía 9 2 11 0 16 18 24 20
## ay 6 5 6 3 30 1 28 22
## jolín 0 5 3 3 5 26 33 26
## jo 1 2 0 1 0 32 32 31
gChart(D,a=90,f=8) + gChart(E,a=90,f=8)
gChart(D,d=3,s=1,b=10) #d=3:行/列の対角化, s=1:バブルチャート, b:バブルの大きさ=10
gChart(D,d=3,s=1,b=10,c=T) #同+c=T:連続値
gChart(D,d=3,s=1,b=10,c=T,ar=T,ac=T,m=8) #同+ar,ac:行/列軸調整=T,m:左マージン=8
gChart(D,d=3,s=1,b=10,c=T,ar=T,ac=T,m=8,gx=3,gy=3) #同+gx,gy:行/列グループ=3
—–
(東京大学 上田博人 Hiroto Ueda, Universidad de Tokio, 2022)