4
respostas

Erro ao usar ztest no jupyter

estou executando o seguinte código no Notebook Jupyter referente a aula de estatística 3

from statsmodels.stats.weightstats import ztest

ztest(x1 = amostra, value = media ) onde Amostra vale 2500 e media vale 500

estou recebendo a seguinte mensagem de erro:

IndexError Traceback (most recent call last) in ----> 1 ztest(x1 = amostra, value = media )

~\Anaconda3\lib\site-packages\statsmodels\stats\weightstats.py in ztest(x1, x2, value, alternative, usevar, ddof) 1359 1360 x1 = np.asarray(x1) -> 1361 nobs1 = x1.shape[0] 1362 x1_mean = x1.mean(0) 1363 x1_var = x1.var(0)

IndexError: tuple index out of range

Alguém pode ajudar? as versões usadas são

Versão do pandas -> 1.0.3 Versão do numpy -> 1.18.2 Versão do scipy -> 1.4.1 Versão do statsmodels -> 0.11.1 Versão do seaborn -> 0.10.0 Versão do matplotlib -> 3.2.1

4 respostas

Olá Vitor,

O ztest espera que você passe uma lista (uma amostra com vários valores) no x1 e pelo que você falou está sendo passado apenas um valor, o 2500

Verifica novamente se essa amostra é realmente o que você quer testar.

No modulo Estatística 3 Aula 2 Teste bicaudal e entendendo o p-valor O Vídeo em 5.16 mostra o professor executando o seguinte comando

ztest(x1 = amostra, value = media ) obtendo a seguinte saída (array([5.10955978]), array ([3.22910317e-07]))

o Professor chama amostra de Dataframe porém no notebook jupyter essa variável amostra é declarada da seguinte forma:

amostra = 50*500 amostra = 25000

Não existe menção dela em nenhuma outra parte do Notebook se está declarada errada para ser usada no ztest preciso que o video mostre como é o correto... pode ajudar?

Encontrei o erro, o Notebook que está disponível para Iniciar o Modulo 2 etá com as informação errada... embora a media e desvio padrão esteja com os valores iguais!

Examinando o Notebook de resolução do modulo seguinte, a variável amostra foi foi declarada em forma de Array corrigindo a saída!

amostra = [509, 505, 495, 510, 496, 509, 497, 502, 503, 505, 501, 505, 510, 505, 504, 497, 506, 506, 508, 505, 497, 504, 500, 498, 506, 496, 508, 497, 503, 501, 503, 506, 499, 498, 509, 507, 503, 499, 509, 495, 502, 505, 504, 509, 508, 501, 505, 497, 508, 507]

amostra = pd.DataFrame(amostra, columns=['Amostra']) amostra.head()

media_amostra = amostra.mean()[0] media_amostra

desvio_padrao_amostra = amostra.std()[0] desvio_padrao_amostra

Boa Vitor, obrigado por avisar!

Vou dar uma olhada no notebook de download para corrigir caso necessário.