Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Algoritmo para o Cálculo do intervalo de confiança para a média

Problema:

Tenho um conjunto de matrizes n X m (representadas como um array do numpy), no qual desejo calcular a matriz média e, em seguida, apresentar o intervalo de confiança para a média, com confiança de 95%.

Por exemplo:

[[1,2],[3,4]] e [ [1,2],[3,4]] teria como matriz média [ [1,2],[3,4]]

O Código abaixo encontrei na internet e não entendi direito:

import numpy as np
import scipy as sp
import scipy.stats

def mean_confidence_interval(data, confidence=0.95):
    a = 1.0*np.array(data)
    n = len(a)
    m, se = np.mean(a), scipy.stats.sem(a)
    h = se * sp.stats.t._ppf((1+confidence)/2., n-1)
    return m, m-h, m+h

O código está correto? Alguém poderia, por favor, me mostrar uma forma passo a passo de resolver o problema?

3 respostas

Olá emailtudaogeral, eu desconheço a função ppf e não saberia dizer com clareza o que ela faz assim como o código que você postou. Eu encontrei uma função do numpy que calcula o intervalo de confiança. O código ficaria:

import numpy as np                                                         
import scipy as sp                                                         
import scipy.stats                                                         

conjunto = np.array([[[1, 2], [3, 4]], [[1,2], [3, 4]]])                  
print(conjunto)                                                           

#calcular a matriz média                                               
media = conjunto.mean(axis=0)                                             
print('media:{}'.format(media))                                            

desvio_padrao = np.std(conjunto)                                          
conf_int = scipy.stats.norm.interval(0.95, loc=media, scale=desvio_padrao) 
print("intervalo de confiança: ")
print(conf_int)

Espero ter ajudado e bons estudos!

intervalo de confiança: @thaisandre: Obrigado!

Para os dados do problema, a saída foi:

(array([[-1.19130635, -0.19130635],
       [ 0.80869365,  1.80869365]]), array([[3.19130635, 4.19130635],
       [5.19130635, 6.19130635]]))

O que siginifica este primeiro array?

array([[-1.19130635, -0.19130635]
solução!

Olá, a saída é o intervalo de confiança.

O primeiro array do intervalo é :

array([[-1.19130635, -0.19130635],
       [ 0.80869365,  1.80869365]])

e o segundo é:

array([[3.19130635, 4.19130635],
       [5.19130635, 6.19130635]]))

Isso quer dizer que o elemento da primeira linha e primeira coluna da matriz média está no intervalo de confiança: [-1.19130635, 3.19130635].

O elemento da primeira linha e segunda coluna da matriz média está no intervalo de confiança: [-0.19130635, 4.19130635].

E assim por diante. Ficou claro?

E era essa a resposta que você queria? (posso ter feito confusão)