序列分析工具MEPA操作介紹
講到滯後序列分析(Lag Sequential Analysis)的時候,說臺科大的候惠澤老師是世界第一把交椅也不是誇張的形容。今天趁著政大圖檔所博士班研究能量提升工作坊的機會跟侯老師討教了MEPA的操作,意外地發現居然如此的簡單。但操作上還是有很多細節,以下我就一步一步介紹如何使用。
多重事件記錄分析 MEPA (Multiple Episode Protocol Analysis)
MEPA是荷蘭最古老大學之一烏特勒支大學(Utrecht University)教育科學系的Gijsbert Erkens所開發的互動分析軟體。
- MEPA website http://edugate.fss.uu.nl/mepa/index.htm
MEPA是一個用於標註、對於一些口語或行為觀察資料進行編碼的靈活工具。這個程式可以用來發展觀察行為資料的編碼系統,也可以用來針對已經編碼的口語或行為資料進行各種質性與量化的分析。
作者Erkens並沒有直接在網路上公開MEPA軟體,但可以寫信去跟作者索取。(請不要跟我索取,credit回歸作者)
- Gijsbert Erkens: G.Erkens@fss.uu.nl
MEPA用於滯後序列分析
我在寫碩士論文的時候候惠澤老師就推薦我用MEPA進行分析,但是我自個兒摸來摸去也不得其門而入。今天請大師指點一二之後,立刻打通任督二脈,終於搞懂怎麼分析了。
1. 將觀察樣本存成xls
首先我們要先把編碼整理成MEPA可以使用的格式。如何編碼與整理成編碼序列,可以參考之前的介紹「行為編碼與序列分析」。
舉例來說,如果我們最後獲得的觀察樣本是「ABDCCBBD」,那麼就請開啟Excel,將樣本以垂直的方式輸入到Excel中。例如:
A |
B |
D |
C |
C |
B |
B |
D |
最後將檔案儲存成「xls」格式即可。不可以使用xlsx,請使用早期的xls。
以下提供範例檔案,裡面的序列僅供參考:
- 檔案下載:OneDrive, Google Drive, Box, Mega
沒有Excel也可以用免費的LibreOffice Calc。
2. MEPA匯入xls
開啟MEPA之後,開啟左上角的File,然後選擇「Read from Excel file」。
選擇要分析的xls檔案,例如這個data.xls。
接著會出現Import from Excel對話視窗。我們要設定兩個地方:
- V4 (cat. var.)是編碼樣本,我們輸入1,表示這是Excel的第1欄。
- row no 1 to 2500,這個2500是指有多少筆資料需要分析。如果你的Excel資料的列數算到5000,那就是有5000筆,請輸入5000。
設定完成之後按下OK。
主視窗往下移動,你會發現V4已經匯入了來自Excel的資料。
3. 建立分析檔案
接著按下上面的「Sequential」,選擇要分析的「V4」。
這時候會出現Lag Sequential Analysis滯後序列分析輸入視窗,請按下「OK」。很多參數設定還要再研究,但至少我確定那個lag of analyis是1沒錯。
這時候MEPA會顯示錯誤,這是正常現象。
接著開啟你輸入檔案的資料夾位置,如果是「data.xls」的話,旁邊應該可以找到新增的「data.ana」。請使用記事本軟體,例如Notepad++ Portable來開啟。
能看到這個畫面,表示結果正常出來了。
畫面往下拉到「Adjusted Residuals Table」,這就是我們要的答案。
- 範例結果下載:OneDrive, Google Drive, Box, Mega
4. 繪製序列轉換圖
上面範例的調整殘差表(Z-scores)如下:
A | B | C | D | |
A | 15.70 | 3.17 | -10.82 | -9.77 |
B | -2.99 | -15.15 | 24.14 | 2.88 |
C | -2.99 | 3.10 | -8.20 | 6.74 |
D | -9.63 | 9.78 | -6.24 | -0.27 |
其中有大於1.96的序列轉換表示有顯著,我以紅字標示,列出結果如下:
- A > A: 15.70
- A > B: 3.17
- B > C: 24.14
- B > D: 2.88
- C > B: 3.10
- C > D: 6.74
- D > B: 9.78
根據上述序列,我們將各個行為畫成圓形節點,序列轉移顯著程度則是用粗細不同的線條來表示,越粗表示序列轉移越顯著(Z-score越高),沒有連線表示沒有顯著序列轉移。
結果就是這樣子了。
MEPA跟我寫的工具有何差別?
剛剛試著拿MEPA跟我之前寫的序列分析工具來比較,發現結果差異甚多。看來我的程式應該要檢討了。
建議大家以後都用MEPA來分析吧。
將字串換成斷行的文字
回覆刪除http://codepen.io/pulipuli/pen/dXZdRA
方便轉換單純字串貼到Excel中
例如輸入:ABC
會轉換成:
A
B
C
我參考Bakeman (1986)書本中的算法,但發現結果跟MEPA不一樣
回覆刪除參考資料:
Bakeman, R. (1986). Observing interaction: an introduction to sequential analysis. Cambridge [Cambridgeshire] ;New York: Cambridge University Press.
P.146 Table 7.1 Observed frequencies for two-event sequences
有一組USTPG五種編碼的轉換表格
換算成原始編碼字串,結果是:
USPTPTPGTPTGTPGTGPTPGTGPSTPTGTSPGPSUSTPTGTUTSPGPSGTPTGPGSUSTUTSPSGTPTGPGSUSTUTSPSGTPTGPGUSUTUPUGSTSPSGTPTGPGUSUTUPUGSTSPSGTPTGPG
轉換成Excel表格之後,檔案可由此下載:
http://pulipulichen.github.io/blogger/posts/2016/07/20160720-sequential-anlysis/sa/bakeman_example.xls
照此篇教學操作之後,產生結果檔案如下:
http://pulipulichen.github.io/blogger/posts/2016/07/20160720-sequential-anlysis/sa/bakeman_example.ana
其中P->G的Z-score是1.88
但是書中的7.7 How to compute z scores中所給的兩種算式的答案都不是這個值
P.154使用聯合頻率計算P->G為0.676 (0.672, 因為小數點四捨五入而有所不同,實際上P.154兩個算式都一樣)
P.155使用Allison & Liker (1982)的算法,P->G為0.774
兩個算法都跟MEPA所使用的 Bakeman & Quera (1995) 有所不同,這到底是?
本篇文章短網址:http://l.pulipuli.info/160905-mepa
回覆刪除你好~想請問一下,GSEQ/MEPA好像不能直接生成行為序列圖?是只能自己畫圖麼?還是說,工具可以生成圖片,但是我沒有找對方法,請指教!
回覆刪除作者已經移除這則留言。
刪除你好,
刪除我對MEPA不熟,不太確定產生圖片的方法。
一般來說,我都是建議大家自己畫圖,例如可以用LibreOffice Draw之類的自由軟體來繪製圖表,這樣排版跟樣式你自己比較容易掌控。
https://zh-tw.libreoffice.org/discover/draw/
---------
但是大家的問題通常都是:節點(事件)太多了,很難手工畫完這些圖。
這個問題可以從兩個角度來回答:
1. 觀察事件太多,這件事情對滯後序列分析不是很有意義。你應該限縮、聚焦於你要觀察的事件,這樣才是滯後序列分析的初衷。
2. 如果你不想理會滯後序列分析這件事情,只是想要繪製網路圖,那現在還是有很多好用的工具可以使用。
比較特別需要注意的是,由於滯後序列分析的網路圖中,連結節點(事件)的邊(z分數)是有向、帶有權重、不對稱(A->B跟B->A的Z分數不同)、自我連結(A->A),大部分的網路圖繪製工具都沒辦法繪製這樣的網路圖,除非是專門的社會網路分析工具。
-----------
我個人推薦的是開放原始碼的自由軟體:蜘蛛 Pajek (唸作pa-ya-ke)
http://mrvar.fdv.uni-lj.si/pajek/
龍華科大資管系的林芳苓老師和陳茂旗先生錄製了一系列的教學影片可供參考
https://www.youtube.com/watch?v=bOF_ysGQ6hU&list=PLA5sUfR4yx21I6kpy2tZPFYufDmtPbrOe
市面上也有書籍可以買來看:
Nooy, W. de、Mrvar, A.、Batagelj, V.(2012)。蜘蛛: 社会网络分析技术(林枫譯)。北京:世界图书出版公司北京公司。(ISBN:978-7-5100-5288-0)
在第一章、第二節、第四頁中,圖2 飯友關係社群圖有著類似滯後序列分析所具備的條件:
http://2.bp.blogspot.com/-fbgqt4ucKQg/XPO3qbYzcjI/AAAAAAAEQwU/1yPnfR2C06kUks__bHDXbR18o5BgftWMwCK4BGAYYCw/s1600/2019-06-02_194642.png
蜘蛛使用的檔案類型很多種,主要是用頂點、邊、分類的格式,請看以下這個檔案:
https://github.com/pulipulichen/pajek-dataset/blob/master/chapter-13/strike.paj
---------------
另一個我在網路上找到的是sigma.js
http://sigmajs.org/
範例中的parallel-edges.html可以呈現出類似於滯後序列分析所需要的網路圖:
https://github.com/pulipulichen/sigma.js/blob/master/examples/parallel-edges.html
圖形展示:
https://pulipulichen.github.io/sigma.js/examples/parallel-edges.html
http://3.bp.blogspot.com/-aJ0w1HWMVEA/XPPCjTTMb-I/AAAAAAAEQw4/wL-Uu4DK_5oAiVfXA2c2K7VfU0FvGbi6ACK4BGAYYCw/s1600/2019-06-02_203310.png
圖中兩個節點可以連結多個有向邊,而且邊上可以帶有標籤。
你可以參考原始碼,試著將資料轉換之後,就可用sigma.js來繪製網路圖。
我之前寫的另一個工具:行為順序檢定:滯後序列分析
刪除http://blog.pulipuli.info/2017/10/behavior-analysis-lag-sequential.html#postcatabehavior-analysis-lag-sequential.html0_anchor6
裡面也有產生事件轉移圖的功能
可是缺乏力導向排版(force-directed layout)的關係,節點的排版需要自己手動調整。
那時候用的繪圖工具是jsPlumb。
因為不是專門的社會網路工具,所以只能畫到這樣子而已。
您好 抱歉我漏了一個問題
回覆刪除我的資料每位受試者會接受兩種不同的任務(受試者內設計),每個任務會重複做三次,任務內所發生的行為會被記錄。
每個人每個任務會重複做三次,在做滯後序列分析時,重複做三次應該要變成三筆資料嗎?
我意思是,這三個trial內的行為,任務1a(行為AAA) 任務1b(行為BBB) 任務1c(行為CCC),視為是同一個人的連續資料很奇怪(AAABBBCCC)
但是改視為三筆(三個人)也好像不太對勁
感謝解惑
您好,
刪除關於非連續的序列資料混合分析的方法,主要是要將片段考慮進去。
舉例來說,現在有三個序列資料片段,各別是AAA、BBB、CCC,觀察事件編碼為A、B、C
此時在計算長度為1的轉移序列頻率時,轉移序列頻率如下:
A->A 2
B->B 2
C->C 2
另一個例子是一個序列資料片段,整體序列為AAABBBCCC,此時轉移序列頻率如下:
A->A 2
A->B 1
B->B 2
B->C 1
C->C 2
後續的計算方式與普通的滯後序列分析相同。
關於資料混用的議題,請看Bakeman書中的8.4 Individual versus pooled data
Bakeman, R., & Gottman, J. M. (1997). Observing interaction: an introduction to sequential analysis. Cambridge: University Press.