1. 程式人生 > >ucinet資料集格式

ucinet資料集格式

Datasets資料集下載

在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'.

3.1RawFiletype

Raw檔案全都由數字構成,以矩陣形式輸入。以下就是一個raw檔案的例子:
0 1 1 0
1 0 1 1
1 1 0 0
0 1 0 0

程式通過讀取第一行有幾個數來確定有幾列,通過計數來確定有多少行。雖然這種檔案很方便,但我們並不推薦使用,一個原因是電腦不會檢查資料。如果第一行正好丟失了一個數字,程式就讀不懂這個檔案了,程式會認定該檔案中的矩陣列數比實際列數少1,另一個原因是在資料檔案中你不能把矩陣中的一行的資料擴散為多個記錄。而且,你沒法使用標籤來辨別節點。

3.2ExcelFiletype

目前ucinet支援的excel版本是4.0,5.0和7.0(office97)(這個東東是指導手冊上說的,實際操作……)。如果你想使用其他版本的excel,那你必須在儲存資料(SAVEAS)時將他們儲存為支援的格式。注意excel最多隻支援255列,所以不能被用來建立大型的網路資料表。

3.3DLFiletype

典型的DL檔案由一系列的數字以及一系列的描述資料的關鍵詞,這些關鍵詞被稱為meta-data。當然,DL檔案也可以只有meta-data和一個指向儲存實際資料所在檔案的指標。

3.4FullMatrixFormat全矩陣

一個有四個參與者的DL檔案如下:
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

3.5RectangularMatrices

長方形矩陣可以參照下面輸入
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

"nr=6"說明矩陣有6行,"nc=4"說明矩陣有4列

3.6Labels

DL檔案可能也包含參與者標籤,比如:
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


"labels:"表示以下四項是行列標籤,標籤名至多可有18個字元(當longlabels 選項為off的情況下)或者255個字元(當longlabels選項為on的時候),標籤名可以由空格,逗號或者回車(或者兩者一起使用)來分開。標籤內不能存在空格,除非你用引號將其包住,比如"Tom Smith"。

"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

"row labels embedded" 和"column labels embedded" 說明行標和列標都嵌入在資料中,也可以簡單用"labels embedded" 來表示行列表企鵝都在資料中。

3.7MultipleMatrices

有時在一個數據檔案中存放幾個相關的矩陣會比較方便。比如,我們可以度量給定的一系列參與者的多種社會關係,以下展示如何操作:
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


"nm=2" 說明檔案中包含了兩個矩陣。"matrix labels:"說明下兩個詞("marriage" 和"business")是每個矩陣的標籤,大致說明了每個矩陣度量的社會聯絡。

3.8ExternalDataFile

有時將資料從DL的描述檔案中分開出來會顯得方便,這可以使得其他程式也可以讀取資料檔案(比如SYSTAT,STRUCTURE,和NEGOPY)以及ucinet,以下是示例:
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

"datafile=c:\data\padgm.dat"說明了包含實際資料的檔案,該檔案只能包含資料。使用datafile命令的缺點在於必須跟蹤眾多的檔案。
當使用一個單獨的資料檔案時,ucinet檢查第一行,檢視是否存在NEGOPY和STRUCTURE等所要求的FORTRAN格式宣告。假如存在,ucinet將從第二行開始讀取,否則,就從第一行開始讀取,這使得你可以在使用STRUCTURE和NEGOPY檔案時中途改換為ucinet檔案,只需確保檔案中的每個值之間都有一個以上的空格。

3.9DiagonalAbsent

預設情況下,程式認為資料有一整個完整的矩陣組成,技術上我們稱之為"full matrixformat" ,可以通過如下所示方法明確之:
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

程式會自動以缺失值編碼填入空缺的位置中。

3.10LowerhalfandUpperhalfMatrices

一種做法是隻輸入對稱矩陣的下半部分:
d ln=4
format=lowerhalf
diagonal=absent
labels:
Sanders,Skvoretz
S.Smith,T.Smith
data:
1
1	1
0	1	0

Ucinet會自動把上半部分補齊,並以缺失值填入對角線。同樣,也可以輸入對症矩陣的上半部分以關鍵詞"upperhalf" 代替"lowerhalf"即可。注意如果"diagonal absent" 語句被省略了,程式展示出缺失值(expect a diagonal value tobe present.)
d ln=4
format=lowerhalf
labels:
Sanders,Skvoretz
S.Smith,T.Smith
data:
2
1	2
1	1	2
0	1	0	2

3.11BlockmatrixFormat 另一種在建立模型矩陣時很有用的格式是“blockmatrix”(分塊矩陣)。在這種格式中,
你可以輸入方向來建立資料而不是逐一輸入。比如要輸入如下矩陣:

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


使用blockmatrix格式你可以這樣建立:
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

在blockmatrix格式中,你區分出一系列單元,並給他們賦值。在示例中,前三行語句給所有單元賦0,次三行(忽略空格)給左上角的矩陣賦值為1,再後三行作用類似,
最後兩行將主對角線上的所有值賦為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


根據如下示例用blockmatrix格式輸入這個矩陣:
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


關鍵詞“all”表示所有行和列,"rows","cols","value", 和"diagonal"可以採用首字母縮寫。d後面的值為第i條對角線。

3.12LinkedListFormats

網路分析中的一系列重要格式就是被稱為linkedlist (連結串列)的格式,這種格式中參與者只保留資料之間實際發生的聯絡,忽略那些不發生的聯絡,這些格式的特別之處在於接受字元型資料。There are two basic types of linked list formats: "nodelists"and"edgelists".Each of these types in turn has two variants,one for 1-mode data and one for 2-modedata.Only the edgelists allow valued data.
有兩種基本的連結串列格式型別:"nodelists" (節點列表)and"edgelists"(邊界列表)。這兩種型別各有兩種變式,一種用於單模資料,另一種用於2模資料,只有"edgelists"允許賦值資料。