# data[].attributes.body
En probabilidad y estadística, la covarianza es una medida de la variabilidad conjunta de dos variables aleatorias. Es una medida de cómo dos variables aleatorias tienden a variar juntas.

La covarianza se define como el valor esperado del producto de las desviaciones de las dos variables aleatorias respecto a sus medias.

La covarianza puede ser positiva, negativa o cero.

# data[].attributes.attachment_link.readable_text
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Thu Jan 25 18:35:49 2024

@author: vicvoid
"""

import numpy as np
import matplotlib.pyplot as plt

# Datos de ejercicio realizado (en horas) y p��rdida de peso (en kg)
ejercicio_realizado = [2, 3, 4, 5, 6]
perdida_peso = [1, 2, 3, 4, 5]

# Calcular la covarianza
covarianza = np.cov(ejercicio_realizado, perdida_peso)[0, 1]

# Imprimir el resultado
print(f'Covarianza: {covarianza}')

# Interpretaci��n
if covarianza > 0:
    print('Hay una covarianza positiva. A medida que aumenta el ejercicio, generalmente, la p��rdida de peso tambi��n aumenta.')
else:
    print('No hay una covarianza positiva significativa.')

# Crear un scatter plot
plt.scatter(ejercicio_realizado, perdida_peso, color='blue', label='Datos')

# A��adir etiquetas y t��tulo
plt.xlabel('Ejercicio Realizado (horas)')
plt.ylabel('P��rdida de Peso (kg)')
plt.title('Relaci��n entre Ejercicio Realizado y P��rdida de Peso')

# Mostrar la leyenda
plt.legend()

# Mostrar el gr��fico
plt.show()

# data[].attributes.body
La función de densidad de probabilidad de una variable aleatoria es una función que representa la probabilidad de que la variable aleatoria tome un valor dado. La función de distribución de probabilidad es una función que representa la probabilidad de que la variable aleatoria tome un valor menor o igual a un determinado valor.

# data[].attributes.body
Este concepto se refiere a la definición formal de la probabilidad, basada en un conjunto de axiomas.

La probabilidad se puede utilizar para:

Describir la distribución de los datos.

Realizar inferencias sobre los datos.

Modelar fenómenos aleatorios.

Por ejemplo

En el análisis de datos, la probabilidad se utiliza para describir la distribución de los datos.

En el modelado estadístico, la probabilidad se utiliza para crear modelos que describen la relación entre las variables.

# data[].attributes.headline
Estimación de parámetros por máxima verosimilitud

# data[].attributes.subject
Estimación de parámetros por máxima verosimilitud

# data[].attributes.body
Este método se utiliza para estimar los parámetros de una distribución de probabilidad a partir de datos. La función de verosimilitud es una función que mide la probabilidad de que los datos se generen a partir de una distribución de probabilidad con determinados parámetros.

La verosimilitud es importante porque se utiliza en una variedad de aplicaciones estadísticas, incluyendo:

Inferencia estadística. Para estimar la media de una población o la varianza de una población.

Modelado estadístico. Para seleccionar el modelo estadístico más adecuado para un conjunto de datos.

# data[].attributes.attachment_link.readable_text
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Verosimilitud
"""

import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import poisson
from scipy.optimize import minimize

# Generar datos ficticios de ventas mensuales
np.random.seed(42)
meses = np.arange(1, 13)
ventas_reales = np.random.poisson(lam=10 * meses)  # Modelo de crecimiento

# Definir la funci��n de verosimilitud para una distribuci��n de Poisson
def likelihood(lam):
    pmf_values = poisson.pmf(ventas_reales, lam)
    return -np.sum(np.log(pmf_values))

# Estimaci��n de m��xima verosimilitud (MLE)
initial_guess = [10]  # Valor inicial para la tasa de llegada (lambda)
result = minimize(likelihood, initial_guess, method='Nelder-Mead')
lam_estimado = result.x[0]

# Graficar los resultados
plt.figure(figsize=(12, 6))

# Gr��fico de las ventas reales
plt.subplot(2, 1, 1)
plt.plot(meses, ventas_reales, 'bo-', label='Ventas reales')
plt.title('Ventas Mensuales de Motocicletas')
plt.xlabel('Mes')
plt.ylabel('Ventas reales')
plt.legend()

# Gr��fico de distribuci��n de Poisson
plt.subplot(2, 1, 2)
plt.bar(np.arange(0, max(ventas_reales) + 1), poisson.pmf(np.arange(0, max(ventas_reales) + 1), lam_estimado), color='blue', alpha=0.7, label=f'Distribuci��n Poisson (MLE $\lambda={lam_estimado:.2f}$)')
plt.hist(ventas_reales, bins=np.arange(0, max(ventas_reales) + 2) - 0.5, density=True, color='green', alpha=0.7, label='Histograma de ventas reales')
plt.title('Distribuci��n de Poisson y Datos Reales')
plt.xlabel('Ventas mensuales')
plt.ylabel('Probabilidad / Frecuencia')
plt.legend()

plt.tight_layout()
plt.show()

# data[].attributes.body
La esperanza de una variable aleatoria es el valor promedio que toma la variable aleatoria.

La varianza de una variable aleatoria es una medida de la dispersión de los valores que toma la variable aleatoria.

La esperanza y la varianza son importantes porque proporcionan información sobre la distribución de una variable aleatoria. La esperanza se puede utilizar para describir el valor central de la distribución, mientras que la varianza se puede utilizar para describir la dispersión de los datos alrededor de la media.

En la industria, la esperanza y la varianza se pueden utilizar para calcular el costo esperado de un producto o servicio.

# data[].attributes.body
Una variable aleatoria es una función que asigna un valor numérico a cada resultado posible de un experimento.

Importancia

Describir la distribución de los datos.

Realizar inferencias sobre los datos.

Modelar fenómenos aleatorios.

Ejemplos de variables aleatorias

El número de caras que sale al lanzar una moneda.

La altura de una persona.

El tiempo que tarda un cliente en ser atendido en una tienda.

# data[].attributes.attachment_link.readable_text
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Thu Jan 18 20:25:51 2024

@author: vicvoid
Variable Aleatoria Discreta:
"""

import numpy as np
import matplotlib.pyplot as plt

# Supongamos que modelamos el n��mero de nuevos casos diarios de COVID-19
# utilizando una distribuci��n de Poisson.

np.random.seed(42)

# Par��metro de la distribuci��n de Poisson (lambda)
lambda_parameter = 5

# Generar 1000 muestras de la variable aleatoria discreta (nuevos casos diarios)
new_cases = np.random.poisson(lambda_parameter, size=1000)

# Visualizar la distribuci��n de nuevos casos diarios
plt.hist(new_cases, bins=20, density=True, alpha=0.7, color='blue', edgecolor='black')
plt.title('Distribuci��n de Nuevos Casos Diarios (Variable Aleatoria Discreta)')
plt.xlabel('N��mero de Nuevos Casos')
plt.ylabel('Frecuencia Relativa')
plt.show()