Bibliometric matrices

April 27, 2018

bimtest.zip

Example 1

WW ww.jpg

WA wa.jpg WJ wj.jpg

Matrices in R

> nw <- c("p","q","r","s","t","u","v","z")
> na <- c("A","B","C","D","E")
> nj <- c("I","J","K","L")
> wa <- c(
+ 1, 0, 1, 0, 0, 
+ 0, 0, 0, 1, 0, 
+ 0, 0, 0, 0, 1, 
+ 1, 0, 1, 1, 0, 
+ 0, 0, 0, 0, 0, 
+ 0, 1, 0, 0, 0, 
+ 0, 0, 0, 1, 1, 
+ 0, 0, 1, 0, 1 ) 
> 
> wj <- c(
+ 0, 0, 0, 1, 
+ 1, 0, 0, 0, 
+ 1, 0, 0, 0, 
+ 0, 1, 0, 0, 
+ 0, 0, 0, 0, 
+ 0, 0, 0, 1, 
+ 0, 1, 0, 0, 
+ 0, 0, 0, 1 ) 
> 
> ww <- c(
+ 0, 1, 1, 0, 0, 1, 0, 0, 
+ 0, 0, 1, 0, 0, 0, 0, 0, 
+ 0, 0, 0, 0, 0, 0, 0, 0, 
+ 0, 0, 1, 0, 1, 0, 0, 1, 
+ 0, 0, 0, 0, 0, 1, 1, 0, 
+ 0, 0, 0, 0, 0, 0, 0, 0, 
+ 0, 0, 0, 0, 0, 0, 0, 0, 
+ 0, 0, 0, 0, 0, 0, 0, 0 ) 
> WA <- matrix(wa,nrow=8,ncol=5,byrow=TRUE,dimnames=list(nw,na))
> WA
  A B C D E
p 1 0 1 0 0
q 0 0 0 1 0
r 0 0 0 0 1
s 1 0 1 1 0
t 0 0 0 0 0
u 0 1 0 0 0
v 0 0 0 1 1
z 0 0 1 0 1
> WW <- matrix(ww,nrow=8,ncol=8,byrow=TRUE,dimnames=list(nw,nw))
> WW
  p q r s t u v z
p 0 1 1 0 0 1 0 0
q 0 0 1 0 0 0 0 0
r 0 0 0 0 0 0 0 0
s 0 0 1 0 1 0 0 1
t 0 0 0 0 0 1 1 0
u 0 0 0 0 0 0 0 0
v 0 0 0 0 0 0 0 0
z 0 0 0 0 0 0 0 0
> WJ <- matrix(wj,nrow=8,ncol=4,byrow=TRUE,dimnames=list(nw,nj))
> WJ
  I J K L
p 0 0 0 1
q 1 0 0 0
r 1 0 0 0
s 0 1 0 0
t 0 0 0 0
u 0 0 0 1
v 0 1 0 0
z 0 0 0 1
> 
> sum(WW)
[1] 9
> sum(WA)
[1] 12
> sum(WJ)
[1] 7

Normalizations

> nWW <- diag(1/pmax(1,rowSums(WW))) %*% WW
> rownames(nWW) <- nw
> nWW
  p         q         r s         t         u   v         z
p 0 0.3333333 0.3333333 0 0.0000000 0.3333333 0.0 0.0000000
q 0 0.0000000 1.0000000 0 0.0000000 0.0000000 0.0 0.0000000
r 0 0.0000000 0.0000000 0 0.0000000 0.0000000 0.0 0.0000000
s 0 0.0000000 0.3333333 0 0.3333333 0.0000000 0.0 0.3333333
t 0 0.0000000 0.0000000 0 0.0000000 0.5000000 0.5 0.0000000
u 0 0.0000000 0.0000000 0 0.0000000 0.0000000 0.0 0.0000000
v 0 0.0000000 0.0000000 0 0.0000000 0.0000000 0.0 0.0000000
z 0 0.0000000 0.0000000 0 0.0000000 0.0000000 0.0 0.0000000
> nWA <- diag(1/pmax(1,rowSums(WA))) %*% WA
> rownames(nWA) <- nw
> nWA
          A B         C         D   E
p 0.5000000 0 0.5000000 0.0000000 0.0
q 0.0000000 0 0.0000000 1.0000000 0.0
r 0.0000000 0 0.0000000 0.0000000 1.0
s 0.3333333 0 0.3333333 0.3333333 0.0
t 0.0000000 0 0.0000000 0.0000000 0.0
u 0.0000000 1 0.0000000 0.0000000 0.0
v 0.0000000 0 0.0000000 0.5000000 0.5
z 0.0000000 0 0.5000000 0.0000000 0.5
> nWJ <- diag(1/pmax(1,rowSums(WJ))) %*% WJ
> rownames(nWJ) <- nw
> nWJ
  I J K L
p 0 0 0 1
q 1 0 0 0
r 1 0 0 0
s 0 1 0 0
t 0 0 0 0
u 0 0 0 1
v 0 1 0 0
z 0 0 0 1
> setwd("C:/Users/batagelj/work/Python/WoS/BM/test2")
> save("na","nj","nw","nWA","nWJ","nWW","WA","WJ","WW",file="test.Rdata",ascii=TRUE)

AWWA

> M <- matrix(0,nrow=26,ncol=26)
> M[1:5,6:13] <- t(WA)
> M[6:13,14:21] <- WW
> M[14:21,22:26] <- WA
> nam <- c(paste(na,"1",sep=""),paste(nw,"1",sep=""),paste(nw,"2",sep=""),paste(na,"2",sep=""))
> rownames(M) <- nam; colnames(M) <- nam
> M
   A1 B1 C1 D1 E1 p1 q1 r1 s1 t1 u1 v1 z1 p2 q2 r2 s2 t2 u2 v2 z2 A2 B2 C2 D2 E2
A1  0  0  0  0  0  1  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
B1  0  0  0  0  0  0  0  0  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
C1  0  0  0  0  0  1  0  0  1  0  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0
D1  0  0  0  0  0  0  1  0  1  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0
E1  0  0  0  0  0  0  0  1  0  0  0  1  1  0  0  0  0  0  0  0  0  0  0  0  0  0
p1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  1  0  0  1  0  0  0  0  0  0  0
q1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  0  0  0  0  0  0  0  0  0  0
r1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
s1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  0  1  0  0  1  0  0  0  0  0
t1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  1  0  0  0  0  0  0
u1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
v1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
z1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
p2  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  0  1  0  0
q2  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  0
r2  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1
s2  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  0  1  1  0
t2  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
u2  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  0  0  0
v2  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  1
z2  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  0  1
A2  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
B2  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
C2  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
D2  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
E2  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

AWWA awwa.jpg

Variants

AW*WW*WA

> AA1 <- t(WA) %*% WW %*% WA
> AA1
  A B C D E
A 0 1 1 1 3
B 0 0 0 0 0
C 0 1 1 1 3
D 0 0 1 0 3
E 0 0 0 0 0
> rowSums(AA1)
A B C D E 
6 0 6 4 0 
> colSums(AA1)
A B C D E 
0 2 3 2 9 
> sum(AA1)
[1] 16

nAW*WW*nWA

> AAn <- t(nWA) %*% WW %*% nWA
> AAn
  A   B         C   D   E
A 0 0.5 0.1666667 0.5 1.0
B 0 0.0 0.0000000 0.0 0.0
C 0 0.5 0.1666667 0.5 1.0
D 0 0.0 0.1666667 0.0 1.5
E 0 0.0 0.0000000 0.0 0.0
> rowSums(AAn)
       A        B        C        D        E 
2.166667 0.000000 2.166667 1.666667 0.000000 
> sum(AAn)
[1] 6
> sWA <- rowSums(WA)
> sWA
p q r s t u v z 
2 1 1 3 0 1 2 2  
> colSums(AAn)
  A   B   C   D   E 
0.0 1.0 0.5 1.0 3.5 
> wai <- which(sWA > 0)
> wai
p q r s u v z 
1 2 3 4 6 7 8 
> sum(WW[wai,wai])
[1] 6

nAW*nWW*nWA

> AAN <- t(nWA) %*% nWW %*% nWA
> AAN
  A         B          C         D         E
A 0 0.1666667 0.05555556 0.1666667 0.3333333
B 0 0.0000000 0.00000000 0.0000000 0.0000000
C 0 0.1666667 0.05555556 0.1666667 0.3333333
D 0 0.0000000 0.05555556 0.0000000 1.1666667
E 0 0.0000000 0.00000000 0.0000000 0.0000000
> rowSums(AAN)
        A         B         C         D         E 
0.7222222 0.0000000 0.7222222 1.2222222 0.0000000 
> colSums(AAN)
        A         B         C         D         E 
0.0000000 0.3333333 0.1666667 0.3333333 1.8333333 
> sum(AAN)
[1] 2.666667
> sum(nWW[wai,wai])
[1] 2.666667

AW*nWW*WA

> AA2 <- t(WA) %*% nWW %*% WA
> AA2
  A         B         C         D        E
A 0 0.3333333 0.3333333 0.3333333 1.000000
B 0 0.0000000 0.0000000 0.0000000 0.000000
C 0 0.3333333 0.3333333 0.3333333 1.000000
D 0 0.0000000 0.3333333 0.0000000 1.666667
E 0 0.0000000 0.0000000 0.0000000 0.000000
> rowSums(AA2)
A B C D E 
2 0 2 2 0 
> sum(AA2)
[1] 6

nAW*nWW*WA

> AA3 <- t(nWA) %*% nWW %*% WA
> AA3
  A         B         C         D         E
A 0 0.1666667 0.1111111 0.1666667 0.3888889
B 0 0.0000000 0.0000000 0.0000000 0.0000000
C 0 0.1666667 0.1111111 0.1666667 0.3888889
D 0 0.0000000 0.1111111 0.0000000 1.2222222
E 0 0.0000000 0.0000000 0.0000000 0.0000000
> rowSums(AA3)
        A         B         C         D         E 
0.8333333 0.0000000 0.8333333 1.3333333 0.0000000 
> colSums(AA3)
        A         B         C         D         E 
0.0000000 0.3333333 0.3333333 0.3333333 2.0000000 
> sum(AA3)
[1] 3

AW*nWW*nWA

> AA4 <- t(WA) %*% nWW %*% nWA
> AA4
  A         B         C         D         E
A 0 0.3333333 0.1666667 0.3333333 0.8333333
B 0 0.0000000 0.0000000 0.0000000 0.0000000
C 0 0.3333333 0.1666667 0.3333333 0.8333333
D 0 0.0000000 0.1666667 0.0000000 1.5000000
E 0 0.0000000 0.0000000 0.0000000 0.0000000
> rowSums(AA4)
       A        B        C        D        E 
1.666667 0.000000 1.666667 1.666667 0.000000 
> colSums(AA4)
        A         B         C         D         E 
0.0000000 0.6666667 0.5000000 0.6666667 3.1666667 
> sum(AA4)
[1] 5

Example 2

We add the arc (t,C) to WA.

WA2 wa2.jpg

AWWA2 awwa2.jpg

> WA2 <- WA
> WA2[5,3] <- 1
> WA2
  A B C D E
p 1 0 1 0 0
q 0 0 0 1 0
r 0 0 0 0 1
s 1 0 1 1 0
t 0 0 1 0 0
u 0 1 0 0 0
v 0 0 0 1 1
z 0 0 1 0 1
> nWA2 <- diag(1/pmax(1,rowSums(WA2))) %*% WA2
> nWA2
             A B         C         D   E
[1,] 0.5000000 0 0.5000000 0.0000000 0.0
[2,] 0.0000000 0 0.0000000 1.0000000 0.0
[3,] 0.0000000 0 0.0000000 0.0000000 1.0
[4,] 0.3333333 0 0.3333333 0.3333333 0.0
[5,] 0.0000000 0 1.0000000 0.0000000 0.0
[6,] 0.0000000 1 0.0000000 0.0000000 0.0
[7,] 0.0000000 0 0.0000000 0.5000000 0.5
[8,] 0.0000000 0 0.5000000 0.0000000 0.5
> save("na","nj","nw","nWA","nWJ","nWW","WA","WJ","WW","WA2","nWA2",file="test.Rdata",ascii=TRUE)

AW2*WW*WA2

> AA1b <- t(WA2) %*% WW %*% WA2
> AA1b
  A B C D E
A 0 1 2 1 3
B 0 0 0 0 0
C 0 2 2 2 4
D 0 0 2 0 3
E 0 0 0 0 0
> rowSums(AA1b)
 A  B  C  D  E 
 7  0 10  5  0 
> colSums(AA1b)
 A  B  C  D  E 
 0  3  6  3 10 
> sum(AA1b)
[1] 22

nAW2*WW*nWA2

> AAnb <- t(nWA2) %*% WW %*% nWA2
> AAnb
  A   B   C   D   E
A 0 0.5 0.5 0.5 1.0
B 0 0.0 0.0 0.0 0.0
C 0 1.5 0.5 1.0 1.5
D 0 0.0 0.5 0.0 1.5
E 0 0.0 0.0 0.0 0.0
> rowSums(AAnb)
  A   B   C   D   E 
2.5 0.0 4.5 2.0 0.0 
> sum(AAnb)
[1] 9
> sWAb <- rowSums(WA2)
> sWAb
p q r s t u v z 
2 1 1 3 1 1 2 2 
> colSums(AAnb)
  A   B   C   D   E 
0.0 2.0 1.5 1.5 4.0 

nAW2*nWW*nWA2

> AANb <- t(nWA2) %*% nWW %*% nWA2
> AANb
  A         B         C         D         E
A 0 0.1666667 0.1666667 0.1666667 0.3333333
B 0 0.0000000 0.0000000 0.0000000 0.0000000
C 0 0.6666667 0.1666667 0.4166667 0.5833333
D 0 0.0000000 0.1666667 0.0000000 1.1666667
E 0 0.0000000 0.0000000 0.0000000 0.0000000
> rowSums(AANb)
        A         B         C         D         E 
0.8333333 0.0000000 1.8333333 1.3333333 0.0000000 
> colSums(AANb)
        A         B         C         D         E 
0.0000000 0.8333333 0.5000000 0.5833333 2.0833333 
> sum(AANb)
[1] 4
notes/net/bima.txt · Last modified: 2018/04/29 14:48 by vlado
 
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki