【问题标题】:G-test in R and Python (Two Sample Test of Proportions)R 和 Python 中的 G 测试(比例的两个样本测试)
【发布时间】:2018-11-05 19:37:21
【问题描述】:

我在 R 和 Python 中进行 G 测试,我得到不同的结果,我在 Python 中得到的结果是错误的。不知何故,我误用了公式。

数据是:

prfs
Sex F   M
Pref        
B   29  17
A   2   12

R 代码是:

library(RVAideMemoire)
G.test(prfs)
G-test

data:  prfs
G = 11.025, df = 1, p-value = 0.0008989

Python 代码是:

stats.power_divergence(prfs, lambda_ = 'log-likelihood')
Power_divergenceResult(statistic=array([28.14366538,  0.86639163]), pvalue=array([1.12635722e-07, 3.51956200e-01]))

stats.power_divergence(prfs, lambda_ = 'log-likelihood', axis = None, ddof = 2)
Power_divergenceResult(statistic=29.07673602201342, pvalue=6.956736686069527e-08)

【问题讨论】:

    标签: python r statistical-test


    【解决方案1】:

    这是一个老问题,但以下答案可能会有所帮助:

    obs = np.array([[29,17], [2,12]])
    # G test with scipy: 
    from scipy.stats import * 
    g, p, dof, expctd = chi2_contingency(obs, lambda_="log-likelihood")
    print("G={}; df={}; P={}".format(g, dof, p))
    

    输出:

    G=8.859368223179882; df=1; P=0.0029158847773319975
    

    数值与R法相似。

    上述方法的参考是here

    【讨论】:

      猜你喜欢
      • 2020-12-28
      • 1970-01-01
      • 2012-06-08
      • 2016-06-30
      • 2014-12-24
      • 1970-01-01
      • 2017-12-10
      • 2018-07-19
      • 1970-01-01
      相关资源
      最近更新 更多