Medir deja una lista. La lista no se discute entera en voz alta: se resume. Esta lección usa dos resúmenes y un dibujo. Nada de contraste de hipótesis ni de p-valores: eso es otra asignatura.
La media es el centro aritmético: suma de los valores partida por el número de datos. No es «el valor de en medio» (eso sería la mediana) ni «el que más se repite» (la moda). Una media sin dispersión esconde si todos los datos estaban juntos o si uno extremo la arrastra.
La dispersión que vas a calcular es el rango: máximo menos mínimo. Es tosco (dos números mandan y el resto no entra), y precisamente por eso se ve en un dibujo. Si además pintas cada dato, ves el solapamiento. Dos grupos pueden tener medias distintas y, aun así, compartir individuos.
Un gráfico toca el argumento cuando se puede leer sin el párrafo: magnitud, unidad, datos y una referencia. Un eje cortado no cambia la media y sí cambia el drama visual. Para longitudes, partir de cero es el defecto honesto. Si cortas, lo escribes en el pie.
Escala aproximada para leer el argumento: el grupo de agua queda más alto y los dos se acercan en la zona de 12 a 15 mm. El punto alto del agua (23 mm) tira de la media; por eso la media no sustituye a los puntos.
Problema con datos de ejemplo (radícula de lenteja a los 7 días, mm). No salen de un aula.
La lección 03 envía temperatura y humedad del DHT22 como líneas temperatura,humedad. Aquí esas líneas se leen por serial y se pasan a una tabla para calcular la media. La medición con placa se ve al entrar.
El sketch de Arduino es el mismo DHT22 de la lección 03 (pin 2, pausa de 2 s, CSV por el puerto serie a 9600 baudios). En la Pi, pyserial tiene que estar ya instalado. Puerto habitual: /dev/ttyACM0 (o /dev/ttyUSB0 si el conversor es un CH340). La tabla de números que aparece debajo del código es datos de ejemplo del formato, no una serie medida en un aula.
// Mismo DHT22 que en la lección 03. Una línea por lectura.
#include <DHT.h>
#define PIN_DATOS 2
#define TIPO DHT22
DHT dht(PIN_DATOS, TIPO);
void setup() {
Serial.begin(9600);
dht.begin();
}
void loop() {
delay(2000);
float t = dht.readTemperature();
float h = dht.readHumidity();
if (isnan(t) || isnan(h)) {
Serial.println("error");
return;
}
Serial.print(t, 1);
Serial.print(",");
Serial.println(h, 1);
}
# Cinco lecturas válidas -> tabla y media de temperatura.
import serial
filas = []
with serial.Serial("/dev/ttyACM0", 9600, timeout=3) as puerto:
while len(filas) < 5:
linea = puerto.readline().decode("utf-8", errors="replace").strip()
if not linea or linea == "error" or "," not in linea:
continue
t_txt, h_txt = linea.split(",", 1)
filas.append((float(t_txt), float(h_txt)))
print("n\ttemperatura_C\thumedad_pct")
for i, (t, h) in enumerate(filas, start=1):
print(f"{i}\t{t:.1f}\t{h:.1f}")
media_t = sum(t for t, _ in filas) / len(filas)
print(f"media_temperatura\t{media_t:.1f}")
Forma de la tabla, con datos de ejemplo (no los midas en el examen como si fueran tuyos):
| n | temperatura (°C) | humedad (%) |
|---|---|---|
| 1 | 21,4 | 48,0 |
| 2 | 21,6 | 47,5 |
| 3 | 21,5 | 49,0 |
| 4 | 22,0 | 46,5 |
| 5 | 21,8 | 47,0 |
Media de temperatura:
21,4 + 21,6 + 21,5 + 22,0 + 21,8 = 108,3
108,3 / 5 = 21,66, redondeado a 21,7 °C
Media de humedad:
48,0 + 47,5 + 49,0 + 46,5 + 47,0 = 238,0
238,0 / 5 = 47,6 % Cinco lecturas seguidas del mismo sensor no son cinco réplicas: es la dispersión de un solo aparato en unos minutos.
En la vida real
Cuando un trabajo de instituto enseña solo la media, el lector no ve si un dato raro la arrastra. Pide los puntos o, al menos, el máximo y el mínimo. Eso vale para una práctica de lentejas y también para una gráfica que te enseñen en un folleto: mira dónde empieza el eje antes de creerte el salto.
Si el marco no carga (file://), abre l04-analisis-de-resultados.html.
Respuesta. Porque la media usa todos los valores y el 23 mm la sube. La moda solo mira qué número se repite.
Por qué: resumir con la moda escondería ese punto alto. Por eso, si das la media, enseñas también el rango.
Respuesta. No siempre: a veces se quiere ver una variación pequeña y el corte se declara. En una longitud que comparas de un vistazo, el cero es la opción por defecto.
Por qué: el problema no es cortar, es cortar para que la diferencia parezca enorme y no avisarlo.
Respuesta. No. En los datos de ejemplo las medias se separan. No hay una población detrás ni un contraste formal.
Por qué: esta lección describe el ejemplo. Generalizar a todas las lentejas sería saltarse el diseño de la lección 03 y inventar un alcance.
Dibuja el corte del eje del gráfico de la lección y marca los puntos y la media.
Media para el centro, rango y puntos para la dispersión. 16,5 mm frente a 10 mm en el ejemplo, con solapamiento entre 12 y 15. El eje cortado no cambia la cuenta y sí el susto. Sin p-valores.
Con la serie del agua (12, 14, 15, 15, 16, 18, 19, 23 mm), dibuja los ocho puntos desde cero y marca la media. Escribe el rango. Añade una frase que dirías si alguien te enseña las mismas medias con el eje empezando en 14 mm.
reto_id: bach1-bgca-L04