gcor                   package:sna                   R Documentation

_F_i_n_d _t_h_e (_P_r_o_d_u_c_t-_M_o_m_e_n_t) _C_o_r_r_e_l_a_t_i_o_n _B_e_t_w_e_e_n _T_w_o _o_r _M_o_r_e _L_a_b_e_l_e_d _G_r_a_p_h_s

_D_e_s_c_r_i_p_t_i_o_n:

     'gcor' finds the product-moment correlation between the adjacency
     matrices of graphs indicated by 'g1' and 'g2' in stack 'dat' (or
     possibly 'dat2').  Missing values are permitted.

_U_s_a_g_e:

     gcor(dat, dat2=NULL, g1=c(1:dim(dat)[1]), g2=c(1:dim(dat)[1]), 
         diag=FALSE, mode="digraph")

_A_r_g_u_m_e_n_t_s:

     dat: A graph stack 

    dat2: Optionally, a second graph stack 

      g1: The indices of 'dat' reflecting the first set of graphs to be
          compared; by default, all members of 'dat' are included 

      g2: The indices or 'dat' (or 'dat2', if applicable) reflecting
          the second set of graphs to be compared; by default, all
          members of 'dat' are included 

    diag: Boolean indicating whether or not the diagonal should be
          treated as valid data.  Set this true if and only if the data
          can contain loops.  'diag' is 'FALSE' by default. 

    mode: String indicating the type of graph being evaluated. 
          "Digraph" indicates that edges should be interpreted as
          directed; "graph" indicates that edges are undirected. 
          'mode' is set to "digraph" by default. 

_D_e_t_a_i_l_s:

     The (product moment) graph correlation between labeled graphs G
     and H is given by 

              cor(G,H) = cov(G,V)/sqrt(cov(G,G)cov(H,H))

     where the graph covariance is defined as

  cov(G,H) = sum( (A^G_ij-mu_G)(A^H_ij-mu_H), {i,j} )/Choose(|V|,2)

     (with A^G being the adjacency matrix of G).  The graph
     correlation/covariance is at the center of a number of graph
     comparison methods, including network variants of regression
     analysis, PCA, CCA, and the like.

     Note that 'gcor' computes only the correlation between _uniquely
     labeled_ graphs.  For the more general case, 'gscor' is
     recommended.

_V_a_l_u_e:

     A graph correlation matrix

_N_o_t_e:

     The 'gcor' routine is really just a front-end to the standard
     'cor' method; the primary value-added is the transparent
     vectorization of the input graphs (with intelligent handling of
     simple versus directed graphs, diagonals, etc.).  As noted, the
     correlation coefficient returned is a standard Pearson's
     product-moment coefficient, and output should be interpreted
     accordingly.  Classical null hypothesis testing procedures are not
     recommended for use with graph correlations; for nonparametric
     null hypothesis testing regarding graph correlations, see
     'cugtest' and 'qaptest'.  For multivariate correlations among
     graph sets, try 'netcancor'.

_A_u_t_h_o_r(_s):

     Carter T. Butts buttsc@uci.edu

_R_e_f_e_r_e_n_c_e_s:

     Butts, C.T., and Carley, K.M.  (2001).  ``Multivariate Methods for
     Interstructural Analysis.''  CASOS Working Paper, Carnegie Mellon
     University.

     Krackhardt, D.  (1987).  ``QAP Partialling as a Test of
     Spuriousness.''  _Social Networks_, 9, 171-86

_S_e_e _A_l_s_o:

     'gscor', 'gcov', 'gscov'

_E_x_a_m_p_l_e_s:

     #Generate two random graphs each of low, medium, and high density
     g<-rgraph(10,6,tprob=c(0.2,0.2,0.5,0.5,0.8,0.8))

     #Examine the correlation matrix
     gcor(g)

