固有値

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: 白黒

多重対応分析: 文字行列.<2>次元

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

多重対応分析: 文字行列.<3>次元

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

—–

参考 Referencia

トップページ Portada

(東京大学 上田博人 Hiroto Ueda, Universidad de Tokio, 2022)