Calcular la Varianza en C

CCBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio (lab), aprenderás cómo calcular la varianza de un conjunto de números en C. El laboratorio cubre tres pasos principales: calcular la media, calcular la suma de los cuadrados de las desviaciones con respecto a la media y dividir la suma entre la cantidad de números para obtener la varianza. El laboratorio proporciona ejemplos de código detallados y explicaciones para guiarte a través del proceso de implementar estos cálculos estadísticos en C.

El laboratorio comienza demostrando cómo calcular la media de un conjunto de números, que es un paso crucial en el cálculo de la varianza. Luego muestra cómo calcular la suma de los cuadrados de las desviaciones con respecto a la media y, finalmente, cómo dividir la suma entre la cantidad de números para obtener la varianza. Siguiendo las instrucciones paso a paso, adquirirás una sólida comprensión de cómo realizar estas operaciones estadísticas utilizando el lenguaje de programación C.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL c(("C")) -.-> c/ControlFlowGroup(["Control Flow"]) c(("C")) -.-> c/CompoundTypesGroup(["Compound Types"]) c(("C")) -.-> c/FunctionsGroup(["Functions"]) c(("C")) -.-> c/UserInteractionGroup(["User Interaction"]) c/ControlFlowGroup -.-> c/for_loop("For Loop") c/CompoundTypesGroup -.-> c/arrays("Arrays") c/FunctionsGroup -.-> c/math_functions("Math Functions") c/UserInteractionGroup -.-> c/output("Output") subgraph Lab Skills c/for_loop -.-> lab-435167{{"Calcular la Varianza en C"}} c/arrays -.-> lab-435167{{"Calcular la Varianza en C"}} c/math_functions -.-> lab-435167{{"Calcular la Varianza en C"}} c/output -.-> lab-435167{{"Calcular la Varianza en C"}} end

Calcular la Media

En este paso, aprenderás cómo calcular la media de un conjunto de números en C. La media se calcula sumando todos los valores y dividiendo por la cantidad total de números.

Primero, crea un nuevo archivo C para implementar el cálculo de la media:

cd ~/project
nano mean.c

Ahora, escribe el siguiente código C para calcular la media:

#include <stdio.h>

int main() {
    int numbers[] = {10, 20, 30, 40, 50};
    int count = sizeof(numbers) / sizeof(numbers[0]);
    int sum = 0;

    // Calculate sum of all numbers
    for (int i = 0; i < count; i++) {
        sum += numbers[i];
    }

    // Calculate mean
    float mean = (float)sum / count;

    printf("Numbers: ");
    for (int i = 0; i < count; i++) {
        printf("%d ", numbers[i]);
    }
    printf("\nCount: %d\n", count);
    printf("Sum: %d\n", sum);
    printf("Mean: %.2f\n", mean);

    return 0;
}

Compila y ejecuta el programa:

gcc mean.c -o mean
./mean

Ejemplo de salida:

Numbers: 10 20 30 40 50
Count: 5
Sum: 150
Mean: 30.00

Analicemos el código:

  • Definimos un arreglo de enteros numbers
  • Calculamos la cantidad de números utilizando sizeof()
  • Usamos un bucle for para calcular la suma de todos los números
  • Calculamos la media dividiendo la suma entre la cantidad
  • Imprimimos los números, la cantidad, la suma y la media

Sumar (x - media)² y Dividir por la Cantidad

En este paso, aprenderás cómo calcular la varianza calculando la suma de los cuadrados de las desviaciones con respecto a la media y dividiendo por la cantidad de números.

Primero, modifica el archivo mean.c anterior para incluir el cálculo de la varianza:

cd ~/project
nano variance.c

Escribe el siguiente código C para calcular la varianza:

#include <stdio.h>
#include <math.h>

int main() {
    int numbers[] = {10, 20, 30, 40, 50};
    int count = sizeof(numbers) / sizeof(numbers[0]);
    int sum = 0;
    float mean, variance = 0.0;

    // Calculate sum and mean
    for (int i = 0; i < count; i++) {
        sum += numbers[i];
    }
    mean = (float)sum / count;

    // Calculate sum of squared deviations
    for (int i = 0; i < count; i++) {
        variance += pow(numbers[i] - mean, 2);
    }

    // Divide by count to get variance
    variance /= count;

    printf("Numbers: ");
    for (int i = 0; i < count; i++) {
        printf("%d ", numbers[i]);
    }
    printf("\nMean: %.2f\n", mean);
    printf("Variance: %.2f\n", variance);

    return 0;
}

Compila y ejecuta el programa con la biblioteca matemática:

gcc variance.c -o variance -lm
./variance

Ejemplo de salida:

Numbers: 10 20 30 40 50
Mean: 30.00
Variance: 200.00

Pasos clave en el cálculo de la varianza:

  • Calcular la media (del paso anterior)
  • Restar la media de cada número
  • Elevar al cuadrado las diferencias
  • Sumar los cuadrados de las diferencias
  • Dividir por la cantidad de números

Imprimir la Varianza

En este paso, aprenderás cómo formatear e imprimir el cálculo de la varianza con diferentes niveles de precisión y crear una función para hacer el código más modular.

Modifica el archivo variance.c anterior para mejorar la impresión de la varianza:

cd ~/project
nano variance_print.c

Escribe el siguiente código C para mejorar la salida de la varianza:

#include <stdio.h>
#include <math.h>

// Function to calculate variance
float calculate_variance(int numbers[], int count) {
    int sum = 0;
    float mean, variance = 0.0;

    // Calculate sum and mean
    for (int i = 0; i < count; i++) {
        sum += numbers[i];
    }
    mean = (float)sum / count;

    // Calculate sum of squared deviations
    for (int i = 0; i < count; i++) {
        variance += pow(numbers[i] - mean, 2);
    }

    // Divide by count to get variance
    variance /= count;

    return variance;
}

// Function to print variance with different formats
void print_variance(float variance) {
    printf("Variance Representations:\n");
    printf("1. Standard Format:   %.2f\n", variance);
    printf("2. Scientific Notation: %e\n", variance);
    printf("3. Precise Format:    %.4f\n", variance);
}

int main() {
    int numbers[] = {10, 20, 30, 40, 50};
    int count = sizeof(numbers) / sizeof(numbers[0]);

    // Calculate and print variance
    float variance = calculate_variance(numbers, count);

    printf("Original Numbers: ");
    for (int i = 0; i < count; i++) {
        printf("%d ", numbers[i]);
    }
    printf("\n\n");

    print_variance(variance);

    return 0;
}

Compila y ejecuta el programa:

gcc variance_print.c -o variance_print -lm
./variance_print

Ejemplo de salida:

Original Numbers: 10 20 30 40 50

Variance Representations:
1. Standard Format:   200.00
2. Scientific Notation: 2.000000e+02
3. Precise Format:    200.0000

Mejoras clave:

  • Se crearon funciones separadas para el cálculo de la varianza
  • Se agregaron múltiples formatos de impresión de la varianza
  • Se demostraron diferentes formas de representar la varianza

Resumen

En este laboratorio (lab), aprendiste cómo calcular la media de un conjunto de números en C sumando todos los valores y dividiendo por la cantidad total. Luego, aprendiste cómo calcular la varianza calculando la suma de los cuadrados de las desviaciones con respecto a la media y dividiendo por la cantidad de números. Esto te permite medir la dispersión de los datos alrededor de la media, que es una métrica útil para el análisis estadístico.