解释netlogit输出

时间:2016-11-30 00:18:34

标签: r statistics

我必须比较以下两个模型的输出:

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输出的帮助将不胜感激!

1 个答案:

答案 0 :(得分:3)

与参数化的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对象中看到模型中每个术语的分布,其中x1为fit$dist[,2],x2为fit$dist[,3]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,等等。关键是分布不是参数分布,而是基于数据的排列。