Versions

This page shows changes to UCINET between versions. Just scroll down to see release notes in reverse chronological order.
Note: To find revision information for really old versions of UCINET look in these two places:
Related Links
  • To see a list of known bugs and user wish list items, check the fix list
  • To download the latest version, click download

News

  • Week-long workshop on SNA The LINKS Center at the University of Kentucky is offering its annual 1-week summer workshop on social network analysis June 6-10, 2016 on the University of Kentucky campus ...
    Posted Mar 15, 2016, 12:54 PM by Steve Borgatti
Showing posts 1 - 1 of 9. View more »

Version 6.610 | 25 April 2016

posted Apr 25, 2016, 7:34 PM by Steve Borgatti   [ updated Apr 25, 2016, 7:42 PM ]

  • Fixed bug in matrix editor that was causing it to save matrices with more rows and columns than were actually present
  • (Also, a bug was fixed a few versions ago that was causing "argument out of range" errors, but the fix was not previously reported)
 download 

Version 6.609 | 18 Apr 2016

posted Apr 18, 2016, 2:14 PM by Steve Borgatti

  • Made change in Tools|Cluster|Hierarchical Clustering. Now, when the user chooses "Newman community detection", the program symmetrizes the data via the maximum method, and also dichotomizes. 

Version 6.608 | 16 Apr 2016

posted Apr 16, 2016, 7:35 AM by Steve Borgatti   [ updated Apr 16, 2016, 8:04 AM ]

  • Fixed bug in Network|Cohesion|Density|Density by Groups, which was failing to match the attribute dataset with the network dataset when the nodes in the two datasets were in different order. 
 download 

Version 6.607 | 11 Mar 2016

posted Apr 11, 2016, 3:49 PM by Steve Borgatti   [ updated Apr 11, 2016, 4:09 PM ]

  • Fixed bug in CLI's ForFiles command to allow handling files that are not ucinet system files. For example, suppose you want to convert several excel files to ucinet. If the excel files are all named with the same prefix (such as 'team1.xlsx', 'team2.xlsx', etc, you can type:

    ->forfiles team*.xlsx $$ = loadexcel($$)
    ->dsp centrality(team1)

    Previously, UCINET assumed that the files represented by $$ were ucinet files. 
 download 

Version 6.606 | 4 Apr 2016

posted Apr 4, 2016, 4:21 PM by Steve Borgatti   [ updated Apr 4, 2016, 5:28 PM ]

  • Added option to the Regress routine the CLI. Now, you can add YPERM as the last parameter; the program will generate significance using a Y permutation test on the t-statistics. Syntax is ->regress <yvar> <xvar1> <xvar2> ... [yperm]. For example,

    ->regress betweenness(campnet) cols(campattr "gender" "role"), yperm

    Regression statistics for 1

                           Value 
                       --------- 
                  Nobs        18 
              R-Square   0.08894 
          Adj R-square  -0.03254 
                F(0,0)   0.73213 
              Prob > F   0.49730 


    Regression coefficients

                         Coef        SE         T       Sig 
                    --------- --------- --------- --------- 
          Intercept   9.62500  21.48261   0.44804   0.70440 
             Gender  -7.62500  13.39676  -0.56917   0.29040 
               Role  19.37500  16.01219   1.21002   0.13500 


    Note, the results are not very different from the classical significance test (recalling that permutation tests are conducted 1-tailed, so the classical p-values should be halved for comparison):

    ->regress betweenness(campnet) cols(campattr "gender" "role")

    Regression statistics for 1

                           Value 
                       --------- 
                  Nobs        18 
              R-Square   0.08894 
          Adj R-square  -0.03254 
                F(0,0)   0.73213 
              Prob > F   0.49730 


    Regression coefficients

                         Coef        SE         T       Sig 
                    --------- --------- --------- --------- 
          Intercept   9.62500  21.48261   0.44804   0.65978 
             Gender  -7.62500  13.39676  -0.56917   0.57669 
               Role  19.37500  16.01219   1.21002   0.24283 




Version 6.605 | 30 Mar 2016

posted Mar 30, 2016, 6:00 PM by Steve Borgatti

  • Added Johnson's hierarchical clustering routine to the CLI. Given a proximity matrix, it produces a set of nested partitions. Syntax is <outfile> = hiclus(<proximitymat> [WTAVG|min|max|avg] [SIM|dis]) where WTAVG|min|max|avg refer to different methods of clustering: weighted average, minimum (single-link or nearest neighbor), maximum (complete-link or diameter method), and simple average. The default is weighted average. You can also indicate whether the data are similarities (sim) or dissimilarities/distances (dis). The default is similarities. Example:

    ->h = hiclus(cities dis)   //output is a set of nested partitions saved to a file called h
    ->dsp h   

  • Added clique overlap routine to the CLI. Given a network, it computes all cliques larger than a given size, and then computes a node-by-node similarity matrix that records the number of cliques that each pair of nodes has in common (both belong to). The syntax is <outfile> = cliqueoverlap(<adj matrix> [<minsize>]). If omitted, minsize defaults to 3. The function name can be abbreviated as clqovr. Example:

    ->overlaps = clqovr(campnet)
    ->dsp hiclus(overlaps)  //performs Johnson's hierarchical clustering on the clique overlap matrix

  • Added structural equivalence routine to the CLI. Given a network of one or more relations, it computes the degree of structural equivalence between each pair of nodes. The syntax is <outfile> = se(<dataset> [CORR|euc] [RECIP|ignore]). The second parameter selects the measure of structural equivalence: correlation (corr) or euclidean distance (euc). The default is corr. The third parameter selects the method of handling ties between the pair of nodes whose equivalence is being measured. Choose "ignore" to ignore the relationship between the two nodes. Choose "recip" to require that either both send to each other, or neither does. The default is "recip". Example:

    ->padgse = se(padgett ignore) 
    ->dsp padgse
    ->dsp hiclus(padgse)

Version 6.604 | 29 Mar 2016

posted Mar 29, 2016, 6:24 PM by Steve Borgatti   [ updated Mar 31, 2016, 9:05 AM ]

  • Added option in Network|Centrality & Power|Degree routine to normalize degree scores by dividing by max*(n-1) rather than just (n-1), where max is the value of the largest edge weight. 
Added standard node-level OLS regression routine to the CLI. P-values are generated from standard errors in the classical way (not permutations or bootstrapping). Syntax is ->regress <yvar> <xvar1> <xvar2> ... or ->regress <yvar> <xmatrix>. For example:

->bet = betweenness(campnet)
->gender = col(campattr "gender")
->role = col(campattr "role")
->regress bet gender role
or
->regress bet cols(campattr 1 2)  //the x variables are columns 1 and 2 in dataset campattr
Regression statistics for 1

                       Value 
                   --------- 
              Nobs        18 
          R-Square   0.08894 
      Adj R-square  -0.03254 
            F(0,0)   0.73213 
          Prob > F   0.49730 


Regression coefficients

                     Coef        SE         T       Sig 
                --------- --------- --------- --------- 
      Intercept   9.62500  21.48261   0.44804   0.65978 
         GENDER  -7.62500  13.39676  -0.56917   0.57669 
           ROLE  19.37500  16.01219   1.21002   0.24283 
  • Fixed bug in Network|Cohesion|Reciprocity which was causing an error in the calculation of dyad-based reciprocity for networks with self-loops (i.e., values other than zero down the main diagonal)
  • Added Individual Reciprocity routine to the CLI. Given a valued network, it outputs a crosstab for each node showing how often when they send a value (say, 1) to another node, they receive that or some other value back. The syntax is <outfile> = indrecip(<dataset>). Example:

    ->dsp indrecip(campnet)
Matrix: HOLLY
Crosstab of ties sent and received by node

         1  2 
         0  1 
        -- -- 
    1 0 12  2 
    2 1  1  2 

Matrix: BRAZEY
Crosstab of ties sent and received by node

         1  2 
         0  1 
        -- -- 
    1 0 14  0 
    2 1  2  1 
Add facility to enumerate all paths between pairs of nodes to the CLI. This routine is appropriate only very sparse and/or small graphs. Syntax is <outfile> = allpaths(<infile> [maxlength]), where maxlength can be used to limit paths to only those up to a certain length. The default is n-1, where n is the number of nodes. The output is a listing of each path, along with a matrix that counts the number of paths from each node to every other. Example:
->dsp allpaths(campnet)

 .... (much output suppressed)

Paths from 18 to 16

  1: RUSS -> GERY -> STEVE
  2: RUSS -> STEVE
  3: RUSS -> BERT -> LEE -> BRAZEY -> STEVE
  4: RUSS -> BERT -> LEE -> STEVE
  5: RUSS -> BERT -> STEVE

Paths from 18 to 17

  1: RUSS -> GERY -> STEVE -> LEE -> BRAZEY -> BERT
  2: RUSS -> GERY -> STEVE -> LEE -> BERT
  3: RUSS -> GERY -> STEVE -> BERT
  4: RUSS -> STEVE -> LEE -> BRAZEY -> BERT
  5: RUSS -> STEVE -> LEE -> BERT
  6: RUSS -> STEVE -> BERT
  7: RUSS -> BERT



Number of paths between pairs of nodes

                1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18 
              HOL BRA CAR PAM PAT JEN PAU ANN MIC BIL LEE DON JOH HAR GER STE BER RUS 
               LY ZEY  OL         NIE LIN     HAE   L           N  RY   Y  VE   T   S 
                                        E       L                                     
              --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- 
    1   HOLLY   0   0  13   7   9  11  13  10   2   0   0   1   0   2   0   0   0   0 
    2  BRAZEY  50   0 650 350 450 550 650 500  10   0   8  40   0  30  10   9   7  10 
    3   CAROL   9   0   0   9   9  12  11  13  18   0   0   9   0  18   0   0   0   0 
    4     PAM   8   0   8   0   8   6   5   4  16   0   0   8   0  16   0   0   0   0 
    5     PAT   1   0   8   7   0   7  11   8   2   0   0   1   0   2   0   0   0   0 
    6  JENNIE   9   0  11  10   9   0   9   5  18   0   0   9   0  18   0   0   0   0 
    7 PAULINE   6   0   4   9   6  12   0  14  12   0   0   6   0  12   0   0   0   0 
    8     ANN  10   0  10  12  10  11   7   0  20   0   0  10   0  20   0   0   0   0 
    9 MICHAEL   5   0  65  35  45  55  65  50   0   0   0   4   0   3   0   0   0   0 
   10    BILL  15   0 195 105 135 165 195 150   6   0   0   9   0   6   0   0   0   0 
   11     LEE  40   1 520 280 360 440 520 400   8   0   0  32   0  24   8   8   6   8 
   12     DON   5   0  65  35  45  55  65  50   2   0   0   0   0   2   0   0   0   0 
   13    JOHN  16  13 134  79  96 122 131 114  14   0  13  14   0  18   2  10  15   6 
   14   HARRY   5   0  65  35  45  55  65  50   3   0   0   4   0   0   0   0   0   0 
   15    GERY   5   7  65  35  45  55  65  50   1   0   7   4   0   3   0   5   8   5 
   16   STEVE  20   3 260 140 180 220 260 200   4   0   3  16   0  12   4   0   4   4 
   17    BERT  20   4 260 140 180 220 260 200   4   0   4  16   0  12   4   5   0   4 
   18    RUSS   5   6  65  35  45  55  65  50   1   0   6   4   0   3   1   5   7   0 

  • Added k-plex routine to the CLI. Calculates all k-plexes of a graph. Syntax is <outfile> = kplex(<dataset>,[<k>],[<minsize>]), where k is the K of K-plex (default is 2) and minsize is the size of the smallest k-plex to output (default is 3). Output is node-by-kplex indicator matrix. Example:

    ->dsp kplex(campnet 2)



                   1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 
                  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
        1   HOLLY  1  1  1  1  1  1  1  1  1  1  1  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 
        2  BRAZEY  0  0  0  0  0  0  0  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 
        3   CAROL  1  0  0  0  0  0  0  0  0  0  0  0  0  0  1  1  1  1  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 
        4     PAM  0  1  1  1  0  0  0  0  0  0  0  0  0  0  1  1  0  0  0  1  1  1  1  0  0  0  0  0  0  0  0  0  0  0 
        5     PAT  1  0  0  0  1  1  1  1  1  0  0  0  0  0  0  0  1  1  0  1  0  0  0  1  1  0  0  0  0  0  0  0  0  0 
        6  JENNIE  0  1  0  0  1  0  0  0  0  0  0  0  0  0  1  0  1  0  0  1  1  1  0  1  1  0  0  0  0  0  0  0  0  0 
        7 PAULINE  0  0  1  0  0  1  0  0  0  0  0  0  0  0  0  1  0  1  1  0  1  0  1  1  0  0  0  0  0  0  0  0  0  0 
        8     ANN  0  0  0  1  0  0  0  0  0  0  0  0  0  0  0  1  0  0  0  0  0  1  0  0  1  0  0  0  0  0  0  0  0  0 
        9 MICHAEL  0  0  0  0  0  0  1  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  1  1  0  0  0  0  0  0 
       10    BILL  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  1  0  0  0  0  0  0  0  0 
       11     LEE  0  0  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  1  1  0  0  0  0 
       12     DON  0  0  0  0  0  0  0  1  0  1  1  1  0  0  0  0  0  0  0  0  0  0  0  0  0  1  1  0  0  0  0  0  0  0 
       13    JOHN  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  0  0  0  1  0  0  0  0  0  0  0  1  1  1  0 
       14   HARRY  0  0  0  0  0  0  0  0  1  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  1  0  1  0  0  0  0  0  0 
       15    GERY  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  1  1  1  0  1  0  0  1 
       16   STEVE  0  0  0  0  0  0  0  0  0  0  0  0  1  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  1  0  1  0  1 
       17    BERT  0  0  0  0  0  0  0  0  0  0  0  0  1  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  0  0  1  1 
       18    RUSS  0  0  0  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  1  1  1  1  1 

     
 

Version 6.601 | 17 Mar 2016

posted Mar 17, 2016, 3:03 PM by Steve Borgatti   [ updated Mar 17, 2016, 3:11 PM ]

  • Added orbits command to the CLI. This routine computes all possible permutations of the nodes in order to identify automorphisms. It then outputs a partition vector that shows which nodes belong to the same automorphism class (orbit). Note: this routine is only appropriate for very small graphs, on the order of 10 nodes. Running it on a graph of 18 nodes would probably take as long as the universe has been in existence. The syntax is orbits(<network>). It can be used on datasets containing multiple networks. Example: 

    ->dsp orbits(think)
    nperm = 3628800
    nauto = 32
    norbit = 3

    Orbits of the graphs in THINK

            1 
            - 
        1 a 1 
        2 b 2 
        3 c 1 
        4 d 2 
        5 e 3 
        6 f 3 
        7 g 2 
        8 h 1 
        9 i 2 
       10 j 1 


  • Changed Network|Centrality|PN routine to automatically replace missing values with zeros

Version 6.600 | 11 Mar 2016

posted Mar 11, 2016, 7:07 AM by Steve Borgatti

  • Added allpaths command to the CLI. The program enumerates all paths of length k or less between all pairs of points. This is done in text form on the console It also outputs as a new dataset the count of the number of paths all pairs. Syntax is <outdataset> = allpaths(<network> [maxlength=n-1]). For example:
    ->numpaths = allpaths(campnet 5)
    ->dsp numpaths //displays matrix showing number of paths of length 5 or less joining each pair of nodes
  • Added specialty routine SPS (successive pilesorts) that reads a specially formatted text file containing the results of Boster-style successive pilesorting, and outputs a dataset containing the individual proximity matrices implied by the sorts. Syntax is <outdataset> = sps(<textfile.txt>). Example:
    ->indprox = sps(mysorts.txt)
    ->agprox = wavg(indprox row col) //aggregates individual proximity matrices into a single matrix
    The text dataset should look like this:

    Text Box

    t 18 b 7 q 17 l 1 p 20 u 16 m 11 f 2 s 14 i 15 e 4 k 10 o 5 a 19 h 8 d 3 n 13 c 12 r 6 j 9 g
    q 11 i 4 k 10 b 1 s 9 t 8 r 20 j 12 n 3 e 13 o 5 c 16 p 2 u 15 g 17 l 6 m 18 f 7 a 14 d 19 h
    s 7 i 20 r 5 j 19 u 4 a 13 l 6 h 12 q 2 t 11 m 9 g 14 f 1 p 15 o 10 d 16 e 3 n 17 c 8 b 18 k
    j 19 c 12 n 7 e 13 r 3 q 17 g 16 m 15 f 1 k 11 p 18 u 6 o 4 a 14 h 10 i 5 s 8 d 2 b 9 t 20 l
    q 11 o 20 p 7 h 6 k 12 b 2 l 9 u 13 g 8 a 14 t 1 f 15 m 4 r 10 c 19 e 16 j 3 n 17 d 5 s 18 i
    c 12 i 18 g 9 d 19 s 6 j 15 r 8 n 14 e 3 u 17 p 11 a 1 h 10 l 20 q 4 k 13 o 2 b 16 t 5 m 7 f
    p 11 o 6 a 12 h 2 f 9 m 4 s 13 d 1 b 14 k 5 t 17 q 3 u 16 l 15 i 8 r 18 j 7 e 19 g 20 c 10 n
    a 20 u 6 b 2 f 16 h 15 p 14 t 13 e 12 i 11 q 10 l 9 o 8 s 7 d 4 n 19 g 18 r 17 j 5 c 3 k 1 m
    p 20 j 19 d 18 s 17 r 16 g 15 n 10 c 9 e 8 i 5 l 3 o 2 k 1 t 4 u 6 h 7 m 11 f 12 a 13 b 14 q
    o 4 a 19 h 7 p 11 j 17 i 6 d 14 n 5 r 16 c 9 e 13 s 1 k 2 l 3 f 12 b 18 q 8 u 20 g 10 t 15 m
    p 20 q 19 l 18 o 17 t 16 a 15 k 14 g 13 f 12 b 3 u 11 m 4 h 10 d 1 j 9 r 8 i 7 s 2 n 6 e 5 c
    c 13 i 15 j 8 t 3 g 20 n 9 e 14 r 1 m 11 f 2 b 17 q 6 d 18 s 12 a 7 h 4 l 16 k 10 o 5 p 19 u
    g 16 t 15 q 8 m 11 f 5 b 20 k 1 r 9 l 3 s 13 j 2 a 12 h 7 i 19 e 4 o 14 p 10 u 18 d 6 c 


Version 6.599 | 6 March 2016

posted Mar 6, 2016, 10:40 AM by Steve Borgatti   [ updated Mar 11, 2016, 6:54 AM ]

  • Fixed bug in Network|Cohesion|Homophily which was failing when the user's node attribute did not consist of consecutive numbers from 1 to ...
  • Added kplex routine to CLI. Syntax is <outfile> = kplex(<network> <value of K> <min size to output>). For example:
    ->kp = kplex(campnet 2 3) //computes all 2-plexes of 3 members or more
    ->dsp kp
 download 

1-10 of 194