Categorical-Data

測試成對頻率的獨立性

  • December 5, 2010

我希望這不是太基本或多餘。我一直在尋找指導,但到目前為止我仍然不確定如何進行。

我的數據由一對對話者之間的對話中使用的特定結構的計數組成。我想測試的假設如下:一個說話者更頻繁地使用這個結構會傾向於增加另一個說話者結構的頻率(即,這可能是啟動效應的證據)。

所以我只有兩個向量,說話者 A 的計數和說話者 B 的計數是列,如果它們排成一行,每行代表一個特定的對話,如下所示:

AB

0 1

0 2

1 0

3 1

0 2

2 0

2 1

大約有 420 個對話(行)。該數據中有很多零。

分析這些數據的最佳方法是什麼?我正在使用 R,如果這有所作為。

這是頻率(計數)的圖。x 軸是說話人 A 的使用次數,y 軸是說話人 B 的使用次數。說話人之間的區別只是說話人 A 先說話,並沒有什麼特別的原因。否則speaker A和speaker B的區別基本沒有意義:

有效的 XHTML http://phonematic.com/convplot.jpg

這是相對於每個說話者在每次對話中所說的句子數量的頻率。:

有效的 XHTML http://phonematic.com/rs_plot.jpg

(我應該提到我已經拋出了根本沒有命中的對話,即 {0,0}。)

如果您想研究雙向數據結構,對數線性模型可能是另一種選擇。

如果您假設兩個樣本是匹配的(即,兩個系列的語言之間存在某種依賴關係)並且您考慮到數據實際上是可以被視為分數或有序響應的計數(如@caracal 所建議的) ),那麼您還可以查看匹配對的邊際模型,這通常涉及對方形列聯表的分析。您最終可能不一定會得到這樣一個方形表,但我們也可以決定例如被動句的數量的上限。無論如何,匹配對的模型在 Agresti 的第 10 章,分類數據分析中得到了很好的解釋;方表中序數類別的相關模型正在測試準對稱性(從一個案例到另一個案例的類別效果差異遵循類別分數的線性趨勢),條件對稱(要么,) 和準均勻關聯(主對角線外的線性關聯,在等間隔分數的情況下意味著一致的局部關聯)。序數準對稱 (OQS) 是線性 logit 模型的一個特例,它可以與一個更簡單的模型進行比較,其中只有邊際同質性通過 LR 檢驗成立,因為序數準對稱 + 邊際同質性對稱。

按照 Agresti 的符號(第 429 頁),我們認為變量的有序分數(行)和變量(列);要么表示任何行或列。OQS 模型讀作以下對數線性模型:

在哪裡對所有人. 與用於標稱數據的通常 QS 模型相比,, 在哪裡將意味著兩個變量之間的獨立性,在我們強加的 OQS 模型中(因此引入了線性趨勢的概念)。等效的 logit 表示是, 為了.

如果,那麼我們就有對稱性作為這個模型的一個特例。如果,那麼我們有隨機排序的邊距,即表示列均值高於行均值(並且越大, 兩個聯合概率分佈之間的差異越大和是,這將反映在行和列邊緣分佈之間的差異)。一個測試對應於邊際同質性檢驗。估計的解釋很簡單:在變量上得分的估計概率是比分數更積極的單位是乘以反向概率。在您的特定情況下,這意味著可能允許量化一個特定說話者對另一個說話者的影響。

值得注意的是,Laura Thompson 在她的S Manual to Accompany Agresti’s Categorical Data Analysis中提供了所有 R 代碼。

此後,我提供了一些示例 R 代碼,以便您可以在自己的數據上使用它。所以,讓我們先嘗試生成一些數據:

set.seed(56)
d <- as.data.frame(replicate(2, rpois(420, 1.5)))
colnames(d) <- paste("S", 1:2, sep="")
d.tab <- table(d$S1, d$S2, dnn=names(d)) # or xtabs(~S1+S2, d)
library(vcdExtra)
structable(~S1+S2, data=d)
# library(ggplot2)
# ggfluctuation(d.tab, type="color") + labs(x="S1", y="S2") + theme_bw()

從視覺上看,交叉分類如下所示:

  S2  0  1  2  3  4  5  6
S1                        
0     17 35 31  8  7  3  0
1     41 41 30 23  7  2  0
2     19 43 18 18  5  0  1
3     11 21  9 15  2  1  0
4      0  3  4  1  0  0  0
5      1  0  0  2  0  0  0
6      0  0  0  1  0  0  0

現在,我們可以擬合 OQS 模型了。與 Laura Thompson 使用基本glm()函數和自定義設計矩陣進行對稱不同,我們可以依賴gnm包;然而,我們需要為數值分數添加一個向量來估計在上述模型中。

library(gnm)
d.long <- data.frame(counts=c(d.tab), S1=gl(7,1,7*7,labels=0:6),
                    S2=gl(7,7,7*7,labels=0:6))
d.long$scores <- rep(0:6, each=7)
summary(mod.oqs <- gnm(counts~scores+Symm(S1,S2), data=d.long, 
                      family=poisson))
anova(mod.oqs)

在這裡,我們有,因此當說話者 A 得 3 分時,說話者 B 得 4 分的概率是乘以說話人 B 得 3 分而說話人 A 得 4 分的概率。

我最近遇到了似乎提供類似功能的catspec R 包,但我沒有嘗試過。UserR 上有一個很好的教程!2009 關於所有這些東西:R 中的廣義非線性模型簡介,但另請參閱伴隨的小插圖,R 中的廣義非線性模型:gnm 包概述

如果你想用真實數據來理解這個想法, Michael Friendly的vcdExtra包中有很多真實數據集的例子。關於 OQS 模型,Agresti 使用了關於婚前性行為和婚外性行為的數據(表 10.5,第 421 頁)。結果在第 10.4.7 節(第 430 頁)中討論,並且估計為-2.86。下面的代碼允許(部分摘自 Thompson 的教科書)重現這些結果。我們需要重新調整因子水平,以便設置與 Agresti 相同的基線。

table.10.5 <- data.frame(expand.grid(PreSex=factor(1:4),
                                    ExSex=factor(1:4)),
                        counts=c(144,33,84,126,2,4,14,29,0,2,6,25,0,0,1,5))
table.10.5$scores <- rep(1:4,each=4)
summary(mod.oqs <- gnm(counts~scores+Symm(PreSex,ExSex), data=table.10.5, 
                      family=poisson)) # beta = -2.857
anova(mod.oqs) # G^2(5)=2.10

引用自:https://stats.stackexchange.com/questions/5171

comments powered by Disqus