Saltar navegación

Linguaxes de programación

Python e R

Os linguaxes de programación, como Python ou R, son ferramentas potentes para o cálculo e a simulación de probabilidade. Permítennos crear algoritmos personalizados e realizar análises estatísticas complexas.

  • Python é unha linguaxe de programación amplamente utilizado. É eficiente e fácil de aprender, ademais de que se pode executar en moitas plataformas diferentes. Python utiliza librarías especializadas para ciencia de datos e simulación de procesos estocásticos (NumPy, SciPy, SimPy, Pandas). Algunhas das súas principais características son:
    • Sinxela e fácil de aprender, con unha sintaxe limpa e lexible.
    • Linguaxe interpretada, de código aberto e multiplataforma (Windows, Mac, Linux).
    • Conta con unha gran cantidade de librerías e módulos para diferentes tarefas como:
      • Análise de datos (NumPy, Pandas, etc.) 
      • Aprendizaxe automática e intelixencia artificial (TensorFlow, Scikit-learn, etc.).
      • Desenvolvemento web (Django, Flask, etc.) 
    • Moi versátil, utilizada en ámbitos como ciencia de datos, intelixencia artificial, desenvolvemento web, scripting, automatización, etc.
    • Conta cunha gran e activa comunidade de desenvolvedores.
    •  Moi popular para ensinar programación debido á súa simplicidade.
    • O software Python pódese descargar gratis en: https://www.python.org/downloads/

Aínda que Python non está deseñado especificamente para análise estatística, con librerías como NumPy, Pandas, SciPy e outras, convértese nunha linguaxe moi poderosa para traballar con datos e facer cálculos numéricos.

  • é unha contorna e linguaxe de programación aberto, libre e gratis que proporciona unha variedade de técnicas estatísticas e gráficas. Algunhas das súas principais características son:
    • Ofrece unha ampla variedade de técnicas estatísticas, desde estatística básica ata modelos lineais, series temporais, minería de datos, aprendizaxe automática, etc.
    • É unha linguaxe de programación orientada a obxectos que permite realizar análises reproducibles e personalizadas.
    • Permite importar e traballar con datos en case calquera formato (CSV, Excel, bases de datos, JSON, etc.)
    • Conta con máis de 10.000 paquetes/librerías contribuídos pola comunidade para tarefas específicas.
    • Posúe excelentes capacidades gráficas para crear visualizacións de datos de alta calidade.
    • Facilita a integración con outras linguaxes como C, C++, Python, etc.
    • Conta cunha gran e activa comunidade de usuarios en todo o mundo.
    • O software R pódese descargar gratis en: https://www.r-project.org/

R destaca pola súa versatilidade, potencia estatística, natureza de código aberto e ampla gama de recursos dispoñibles. É moi popular en investigación académica, ciencia de datos, bioloxía computacional e moitos outros campos.

  • Nun programa, cando falamos de "obxectos", estamos falando de "construcións" específicas creadas seguindo as instrucións dunha "clase".
  • Se a clase é un "Teléfono Móbil" que ten características como marca, modelo e cor, e pode facer accións como chamar ou enviar mensaxes, entón un obxecto sería un teléfono móbil específico que tes, digamos, un "iPhone 12" de cor "negra". Este teléfono en particular é o teu "obxecto", creado a partir da clase "Teléfono Móbil" con detalles específicos (marca, modelo, cor) e capaz de realizar accións (chamar, enviar mensaxes).

Exemplos con Python

Scipy é unha potente biblioteca en Python que proporciona moitas funcións útiles para a computación científica. Un dos seus submódulos, scipy. stats, contén unha variedade de funcións estatísticas e distribucións de probabilidade que se utilizan comunmente na análise de datos. Pódese obter unha lista bastante completa destas funcións utilizando info(stats).

Distribucións discretas

  • Binomial

from scipy.stats import binom

binom.cdf(k, n, p) permítenos calcular probabilidades acumuladas ata k, \(P(X\leq k)\).

binom.sf(k, n, p) = permítenos calcular \(P(X>k)\). É quivalente a calcular 1 - cdf(x)

pmf(k, n, p) devolve a probabilidade de que X=k, \(P(X=k)\).

  • Poisson

from scipy.stats import binom

poisson.cdf(k, λ ) permítenos calcular probabilidades acumuladas ata k, \(P(X\leq k)\).

poisson.sf(k, λ ) permítenos calcular \(P(X>k)\)

Exemplos Binomial

Se \(X \sim B(10, 0.2)\)

Primeiro, asegurarse de ter instalado a biblioteca scipy. Se non se ten instalada, pódese facer usando pip install scipy.

1.  \(P(X=3)\)

from scipy.stats import binom

# Cálculo de probabilidad
resultado = binom.pmf(k=3, n=10, p=0.2)

# Resultado
print("Probabilidad: ",resultado)

Resultado:  0.201326592

2. \(P(X\leq 3)\)

from scipy.stats import binom

# Cálculo de probabilidad
resultado = binom.cdf(k=3, n=10, p=0.2)

# Resultado
print("Probabilidad: ",resultado)

Resultado: 0.8791261184

Distribucións continuas

  • Normal

from scipy.stats import norm

\(P(X\leq x)\): norm.cdf(x, loc=0, scale=1)

\(P(X>x)\): norm.sf(x, loc=0, scale=1) (tamén definida como 1 - cdf, pero sf ás veces é máis precisa).

  • Exponencial

from scipy.stats import expon

\(P(X\leq x)\): expon.cdf(x, loc=0, scale=1)

\(P(X\leq x)\): expon.sf(x, loc=0, scale=1) 

Exemplos Normal

Primeiro, asegurarse de ter instalado a biblioteca scipy. Se non se ten instalada, pódese facer usando pip install scipy.

1. \(P(X\leq 2.13)\) nunha N(0, 1)

from scipy.stats import norm

# Cálculo de probabilidad
resultado = norm.cdf(2.13, 0, 1)

# Resultado
print("Probabilidad: ",resultado)

Resultado:  0,983414193

2. \(P(X\leq 35)\) nunha N(30, 4)

from scipy.stats import norm

# Cálculo de probabilidad
resultado = norm.cdf(35, 30, 4)

# Resultado
print("Probabilidad: ",resultado)

Resultado:  0.894350226

Exemplos con R

Como xa se comentou, en R todo é un obxecto. Ademais, todos os obxectos teñen un nome para identificalos.

Binomial

Se X segue unha distribución binomial B(n,p).

1. Para calcular a probabilidade de obter un número concreto de éxitos P(X=x): dbinom(x, size=n, prob=p)

2. Para calcular a probabilidade P[X ≤ x]: pbinom(x, size=n, prob=p, lower.tail = TRUE)

3. Para calcular a probabilidade P[X > x]: pbinom(x, size=n, prob=p, lower.tail = FALSE)

Os parámetros anteriores refírense a:
x, é o número de éxitos
size, é o número de fases do experimento (n).
prob, é a probabilidade de éxito (p).

Exemplos

Se \(X \sim B(10, 0.2)\)

1.  \(P(X=3)\)

# Cálculo de probabilidad
resultado = dbinom(3, size=10, prob=0.2)

# Mostra a probabilidade
print("Probabilidad: ",resultado)

Resultado:  0.201326592

2. \(P(X\leq 3)\)

# Cálculo de probabilidad
resultado = pbinom(3, size=10, prob=0.2, lower.tail = TRUE) 

# Mostra a probabilidade
print("Probabilidad: ",resultado)

Resultado: 0.8791261184

Normal

Se X segue unha distribución normal N(μ,σ), entón:

1. Para calcular a probabilidadeP[X ≤ x]: pnorm(x, mean=media, sd=desv.tip, lower.tail = TRUE)

2. Para calcular a probabilidade P[X > x]: pnorm(x, mean=media, sd=desv.tip, lower.tail = FALSE)

Nota: se non se especifica os valores de µ e σ, R tomará por defecto µ = 0 e σ = 1.

Exemplos

Se \(X \sim N(30, 4)\)

1. \(P(X\leq 35)\)

# Cálculo de probabilidad
resultado = pnorm(35, mean=30, sd=4, lower.tail = TRUE)

# Resultado
print("Probabilidad: ",resultado)

Resultado:  0.894350226

2. \(P(X > 35)\) 

# Cálculo de probabilidad
resultado = pnorm(35, mean=30, sd=4, lower.tail = FALSE)

# Resultado
print("Probabilidad: ",resultado)

Resultado:  0.105649774

Feito con eXeLearning (Nova xanela)