在ucinet6数据组中有三件重要的事需要记住。
第一,数据是矩阵的集合。不管你把你的数据理解为图像,关系、超图还是其他的,在ucinet6中,你的数据就是矩阵集合。这并不是意味着ucinet不能读取不是矩阵格式的数据,而是说在程序系统中,他们都是被看作为矩阵的。网络分析人员一般把他们的数据理解为图,图就是一系列的节点和一系列连接这些点的线。图的信息可以用邻接矩阵表示,在邻接矩阵中给定元素X(i,j)的值为1代表节点i和j是连接着的,0代表这两者不是连接着的。
以下是用矩阵代表网络的一个示例:
在这个网络中,参与者A和参与者B,D和E有联系,但和C以及他自己没有联系。参与者B和参与者A,C有联系,参与者C和参与者B,E有联系,参与者D只和A有联系,参与者E和参与者A,C有联系。
有向图是一系列点和连接这些点的圆弧(或者是箭头、有头尾的线)的集合。他们被用来表示节点间的不必是相互的关系,比如“爱上”或者“是……的老板”。有向图中的信息可以被记录为单模邻接矩阵(并不必须是对称的),在其中,如果i被连接到j则X(i,j)=1,否则X(i,j)=0.注意X(i,j)可以等于X(j,i),但这不是必须得。
赋值图可以用一个长方形单模矩阵表示,在其中X(i,j)给出了从i到j的连接的值,可以代表关系的强度,道路的长度,状态转换的可能性,联系的频繁性等。
超图是一系列节点的子集的集合。子集在概念上就像可能有两个末端的边界/连接。在超图可以用2模矩阵表示,在其中,假如i在子网j中,则Y(i,j)=1,否则Y(i,j)=0.。Ucinet中包含的矩阵可以有任何形状或者尺寸,而且并非都代表网络。比如,以下三个数字集合就都是矩阵。
Matrix#1: 1 3 2 5 1 5 7 2 1 2 7 2 2 4 5 2 9 6 5 1 Matrix#2: 1 3 8 9 2 3 5 1.7 Matrix#3: 3.1415
注意第二个矩阵有8列1行。第3个矩阵是1行1列。古怪的形状并不是问题。重要的是每一行包括了同样数目的列数,反之亦然。
Ucinet数据表的一个重要特征是他们可能包括了一个以上的矩阵,虽然每个矩阵的行列必然反映同一个物体。这使得你可以把一系列有关的网络数据放在同一个文件中。比如,你可能有一系列的家庭作为节点,并如此度量家庭间的关系:“嫁给了……中的一人”和“与……中的一人做生意”。这对于应用有一个或多个社会关系作为输入的网络技术非有用,比如大部分的位置方法(positionalmethods),(比如CONCOR,REGE).甚至把多种关系应用在没有多种关系的技术里面也会很有用,比如中心法(centralitymeasures)。在ucinet中,无论什么时候有可能,一个引入使用多关系
无效的技术的程序会基于每种关系挨个运行。比如在包含数百个随机网络的数据组中运行中心法时,程序会为文件中的每个网络计算和保存方法。结果可用于统计分析。
使用多矩阵数据组的另一种方法被引入到Tools>MatrixAlgebra(矩阵代数学)程序中。在此,程序把多矩阵数据组视为单个由行列级组成的3路矩阵,并允许用户同时在三个维度运行操作。
第二件重要的事情是理解ucinet数据组并不是文本文件。因此你不能使用文字处理软件来修改。只有ucinet(以及其他来自于AnalyticTechnologies的软件)可以读写他们。这会有所不便,但是这可以提升性能。当然,ucinet也提供了把文本文件转换为ucinet数据组的方法(参见Import命令),反之亦然(参见Export)。在这个方面ucinet和SYSTAT,SAS,SPSS,GRADAP以及其他致命的分析软件想象。
第三件重要的事是单个ucinet数据组实际上由两个文件组成。一个(后缀名为.##D)包括了实际数据,另一个(后缀名.##H)包含了数据的信息。当参考ucinet数据组的时候,你只能参考##H文件(或者同时只是忽略后缀名)。你应该正确使用文件名:像“sampson”或“sampson.##h”。文件名中可以包括空格,可以数字符号打头。然而,有时候你需要使用括号扩住有空格的文件名。UCINETIV 数据组在ucinet6.0中兼容并且无需转换。
在使用ucinet做任何分析之前,必须先创建ucinet数据组。典型地,网络数据从问卷调查中或者书籍和采访中的数据表中来。在这两种情况下材料载体是纸张,你需要将对应数据输入到计算机文件中。最好最通用的方法是使用文件编辑器或者你喜欢的文字处理软件把数据保存为ASCII文件。
在本章中将会介绍输入数据的几种格式。一旦数据保存在了计算机磁盘中,你可以使用Data>Import/Export>Import命令来将这些数据装换为ucinet6.0的数据组。使用过SYSTAT等统计软件的用户对这一部肯定不陌生。在SYSTAT中,你可以使用DATA命令来读取ASCII文件、创建SYSTAT系统文件,读取SPSS和SAS程序文件,虽然他们不需要像SYSTAT和UCINET6.0一样需要永久的系统文件。
Import可以处理许多格式的ASCII数据。最普遍RAW,DL,EXCEL和UCINET3.0(ucinet6.0和UCINETIV 使用相同的数据格式所以不需要导入)。RAW文件只包含数字,比如一个由问题答案数字编码组成的变量矩阵。DL文件包括了和RAW一样的文件,另外还包括了数据的信息,比如行列的数目,变量的名字,研究的名字,以及其他。Ucinet3文件与DL文件相似,但是在数据信息方面有更多的限制。EXCEL则是标准的EXCEL数据表文件,这些文件格式将会在下面的部分详细讨论。
如果你通过抓取输入数据,我们强烈建议你是用DL格式(你可以在任何时候通过Export把数据输出为其他格式。)这种格式在接受数据方面是最可靠的。
无论你导入的文件格式是怎样的,输出总是一样的:即一个可以被应用于任何数值程序输入的ucinet6.0数据组。但是,必须注意,在保存数据方面你只有几种选择:Byte(字节),Smallint(短整型),和Real(实数). 当从ASCII文件中导入数据时,可以选择三种之一。除非你有很大的数据量,否则默认的Real(实数)应该是最好的选择。
Real(实数)数据格式是最强大的,可以包括从-1E36t到+1E36当中的值,他们也能包含缺失值,这些值在内部被存为1E38.,Real型的缺点是每个值需要4个字节存储,这会使得文件偏大,比如,一个150*150的矩阵需要176kb的磁盘空间(译者说,现在看来好小)。
Smallint(短整型)的每个值需要两个字节的存储空间,但只能代表从-32000到+32000之间的数,不允许缺失值。
Byte(比特)型是最节省的,每个值只需要1个字节,可以表示0到255之间的数,没有缺失值。
如果你需要缺失值,则必须使用Real型,当然,大部分网络分析技术不允许缺失值,只有少数ucinet子程序知道如何处理他们,不支持缺失值的程序自动把其转化为0或者其他合理值。
在选择数据型的时候,了解选型对存储空间的影响很重要,但是这对程序处理时所需要的内存空间并没有影响。不管数据时如何存储在磁盘中的,类似于MIDS之类的用来处理Real型数值的程序都是将其看做Real型。类似的,像Clique之类只处理整数的程序会在读入内存中时自动将Real型的数据转换为整数。关于缺失值需要注意一点:所有的大于1E37的值都被认为是缺失值,包括在ASCII数据文件中的非数字符号,比如,以下的矩阵中存在3个缺失值(1E38/na/a3??):
0 9.7 1E38 . 16. 0 3.1 na 18.1 1e9 0 -1.2 a3 12 .013 0
与SYSTAT不同,ucinet6.0把一个单独的句号(loneperiod)看做0,而不是缺失,如果你要导入包含了缺失值的SYSTAT数据,你应该用文本编辑器改变所有的单独句号,比如使用'NA'.
0 1 1 0 1 0 1 1 1 1 0 0 0 1 0 0
程序通过读取第一行有几个数来确定有几列,通过计数来确定有多少行。虽然这种文件很方便,但我们并不推荐使用,一个原因是电脑不会检查数据。如果第一行正好丢失了一个数字,程序就读不懂这个文件了,程序会认定该文件中的矩阵列数比实际列数少1,另一个原因是在数据文件中你不能把矩阵中的一行的数据扩散为多个记录。而且,你没法使用标签来辨别节点。
dl n=4format=fullmatrix data: 0 1 1 0 1 0 1 1 1 1 0 0 0 1 0 0
关键词“dl”说明这是DL文件类型,必须是文件的第一个词。“n=4”意即矩阵是4行4列,等号也可以换为空格或者逗号,形如"n=4","n 4","n,4"。"format=fullmatrix" 说明数据是以一个普通的矩阵格式输入的(这个值还可以使linkedlist,lowerhalfmatrix等)。因为默认的就是fullmatrix,所以这一短句可以省略。
“data”已经没有其他关于数据的信息了,以下的就是数据。关键词的顺序是很重要的,如果是"dl data: n=4",整个过程就毁了。虽然我们加入了一些其他关键词,但是我们始终要保证dl放在第一位,然后是与矩阵维度有关的关键句,然后是其他关键词句,最后是"data"。
标点的注意事项:一般情况下,冒号表示后面有内容,比如数据集合或者标签集合。
分号或者回车表示短句的结束。
每个数据值之间必须用一个以上的空格或者回车符号间隔开。所有的非数字值,除了单独的句号‘.’(loneperiods),都被认为是缺失值。数据格式中行列不需要相等,只要所有的值按从左到右,从上到下的顺序排列就行,示例如下:
dl n=4 data: 0 1 1 0 1 0 1 1 1 1 0 0 0 1 0 0
dl nr=6,nc=4 data: 0 1 1 0 1 0 1 1 1 1 0 0 0 1 0 0 1 0 1 1 1 1 0 0
dl n=4 labels: Sanders,Skvoretz,S.Smith,T.Smith data: 0 1 1 0 1 0 1 1 1 1 0 0 0 1 0 0
"lable"这个词之后必须跟有冒号。
标签可以被分开为行标和列标,事实上,当矩阵不是方形的时候这是必须的,比如:
dl nr=6,nc=4 col labels: hook,canyon,silence,rosencrantz data: 0 1 1 0 1 0 1 1 1 1 0 0 0 1 0 0 1 0 1 1 1 1 0 0
dl nr=6,nc=4 row label sembedded col label sembedded data: Dian Norm Coach Sam Mon 0 1 1 0 Tue 1 0 1 1 Wed 1 1 0 0 Thu 0 1 0 0 Fri 1 0 1 1 Sat 1 1 0 0
d ln = 4, nm = 2 labels: GroupA,GroupB,GroupC,GroupD matrix labels: Marriage,Business data: 0 1 0 1 1 0 0 0 0 0 1 0 1 0 0 1 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0
dl n=16 labels: ACCIAIUOL,ALBIZZI,BARBADORI,BISCHERI,CASTELLAN,GINORI GUADAGNI,LAMBERTES,MEDICI,PAZZI,PERUZZI,PUCCI,RIDOLFI, SALVIATI,STROZZI,TORNABUON datafile C:\DATA\PADGM.DAT
dl n=4 format=fullmatrix data: 0 1 1 0 1 0 1 1 1 1 0 0 0 1 0 0
dl n=4 diagonal=absent labels: Sanders,Skvoretz S.Smith,T.Smith data: 1 1 0 1 1 1 1 1 0 0 1 0
d ln=4 format=lowerhalf diagonal=absent labels: Sanders,Skvoretz S.Smith,T.Smith data: 1 1 1 0 1 0
d ln=4 format=lowerhalf labels: Sanders,Skvoretz S.Smith,T.Smith data: 2 1 2 1 1 2 0 1 0 2
2 1 1 1 1 0 0 0 0 0 1 2 1 1 1 0 0 0 0 0 1 1 2 1 1 0 0 0 0 0 1 1 1 2 1 0 0 0 0 0 1 1 1 1 2 0 0 0 0 0 0 0 0 0 0 2 1 1 1 1 0 0 0 0 0 1 2 1 1 1 0 0 0 0 0 1 1 2 1 1 0 0 0 0 0 1 1 1 2 1 0 0 0 0 0 1 1 1 1 2
dl n = 10 format=blockmatrix data: rows 1 to 10 cols 1 to 10 value = 0 rows 1 to 5 cols 1 to 5 value = 1 rows 5 6 7 8 9 10 cols 5 to 10 value = 1 diagonal 0 value = 2
100 0 0 0 0 0 90 100 0 0 0 0 80 90 100 0 0 0 70 80 90 100 0 0 60 70 80 90 100 0 50 60 70 80 90 100
dl n=10 format=blockmatrix data: rows all cols all value 0 diag 0 val = 100 diag -1 val =90 diag -2 val=80 d -3 v = 70 d -4 v = 60 d -5 v = 50