Lois de répartitions sous R

L'essentiel de cette page

On peut simuler les données sous R selon différentes lois de répartitions.

Pour chaque loi, on a une fonction commençant par d, une par p, une par q et l'autre par r.

Ces lois de répartitions peuvent aussi être contrôlées par différents graphiques et tests disponibles à cette page.

Loi beta permet de modéliser des courbes très diverses de probabilité entre 0 et 1.

On peut l'adapter ainsi pour faire des simulations de données en fixant les valeurs min, max, l'écart-type, le mode, comme dans cet exemple :

# Fonction pour générer des données beta avec transformation

generate_custom_data <- function(min_val, max_val, mode_val, sd_val, n) {

  # Calculer les paramètres alpha et beta de la distribution beta

  range_val <- max_val - min_val

  mean_val <- (min_val + max_val + mode_val) / 3

  variance <- sd_val^2

  alpha <- (mean_val - min_val) * (2 * (max_val - mean_val) / variance - 1)

  beta <- alpha * (max_val - mean_val) / (mean_val - min_val)

  

  # Vérifier que alpha et beta sont valides

  if (alpha <= 0 | beta <= 0) {

    stop("Les paramètres calculés pour alpha et beta ne sont pas valides.")

  }

  

  # Générer les données beta

  beta_data <- rbeta(n, alpha, beta)

  

  # Transformer les données beta pour correspondre à [min_val, max_val]

  data <- min_val + range_val * beta_data

  return(data)

}


# Définir les paramètres

min_val <- 1

max_val <- 10

mode_val <- 8

sd_val <- 2 # exemple d'écart-type

n <- 1000 # taille du vecteur


# Générer le vecteur de données

data <- generate_custom_data(min_val, max_val, mode_val, sd_val, n) ; hist(data)


Loi triangulaire

Une répartition triangulaire permet de fixer le minimum, le maximum et la place du sommet (mode).

library(triangle)


# Définir les paramètres

min_val <- 1

max_val <- 10

mode_val <- 5

n <- 1000 # taille du vecteur


# Générer le vecteur de données

data <- rtriangle(n, a = min_val, b = max_val, c = mode_val)


hist(data)