Mam problem z obliczeniem testu współczynnika wiarygodności w Pythonie 2.7.Test współczynnika wiarygodności w języku Python
Mam dwa modele i odpowiadające im wartości prawdopodobieństwa. Uważam, że reguła porównywania tego, czy model L2 jest lepszy niż model L1 (jeśli modele są ze sobą blisko powiązane), to spojrzenie na -2 * log (L2/L1).
Chciałbym następnie znaleźć wartość p dla odpowiadającej -2 * log (L2/L1) i powiązać ją z istotnością dla L2 jest preferowana względem L1. Oto co mam do tej pory:
import numpy as np
from scipy.stats import chisqprob
L1 = 467400. # log(likelihood) of my 1st fit
L2 = 467414. # log(likelihood) of my 2nd fit
LR = -2. * np.log(L2/L1) # LR = -5.9905e-05
p = chisqprob(LR, 1) # L2 has 1 DoF more than L1
print 'p: %.30f' % p # p = 1.000000000000000000000000000000
five_sigma = 1 - scipy.special.erf(5/np.sqrt(2.)) :-)
print '5 sigma: %.30f' % five_sigma
five_sigma_check = 1 - 0.999999426696856 :-(
print 'Check : %.30f' % five_sigma_check
Jednak biegnę na dwie kwestie:
- Moja wartość p zbliża się 1, gdy będę tego spodziewać, aby być blisko 0.
- Kiedy używam formuły w linii oznaczonej :-), aby znaleźć pięć sigma, na przykład, różni się od wartości podanej w literaturze - linia ta jest podświetlona za pomocą :-(. Moja wartość dla
five_sigma_check
pochodzi z here.
Czy ktoś może zaoferować jakąkolwiek poradę? Jestem stosunkowo nowy w świecie Pythona i statystyk.
Dzięki.
to '' L1' i wiarogodności L2' lub zaloguj wiarogodności? Jeśli są to logarytmy, nie powinieneś brać ich logując się podczas obliczania LR –
"L1" i "L2" to logi prawdopodobieństw. Rozumiem, co masz na myśli, zrobienie dziennika logów nie ma sensu ... –