2016-11-30 108 views
1

我得比較以下兩個模型的輸出:解釋netlogit輸出

PTA.Logit.Ctrl <-glm(pta~ally+distance+ltrade+language+igo+affinity, 
       family=binomial(link="logit"),data=pta.ally.dyadic.1990.csv) 

PTA.QAPX.Ctrl <- netlogit(pta_network_1990,list(ally_network_1990,distance_1990,trade_1990, language_1990, igos_1990, affinity_1990), intercept=TRUE, mode="graph", diag=FALSE, nullhyp=c("qapx"), reps=100) 

看起來如下:

enter image description here

enter image description here

現在,glm輸出非常簡單,但我仍然在努力處理淨logit輸出,特別是關於顯着性分數。對於第一種模型,網絡數據以二元形式使用,第二種以矩陣形式使用。任何有關如何解釋淨logit輸出的幫助將不勝感激!

+0

這個問題對於交叉驗證更合適,因爲它是一個統計問題,而不是編程問題。我會在這裏給出一個答案,並且如果它被遷移就將其移交。 – paqmo

+0

哦,是的,你是對的,謝謝你指出,當然你的答案! – atzepeng

回答

1

與參數化的glm模型不同,qap模型是非參數化的,使用基於置換的方法更適合於網絡數據。您注意到係數是相似的(實際上應該是相同的,因爲netlogit使用glm來估計模型)。但是,p值和標準誤差是模型不同的地方。 qap模型對模型矩陣的行和列進行置換(取決於採用的方法,這裏是x個置換),並重新計算係數和測試統計量。它按照rep=n中指出的次數執行此操作。這創建了一個分佈,對最初估計的測試統計進行比較。最後的三列(Pr(<=b)等)分別代表較低,較高和雙尾測試。

我會用玩具網絡來說明這一點。

library(igraph); library(ggplot2) 
x<-rgraph(25,2) 
y.l<-x[1,,]*3 
fit <- netlogit(y, x, reps=100, nullhyp = "qapx") 

以下是彙總統計:

> summary(fit) 

Network Logit Model 

Coefficients: 
      Estimate Exp(b) Pr(<=b) Pr(>=b) Pr(>=|b|) 
(intercept) 0.1859224 1.2043289 1.00 1.00 1.00  
x1   -0.2377116 0.7884300 0.08 0.92 0.13  
x2   -0.2742033 0.7601775 0.03 0.97 0.08  

你可以看到模型中的每個術語分佈在netlogit對象與fit$dist[,2]爲x1和fit$dist[,3]爲x2和使用fit$tstat[2]檢驗統計量和fit$tstat[3]

ggplot() + geom_density(aes(fit$dist[,2])) + geom_vline(aes(xintercept=fit$tstat[2])) 

enter image description here

您可以看到,大約0.08個觀察值小於或等於x2的檢驗統計量,而0.92大於或等於檢驗統計量。

我們可以用數字看到:

> mean(fit$dist[,2] >= fit$tstat[2]) 
[1] 0.92 
> mean(fit$dist[,2] <= fit$tstat[2]) 
[1] 0.08 
> mean(abs(fit$dist[,2]) >= abs(fit$tstat[2])) 
[1] 0.13 

然後,我們在標準的方式解釋這些p值 - 如果有y和X1(空)之間沒有任何關係,然後觀察測試的概率統計值大於或等於0.92等。關鍵是分佈不是參數分佈,而是基於數據的排列。