No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Pruebas de hipótesis en Python: t de Student

16/22
Recursos

Aportes 23

Preguntas 8

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

Para tener el dataset de iris no es necesaro subir ningun csv o copiar una url, está ya almacenado en la librería de seaborn

La fórmula de SED que aparece en 5:51 no está bien. Aparece 2 veces sigma sub-1, lo que hace a uno pensar que son el mismo valor, y no es así, ya que corresponden a los valores de sepal-length y sepal-witdh respectivamente. Atentos a ese detalle.

Una corrección en la fórmula:

Al final dice que se acepta la hipótesis nula, según mi profesora de econometría de la universidad esto es un error, lo correcto sería decir que no se rechaza la hipótesis nula.
En general siento que quedan muchos vacios y se deberia explicar mejor el porque que de cada proceidimiento, por ejemplo porque se debe comparar el p-value con el T-Student y que funcion cumple el estadistico

Este video me ayudo a comprender mejor muchos conceptos que no entendia bien:

  • t-value
  • t-test
  • p values

Básicamente esta clase de Platzi me ayudó a entender como realizar el t-test utilizando Python y la librería de scipy, pero no entendí que significaba o como interpretar cada concepto.

Aclaraciones respecto a los resultados de los ejemplos:

  1. El valor t calculado de manera manual (vía fórmula) se hace para un N = 10, el cual nos da como resultado 9.4:

Al calcularlo con un N igual a la longitud total del conjunto de datos (len(iris)) el resultado es el mismo que el valor t calculado con scipy.stats (df = degreees of freedom):

  1. El valor del t-test no se compara con el p-value. Entonces, ¿Cómo se interpreta este número? El valor esperado de t bajo la hipótesis nula es 0, es decir, si el resultado del t-test es 0 (o cercano), no hay diferencias significativas entre las medias de las muestras comparadas. Por otro lado, un valor t grande en magnitud (ignorando si hay signo negativo) indicaría que sí hay una diferencia.

  2. El p-value se compara con un límite de significancia alfa (0.05, 0.01). Si el p-value es menor a este alfa, rechazamos la hipótesis nula y podemos concluir que sí existe una diferencia significativa entre las medias. En este caso el p-value = 7.02e^-112, por lo que es un valor muy inferior a un alfa de, por ejemplo, 0.05.

    En conclusión, con un valor del t-test grande y un p-value inferior a un alfa de 0.05, podemos rechazar la hipótesis nula y decir que si existe una diferencia significativa entre las variables.

En este video explican un poco mejor la prueba de hipótesis T Student https://youtu.be/RA9mPkbrZqU

Me confunde un poco la sintaxis que usa la profe, desconocía que

 iris.mean()['sepal-length']

Podía ser lo mismo que

 iris['sepal-length'].mean()

lo use de las dos maneras y da lo mismo, pero aun así prefiero la segunda forma, que me parece, es la más intuitiva

Para quienes quieran tener las fórmulas no con imágenes sino como código en Latex dentro del Markdown.

SE

$$
SE = \frac{\sigma}{\sqrt{N}}
$$

SED

$$
SED = \sqrt{\frac{\sigma_1^2}{N_1}+\frac{\sigma_2^2}{N_2}}
$$

t de Student

$$
t = \frac{\bar{x_1}-\bar{x_2}}{SED}=\frac{x_1-x_2}{\sqrt{\frac{(s_1)^2}{n_1}+\frac{(s_2)^2}{n_2}}}
$$

En este caso t_stat es nuestro valor critico y p nos da dos valores el t calculado (36.54) y el alpha ( 3.987 e -112),
Si el valor absoluto del valor t calculado es mayor que el valor crítico, usted rechaza la hipótesis nula. Si el valor absoluto del valor t es menor que el valor crítico, usted no puede rechazar la hipótesis nula.
(Cuanso se usa el igual en la prueba de hipotesis siempre nos referimos a una prueba t de dos colas).
HIPOTESIS NULA :
Las dos muestras provienen de la misma poblacion o tienen la misma distribución
H0=H1

Otra forma de comprobar esto es mirando el valor alpha el cual es menor que el nivel de significancia este alpha esta dentro de la zona de rechazo de la hipoesis nula ya que es menor que nuestro alpha de 0.5

Es necesario aclarar algo: El estadistico “t _obs” NO se debe comparar con el p-value, pero sí están relacionados. Para el testing con T-Student:

p-value= Prob( |T | > | t_obs | ),
donde T es una variable aleatoria que sigue una distribución T Student con grados de libertad df=N-1, y t _obs es el valor del estadistico observado.
El p-value es por definición valor más bajo de alpha sobre el cual se rechazaría la hipótesis nula. Si p-value < alpha, donde alpha es el nivel de significancia deseado (normalmente se usa el 5% o alpha=0.05), entonces se rechaza la hipótesis nula.

Igualmente podemos tomar la decicisón del testeo sin necesidad de tomar el p-value. Rechazaremos la hipotesis nula si |t_obs| > t_{df , alpha/2}= F^-1 (1-alpha/2). Donde F^-1 es la inversa de la CDF de la distribución T-Student. También es posible obtener F^-1 (1-alpha/2) a partir de una tabla, similar a como se hace con la distribución Normal.

Les recomiendo esta página para comprender mejor los cálculos realizados en esta clase. Saludos, y a seguir estudiando!

Para los que no les quedo muy claro sobre que trata de probar la prueba t-test en este ejemplo, prueba que 2 medias poblacionales son iguales o no. El SED en esencia es igual que el SE, es el error estandar, solo que el SE es el error estandar de la distribucion muestral de las medias muestrales de una poblacion y el SED es el error estandar de la distribucion muestral de (x media 1 - x media 2) osea la distribucion de las diferencias entre ambas medias, en otras palabras SE es para relizar inferencias acerca de la media de una poblacion y el SED para realizar inferencias de la media con 2 poblaciones.

La prueba t de Student es una prueba estadística utilizada para comparar dos medias de muestras independientes para determinar si existe una diferencia significativa entre ellas. En Python, se puede realizar una prueba t de Student utilizando la función “ttest_ind” del paquete

“scipy.stats”.

Ejemplo:

Copy code

from scipy.stats import ttest_ind

datos de muestra 1

sample1 = [1, 2, 3, 4, 5]

datos de muestra 2

sample2 = [5, 6, 7, 8, 9]

realizar la prueba t de Student

t_stat, p_value = ttest_ind(sample1, sample2)
# imprimir el valor t y el valor p
print("t-statistic:", t_stat)
print("p-value:", p_value)
  • En el ejemplo, la variable “t_stat” contiene el valor t calculado y la variable “p_value” contiene el valor p obtenido de la prueba. Si el valor p es menor que un nivel de significancia establecido (generalmente 0,05), se rechaza la hipótesis nula (que las dos medias son iguales) y se concluye que existe una diferencia significativa entre las dos muestras.

  • Nota: Es importante recordar que, al igual que en cualquier prueba estadística, es necesario cumplir con ciertos supuestos antes de realizar una prueba t de Student, como normalidad y varianza homogenea en las muestras.

la profe se equivoco en el minute -6:14 hay que poner el tamaño de la muestra con el tamaño real no con 10

se_length = df['sepal-length'].std()/np.sqrt(len(df)) #standar error
se_width = df['sepal-width'].std()/np.sqrt(len(df)) #standar error

osea así

de esta forma si te da lo mismo que la function final

Algunas imagenes que necesite para entender el P - Value

No me queda claro la formula SED. La profe calculo el valor de las variables se_length y se_width con la formula SE, LUEGO APLICO la formula SED y elevo al cuadrado cada variable, diciendo que ese valor es el mismo que el SE, haciendo una simplificacion algebraica i da los mismo (aplicado la raiz cuadrada a la fraccion), en todo caso los valores N1 y N2 ya no deberían considerarse puesto que ya se consideró en el SE. Salvo que alguien pudiera aclarar al respecto

Código para importar la base de datos

url = 'https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data'
names = ['sepal-length','sepal-width','petal-length','petal-width','class']
iris = pd.read_csv(url,names = names)
iris.head()

Les comparto una tabla que me ha sido muy util a la hora de saber que prueba usar.

https://help.xlstat.com/es/6443-que-prueba-estadistica-deberia-utilizar

ademas hay que saber plantear la prueba de hipotesis en un experimento.
https://help.xlstat.com/es/6761-what-difference-between-two-tailed-and-one-tailed-test

recomiendo usar esta nomenclatura ya que igual manda un aviso que un futuro la forma que escribio la profesora sera reconocida como error:

p = ttest_ind(iris['sepal-length'],iris['sepal-width'])

Es decir indicamos primero en donde queremos sacar el mean, y le ponemos la funcion mean, en vez de llamar el mean y luego decir donde queremos ver.

Les dejo el código del ejemplo que se trata en este video

Consigna:
Para obtener que los alimentos tengan una buena asimilación deben de tener un PH menos a 7, es por eso que se analizaron 13 muestras de un alimento obteniendo los siguientes resultados, ¿Se puede decir estadísticamente con un nivel de confianza de 95% que este alimento es apto para el consumo humano?

import pandas as pd
import numpy as np

""" Ejercicio video Yt """

muestra_1 = [6.4,5.3,8.2,7.6,4.7,6.4,7.2,7.1,6.4,5.7,8.1,6.7,7.2]
muestra_1 = pd.Series(muestra_1)
muestra_1_list = list(muestra_1) 

mu = 7
muestra_1_mean = muestra_1.mean()
muestra_1_std = muestra_1.std()
muestra_1_var = muestra_1.var()
muestra_1_cant = muestra_1.count()
muestra_Grado_libertad = muestra_1_cant -1

t_test = (muestra_1_mean - mu) / (muestra_1_std / np.sqrt(muestra_1_cant))
t_test = round(t_test,3)


print(f """
Muestra: {muestra_1_list} \n

H0 = mu < 7
H1 = mu > 7 \n

Nivel de Confianza: 95%\n
Nivel de Significancia: 5%\n
t table: 1.78\n
Mu: {mu}\n
Media: {muestra_1_mean} \n
Desviación estándar: {muestra_1_std} \n
Varianza: {muestra_1_var} \n
n: {muestra_1_cant}  \n
GL: {muestra_Grado_libertad}  \n
t_test: {t_test} \n


Conclusión:
Al ser el t test ({t_test}) < (1.78) valor crítico obtenido en t table
No se rechaza Ho -> es un alimento apto para el consumo
""")

Solo para hacer notar un punto, la media de la distribución y la media muestral no son lo mismo. De la misma forma que la desviación estándar y la desviación muestral. Hay un concepto que tal vez este fuera del alcance de este curso, que son los grados de libertad que hace que el cálculo sea un poquito diferente para cada caso.

Les dejo este canal de You-Tube que me aclaro muchas cosas (en inglés): https://www.youtube.com/c/zedstatistics