<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Silnice v číslech</title><link>https://silnicevcislech.cz/tags/centrum-dopravn%C3%ADho-v%C3%BDzkumu/</link><description/><generator>Hugo 0.139.3</generator><language>cs</language><managingEditor>Eduard Šubert</managingEditor><lastBuildDate>Tue, 21 Jul 2026 12:58:28 +0100</lastBuildDate><atom:link href="https://silnicevcislech.cz/tags/centrum-dopravn%C3%ADho-v%C3%BDzkumu/feed.xml" rel="self" type="application/rss+xml"/><item><title>Kdo sbírá nejvíce bodů?</title><link>https://silnicevcislech.cz/posts/bodove-hodnoceni/2025/</link><pubDate>Tue, 21 Jul 2026 12:58:28 +0100</pubDate><guid>https://silnicevcislech.cz/posts/bodove-hodnoceni/2025/</guid><description><![CDATA[
<script src="https://d3js.org/d3.v7.min.js"></script>
<style>
[data-chart-tooltip] { cursor: pointer; transition: filter 0.15s; }
[data-chart-tooltip]:hover, .chart-tooltip-active { filter: brightness(1.15); }
/* Labels drawn over bars/segments must not swallow taps and hovers */
.chart svg text { pointer-events: none; }
#chart-tooltip {
    position: fixed;
    display: none;
    pointer-events: none;
    z-index: 1000;
    max-width: 18rem;
    padding: 0.35rem 0.6rem;
    border-radius: 0.25rem;
    background: var(--tag-bg);
    color: var(--tag-text);
    border: 1px solid var(--border);
    font-size: 0.85rem;
    white-space: nowrap;
}
</style>

<script>
(function () {
    if (window.__chartTooltipInit) return;
    window.__chartTooltipInit = true;

    let tooltipEl = null;
    let currentTarget = null;
    let shownByTouch = false;

    function targetOf(event) {
        return event.target.closest ? event.target.closest("[data-chart-tooltip]") : null;
    }

    function show(target, clientX, clientY, isTouch) {
        if (!tooltipEl) {
            tooltipEl = document.createElement("div");
            tooltipEl.id = "chart-tooltip";
            document.body.appendChild(tooltipEl);
        }
        tooltipEl.textContent = target.getAttribute("data-chart-tooltip");
        tooltipEl.style.display = "block";
        const rect = tooltipEl.getBoundingClientRect();
        const left = Math.max(4, Math.min(clientX - rect.width / 2, window.innerWidth - rect.width - 4));
        // Offset above the pointer; larger for touch so the finger doesn't cover it
        let top = clientY - rect.height - (isTouch ? 24 : 12);
        if (top < 4) top = clientY + 16;
        tooltipEl.style.left = `${left}px`;
        tooltipEl.style.top = `${top}px`;
        if (currentTarget && currentTarget !== target) currentTarget.classList.remove("chart-tooltip-active");
        target.classList.add("chart-tooltip-active");
        currentTarget = target;
        shownByTouch = isTouch;
    }

    function hide() {
        if (tooltipEl) tooltipEl.style.display = "none";
        if (currentTarget) currentTarget.classList.remove("chart-tooltip-active");
        currentTarget = null;
        shownByTouch = false;
    }

    document.addEventListener("pointerover", (e) => {
        if (e.pointerType === "touch") return;
        const t = targetOf(e);
        if (t) show(t, e.clientX, e.clientY, false);
    });

    document.addEventListener("pointermove", (e) => {
        if (e.pointerType === "touch" || !currentTarget) return;
        if (targetOf(e) === currentTarget) show(currentTarget, e.clientX, e.clientY, false);
    });

    document.addEventListener("pointerout", (e) => {
        // On touch, pointerout fires on finger lift and must not hide the tooltip
        if (e.pointerType === "touch" || !currentTarget) return;
        const related = e.relatedTarget && e.relatedTarget.closest
            ? e.relatedTarget.closest("[data-chart-tooltip]")
            : null;
        if (targetOf(e) === currentTarget && related !== currentTarget) hide();
    });

    // Tap handler: a scroll gesture fires pointercancel instead, so pointerup
    // only arrives for genuine taps — no preventDefault needed
    document.addEventListener("pointerup", (e) => {
        if (e.pointerType !== "touch") return;
        const t = targetOf(e);
        if (t && t === currentTarget && shownByTouch) {
            hide();
        } else if (t) {
            show(t, e.clientX, e.clientY, true);
        } else {
            hide();
        }
    });

    document.addEventListener("scroll", () => {
        if (shownByTouch) hide();
    }, { capture: true, passive: true });

    window.addEventListener("resize", hide);

    document.addEventListener("keydown", (e) => {
        if (e.key === "Escape") hide();
    });
})();
</script>


<script>
(function () {
    if (window.registerChart) return;

    const draws = [];
    window.registerChart = function (fn) {
        draws.push(fn);
        fn();
    };

    // Mobile browsers fire resize when the URL bar shows/hides while
    // scrolling; only a width change warrants a redraw
    let lastWidth = window.innerWidth;
    let timer;
    window.addEventListener("resize", () => {
        clearTimeout(timer);
        timer = setTimeout(() => {
            if (window.innerWidth === lastWidth) return;
            lastWidth = window.innerWidth;
            draws.forEach(fn => fn());
        }, 200);
    });
})();
</script>


<style>
.gender-donut-bg { fill: #d0ebf2; }
.gender-ring-bg  { fill: #c0dde8; }
[data-theme=dark] .gender-donut-bg { fill: #0d3a48; }
[data-theme=dark] .gender-ring-bg  { fill: #0a2d3a; }
</style>

<script>
function drawGenderChart(elementId) {
    d3.select(`#${elementId} .chart > *`).remove();

    const container = d3.select(`#${elementId} .chart`);
    const width = parseInt(container.style("width"));
    const height = Math.min(width * 0.35, 240);
    const vertical = window.innerWidth < window.innerHeight / 16 * 11;

    container.attr("style", `height: ${height}px;`);

    const svg = container.append("svg")
        .attr("width", width)
        .attr("height", height)
        .attr("viewBox", [0, 0, width, height])
        .attr("style", "max-width: 100%; height: auto;");

    const teal = "#04a3bd";

    const donutR = Math.min(height * 0.45, width * 0.18);
    const innerR = donutR * 0.68;
    const cy = height / 2;
    const leftCx = donutR + 15;
    const rightCx = width - donutR - 15;

    const fullRingArc = d3.arc()
        .innerRadius(innerR)
        .outerRadius(donutR)
        .startAngle(0)
        .endAngle(2 * Math.PI);

    function drawDonut(g, pct, label) {
        g.append("circle").attr("r", donutR).attr("class", "gender-donut-bg");
        g.append("path").attr("d", fullRingArc()).attr("class", "gender-ring-bg");

        const filledArc = d3.arc()
            .innerRadius(innerR)
            .outerRadius(donutR)
            .startAngle(0)
            .endAngle(pct * 2 * Math.PI);

        g.append("path").attr("d", filledArc()).attr("fill", teal);

        const pctFontSize = Math.max(donutR * 0.38, 14);
        const labelFontSize = Math.max(donutR * 0.22, 10);

        g.append("text")
            .attr("text-anchor", "middle")
            .attr("y", -labelFontSize * 0.6)
            .attr("dominant-baseline", "middle")
            .attr("font-size", pctFontSize)
            .attr("font-weight", "bold")
            .text(`${Math.round(pct * 100)} %`);

        g.append("text")
            .attr("text-anchor", "middle")
            .attr("y", pctFontSize * 0.7)
            .attr("dominant-baseline", "middle")
            .attr("font-size", labelFontSize)
            .text(label);
    }

    drawDonut(svg.append("g").attr("transform", `translate(${leftCx}, ${cy})`), 0.81, "Muži");
    drawDonut(svg.append("g").attr("transform", `translate(${rightCx}, ${cy})`), 0.19, "Ženy");

    const titleX = (leftCx + rightCx) / 2;
    const titleFontSize = Math.max(width * 0.03, 12);
    const lineHeight = titleFontSize * 1.45;

    const title = vertical ? ["Zastoupení", "pohlaví", "mezi všemi", "bodovanými", "řidiči"] : ["Zastoupení pohlaví", "mezi všemi", "bodovanými řidiči"]

    title.forEach((line, i) => {
        svg.append("text")
            .attr("x", titleX)
            .attr("y", cy + (i - (vertical ? 2 : 1)) * lineHeight)
            .attr("text-anchor", "middle")
            .attr("dominant-baseline", "middle")
            .attr("font-size", titleFontSize)
            .attr("font-weight", "bold")
            .text(line);
    });
}
</script>


<script>
function drawPieComparisonChart(elementId, datasets) {
    d3.select(`#${elementId} .chart > *`).remove();

    const czCS = d3.formatLocale({ thousands: " ", grouping: [3], decimal: ",", percent: " %" });
    const fmtPct = n => czCS.format(n < 0.1 ? ".1%" : ".0%")(n);
    const fmtNum = czCS.format(",d");

    const container = d3.select(`#${elementId} .chart`);
    const width = parseInt(container.style("width"));
    const vertical = window.innerWidth < window.innerHeight / 16 * 11;
    const n = datasets.length;

    const teal = "#04a3bd";
    const yellow = "#f0be3d";
    const gColors = { "Muži": teal, "Ženy": yellow };
    const textColors = { "Muži": "white", "Ženy": "#1c1917" };

    const fontSize = vertical
        ? Math.max(width * 0.05, 10)
        : Math.max(width * 0.025, 10);
    const titleFontSize = fontSize * 1.2;

    const pieR = vertical
        ? Math.max(width * 0.4, 85)
        : Math.max(width * 0.2, 90);

    const height = vertical
        ? pieR * 2.4 * n
        : pieR * 2.3;
    container.attr("style", `height: ${height}px;`);

    const svg = container.append("svg")
        .attr("width", width).attr("height", height)
        .attr("viewBox", [0, 0, width, height])
        .attr("style", "max-width: 100%; height: auto;");

    const pie = d3.pie().sort(null).value(d => d.value).padAngle(0.02);
    const arc = d3.arc().innerRadius(3).outerRadius(pieR).cornerRadius(4).padRadius(pieR);

    datasets.forEach(({ title, data }, i) => {
        const cx = vertical ? width * 0.5 : width * (i + 0.5) / n;
        const cy = vertical ? height * (i + 0.5) / n : height * 0.54;

        const total = d3.sum(data, d => d.value);
        const arcs = pie(data);
        const g = svg.append("g").attr("transform", `translate(${cx}, ${cy})`);

        svg.append("text")
            .attr("x", cx).attr("y", cy - pieR - 10)
            .attr("text-anchor", "middle")
            .attr("font-size", titleFontSize)
            .attr("font-weight", "bold")
            .text(title);

        g.selectAll("path").data(arcs).join("path")
            .attr("fill", d => gColors[d.data.name])
            .attr("fill-opacity", 0.85)
            .attr("d", arc)
            .attr("data-chart-tooltip", d => `${d.data.name}: ${fmtPct(d.data.value / total)} (${fmtNum(d.data.value)})`)
            .attr("aria-label", d => `${d.data.name}: ${fmtPct(d.data.value / total)} (${fmtNum(d.data.value)})`);

        arcs.forEach(d => {
            const [lx, ly] = arc.centroid(d);
            const lg = g.append("g").attr("transform", `translate(${lx}, ${ly})`);
            lg.append("text")
                .attr("text-anchor", "middle")
                .attr("dominant-baseline", "middle")
                .attr("font-size", fontSize)
                .attr("font-weight", "bold")
                .style("fill", textColors[d.data.name])
                .attr("y", -fontSize * 0.55)
                .text(d.data.name);
            lg.append("text")
                .attr("text-anchor", "middle")
                .attr("dominant-baseline", "middle")
                .attr("font-size", fontSize)
                .style("fill", textColors[d.data.name])
                .attr("y", fontSize * 0.65)
                .text(fmtPct(d.data.value / total));
        });
    });
}
</script>


<script>
function drawOwnershipChart(elementId) {
    d3.select(`#${elementId} .chart > *`).remove();

    const container = d3.select(`#${elementId} .chart`);
    const width = parseInt(container.style("width"));
    const vertical = window.innerWidth < window.innerHeight / 16 * 11;

    const keys = [
        "Vlastním a aktivně řídím",
        "Vlastním, ale neřídím",
        "Ne, nevlastním",
        "Mám řidičský průkaz odebrán",
    ];
    const colors = {
        "Vlastním a aktivně řídím":    "#375623",
        "Vlastním, ale neřídím":        "#a9d18e",
        "Ne, nevlastním":               "#ed7d31",
        "Mám řidičský průkaz odebrán": "#7030a0",
    };
    const textColors = {
        "Vlastním a aktivně řídím":    "white",
        "Vlastním, ale neřídím":        "#1c1917",
        "Ne, nevlastním":               "#1c1917",
        "Mám řidičský průkaz odebrán": "white",
    };
    const data = [
        { group: "celkem", "Vlastním a aktivně řídím": 64, "Vlastním, ale neřídím": 15, "Ne, nevlastním": 20, "Mám řidičský průkaz odebrán": 1 },
        { group: "ženy",   "Vlastním a aktivně řídím": 49, "Vlastním, ale neřídím": 21, "Ne, nevlastním": 29, "Mám řidičský průkaz odebrán": 1 },
        { group: "muži",   "Vlastním a aktivně řídím": 80, "Vlastním, ale neřídím":  9, "Ne, nevlastním": 10, "Mám řidičský průkaz odebrán": 1 },
    ];

    const fontSize = Math.max(width * 0.022, 11);
    const swatchSize = Math.round(fontSize * 0.9);
    const legendLineHeight = fontSize * 2;

    // Pre-calculate legend row height before SVG exists, then draw after
    let svg;
    function layoutLegend(draw) {
        let lx = 0, ly = 0;
        keys.forEach(key => {
            const itemWidth = swatchSize + 5 + key.length * fontSize * 0.58 + 14;
            if (lx > 0 && lx + itemWidth > width) { lx = 0; ly += legendLineHeight; }
            if (draw) {
                svg.append("rect")
                    .attr("x", lx)
                    .attr("y", ly + (legendLineHeight - swatchSize) / 2)
                    .attr("width", swatchSize).attr("height", swatchSize)
                    .attr("fill", colors[key]).attr("rx", 2);
                svg.append("text")
                    .attr("x", lx + swatchSize + 5)
                    .attr("y", ly + legendLineHeight / 2)
                    .attr("dominant-baseline", "middle")
                    .attr("font-size", fontSize * 0.85)
                    .text(key);
            }
            lx += itemWidth;
        });
        return ly + legendLineHeight;
    }

    const legendHeight = layoutLegend(false);
    const marginTop = legendHeight + 4;
    const marginBottom = 28;
    const marginLeft = Math.max(width * 0.11, 58);
    const marginRight = vertical ? 15 : 25;
    const groupHeight = Math.min(width * 0.1, 48);
    const chartHeight = data.length * groupHeight;
    const height = marginTop + chartHeight + marginBottom;

    container.attr("style", `height: ${height}px;`);
    svg = container.append("svg")
        .attr("width", width).attr("height", height)
        .attr("viewBox", [0, 0, width, height])
        .attr("style", "max-width: 100%; height: auto;");

    layoutLegend(true);

    const x = d3.scaleLinear().domain([0, 100]).range([marginLeft, width - marginRight]);
    const y = d3.scaleBand()
        .domain(data.map(d => d.group))
        .range([marginTop, marginTop + chartHeight])
        .paddingInner(0.3)
        .paddingOuter(0.1);

    const series = d3.stack().keys(keys)(data);

    // Each bar row gets a clipPath so only the bar's outer ends are rounded
    data.forEach((row, j) => {
        const clipId = `${elementId}-clip-${j}`;
        svg.append("clipPath").attr("id", clipId)
            .append("rect")
            .attr("x", x(0)).attr("y", y(row.group))
            .attr("width", x(100) - x(0)).attr("height", y.bandwidth())
            .attr("rx", 3);

        const g = svg.append("g").attr("clip-path", `url(#${clipId})`);
        series.forEach((layer, ki) => {
            const d = layer[j];
            const x0 = x(d[0]);
            const x1 = x(d[1]);
            if (x1 - x0 < 1) return;
            g.append("rect")
                .attr("x", x0).attr("y", y(row.group))
                .attr("width", x1 - x0).attr("height", y.bandwidth())
                .attr("fill", colors[keys[ki]])
                .attr("data-chart-tooltip", `${keys[ki]}: ${d[1] - d[0]} %`)
                .attr("aria-label", `${keys[ki]}: ${d[1] - d[0]} %`);
        });

        // Labels drawn outside the clip group so they aren't cropped
        series.forEach((layer, ki) => {
            const d = layer[j];
            const x0 = x(d[0]);
            const x1 = x(d[1]);
            const barW = x1 - x0;
            if (barW < fontSize * 2.2) return;
            svg.append("text")
                .attr("x", x0 + barW / 2)
                .attr("y", y(row.group) + y.bandwidth() / 2)
                .attr("text-anchor", "middle")
                .attr("dominant-baseline", "middle")
                .attr("font-size", fontSize * 0.9)
                .style("fill", textColors[keys[ki]])
                .text(`${d[1] - d[0]} %`);
        });
    });

    // X-axis: fewer ticks on vertical screens
    const tickStep = vertical ? 25 : 10;
    svg.append("g")
        .attr("transform", `translate(0, ${marginTop + chartHeight})`)
        .call(d3.axisBottom(x)
            .tickValues(d3.range(0, 101, tickStep))
            .tickFormat(d => `${d} %`)
            .tickSizeOuter(0))
        .attr("font-size", fontSize * 0.8)
        .call(g => g.select(".domain").remove());

    // Y-axis
    svg.append("g")
        .attr("transform", `translate(${marginLeft}, 0)`)
        .call(d3.axisLeft(y).tickSizeOuter(0).tickSizeInner(0))
        .attr("font-size", fontSize)
        .call(g => g.select(".domain").remove())
        .call(g => g.selectAll(".tick text").attr("x", -8).attr("text-anchor", "end"));
}
</script>


<script>
function drawPointsByGenderChart(elementId) {
    d3.select(`#${elementId} .chart > *`).remove();

    const czCS = d3.formatLocale({ thousands: " ", grouping: [3], decimal: "," });
    const fmtNum = czCS.format(",d");

    const container = d3.select(`#${elementId} .chart`);
    const width = parseInt(container.style("width"));

    const teal = "#04a3bd";
    const yellow = "#f0be3d";
    const colors = { "Muži": teal, "Ženy": yellow };
    const keys = ["Muži", "Ženy"];

    const data = [
        { group: "b1",  "Muži": 6150,   "Ženy": 989   },
        { group: "b2",  "Muži": 113193, "Ženy": 36416 },
        { group: "b3",  "Muži": 13938,  "Ženy": 2156  },
        { group: "b4",  "Muži": 108444, "Ženy": 26208 },
        { group: "b5",  "Muži": 4518,   "Ženy": 525   },
        { group: "b6",  "Muži": 49408,  "Ženy": 8310  },
        { group: "b7",  "Muži": 7410,   "Ženy": 1024  },
        { group: "b8",  "Muži": 11767,  "Ženy": 1544   },
        { group: "b9",  "Muži": 2225,   "Ženy": 242   },
        { group: "b10", "Muži": 6096,   "Ženy": 697   },
        { group: "b11", "Muži": 2295,   "Ženy": 211   },
        { group: "b12", "Muži": 32895,  "Ženy": 3410  },
    ];

    const fontSize = Math.max(width * 0.022, 10);
    const labelFontSize = Math.max(width * 0.017, 8);
    const swatchSize = Math.round(fontSize * 0.9);
    const legendLineHeight = fontSize * 2;

    let svg;
    function layoutLegend(draw) {
        let lx = 0, ly = 0;
        keys.forEach(key => {
            const itemWidth = swatchSize + 5 + key.length * fontSize * 0.58 + 14;
            if (lx > 0 && lx + itemWidth > width) { lx = 0; ly += legendLineHeight; }
            if (draw) {
                svg.append("rect")
                    .attr("x", lx).attr("y", ly + (legendLineHeight - swatchSize) / 2)
                    .attr("width", swatchSize).attr("height", swatchSize)
                    .attr("fill", colors[key]).attr("rx", 2);
                svg.append("text")
                    .attr("x", lx + swatchSize + 5).attr("y", ly + legendLineHeight / 2)
                    .attr("dominant-baseline", "middle")
                    .attr("font-size", fontSize * 0.85)
                    .text(key);
            }
            lx += itemWidth;
        });
        return ly + legendLineHeight;
    }

    const legendHeight = layoutLegend(false);
    const labelPadding = labelFontSize * 2.5;
    const marginTop = legendHeight + labelPadding;
    const marginBottom = 26;
    const marginLeft = Math.max(width * 0.14, 70);
    const marginRight = 15;
    const chartHeight = Math.min(width * 0.55, 320);
    const height = marginTop + chartHeight + marginBottom;

    container.attr("style", `height: ${height}px;`);
    svg = container.append("svg")
        .attr("width", width).attr("height", height)
        .attr("viewBox", [0, 0, width, height])
        .attr("style", "max-width: 100%; height: auto;");

    layoutLegend(true);

    const x0 = d3.scaleBand()
        .domain(data.map(d => d.group))
        .range([marginLeft, width - marginRight])
        .paddingInner(0.3).paddingOuter(0.1);

    const x1 = d3.scaleBand()
        .domain(keys)
        .range([0, x0.bandwidth()])
        .padding(0.05);

    const maxVal = d3.max(data, d => Math.max(d["Muži"], d["Ženy"]));
    const y = d3.scaleLinear()
        .domain([0, maxVal]).nice()
        .range([marginTop + chartHeight, marginTop]);

    // Subtle gridlines
    svg.append("g")
        .attr("transform", `translate(${marginLeft}, 0)`)
        .call(d3.axisLeft(y)
            .tickSize(-(width - marginLeft - marginRight))
            .tickFormat(""))
        .call(g => g.select(".domain").remove())
        .call(g => g.selectAll("line")
            .attr("stroke-opacity", 0.15)
            .attr("class", "chart-line"));

    const showLabels = x1.bandwidth() >= labelFontSize * 3;

    data.forEach(row => {
        const g = svg.append("g").attr("transform", `translate(${x0(row.group)}, 0)`);
        keys.forEach(key => {
            const bx = x1(key);
            const bw = x1.bandwidth();
            const by = y(row[key]);
            const bh = y(0) - by;

            g.append("rect")
                .attr("x", bx).attr("y", by)
                .attr("width", bw).attr("height", bh)
                .attr("fill", colors[key])
                .attr("rx", 3)
                .attr("data-chart-tooltip", `${key}: ${fmtNum(row[key])}`)
                .attr("aria-label", `${key}: ${fmtNum(row[key])}`);

            if (showLabels) {
                g.append("text")
                    .attr("x", bx + bw / 2)
                    .attr("y", by - 3)
                    .attr("text-anchor", "middle")
                    .attr("dominant-baseline", "auto")
                    .attr("font-size", labelFontSize)
                    .text(fmtNum(row[key]));
            }
        });
    });

    // X-axis
    svg.append("g")
        .attr("transform", `translate(0, ${marginTop + chartHeight})`)
        .call(d3.axisBottom(x0).tickSizeOuter(0).tickSizeInner(0))
        .attr("font-size", fontSize * 0.85)
        .call(g => g.select(".domain").remove())
        .call(g => g.selectAll(".tick text").attr("dy", "1.2em"));

    // Y-axis
    svg.append("g")
        .attr("transform", `translate(${marginLeft}, 0)`)
        .call(d3.axisLeft(y)
            .tickFormat(fmtNum)
            .tickSizeOuter(0).tickSizeInner(0))
        .attr("font-size", fontSize * 0.8)
        .call(g => g.select(".domain").remove())
        .call(g => g.selectAll(".tick text").attr("x", -8).attr("text-anchor", "end"));
}
</script>



<p>Od 1. 7. 2006 funguje v České republice bodový systém pro řidiče. Za různé přestupky jsou řidičům udělovány trestné body. Při dosažení 12 bodů je řidiči dočasně odebráno řidičské oprávnění. Ministerstvo dopravy zveřejňuje každoročně informace o množství udělených bodů.</p>
<p>V <a href="https://md.gov.cz/Statistiky/Silnicni-doprava/Statistiky-k-bodovemu-hodnoceni/Statistiky-bodovanych-ridicu/Statistiky-bodovanych-ridicu-za-rok-2025" target="_blank" rel="noopener">článku pro rok 2025</a>
 mne zaujal tento odstavec a graf:</p>
<blockquote>
<p>Poměr bodovaných mužů a žen je od poměru všech řidičů výrazně odlišný - tvoří ho v současnosti 81,43 % mužů
a 18,57 % žen. Rozdíly mezi poměry bodovaných mužů a žen v jednotlivých krajích jsou nevýznamné (podíl mužů je
mezi 78,92 % a 85,11 %).</p>
</blockquote>

<!-- static chart -->
<div class="chart-box" id="gender_chart">
    <div class="chart-header">
        <img class="chart-header-logo light" alt="logo" width="100" height="100" src="/images/logo-light.svg">
        <img class="chart-header-logo dark" alt="logo" width="100" height="100" src="/images/logo-dark.svg">
        <h1>Zastoupení pohlaví mezi všemi bodovanými řidiči</h1>
        <p>Muži tvoří 81 % a ženy 19 % bodovaných řidičů v České republice.</p>
    </div>
    <div class="chart"></div>
    <div class="chart-footer">
        <span class="source">Zdroj: <a href="https://md.gov.cz/Statistiky/Silnicni-doprava/Statistiky-k-bodovemu-hodnoceni/Statistiky-bodovanych-ridicu/Statistiky-bodovanych-ridicu-za-rok-2025" target="_blank">Ministerstvo dopravy</a></span>
    </div>
</div>
<script>
    registerChart(() => drawGenderChart("gender_chart"));
</script>

<p>V roce 2025 mělo nějaké trestné body významně více mužů než žen, na 10 bodovaných žen připadá asi 44 bodovaných mužů. Na první pohled by se tak mohlo zdát, že se muži dopouštějí i více přestupků a jsou tak celkově výrazně horšími řidiči. To by alespoň pro mě bylo velmi snadné přijmout. Pokusme se ale nepropadnout prvním dojmům a vlastním předsudkům a zkusme ověřit, jestli je tomu skutečně tak.</p>
<p>Existují i jiná vysvětlení takového rozdílu? Podívejme se na několik možností a posuďme, jestli rozdíl na bodových kontech vysvětlují.</p>
<p>Než se dostaneme k vysvětlením, měli bychom zmínit, že <strong>absolutní počet bodovaných řidičů v roce 2025</strong>, tedy těch, kteří mají na svém kontě alespoň jeden bod, <strong>byl 440 071</strong>. To je jistě příliš vysoké číslo, ale jedná se o 6,23 % všech registrovaných řidičů (7 061 394), což je výrazná menšina. Mějme to při čtení článku na paměti, není o všech řidičích, ale o jejich malé části.</p>
<p><em>Poznámka autora: Článek pojednává o mužích a ženách jako o dvou pohlavích. To neznamená vyjádření mého souhlasu s binaritou pohlaví, používám taková data, která mi poskytují vládní organizace České republiky.</em></p>
<h2 id="mužů-řidičů-je-více-než-žen-řidiček">&ldquo;Mužů řidičů je více než žen řidiček&rdquo;</h2>
<p>Pokud by v České republice řídilo výrazně více mužů než žen, měli bychom očekávat, že celkem bude i více bodovaných mužů než bodovaných žen. Už jen z toho důvodu, že jich je výrazně více. Naštěstí výše zmíněný článek uvádí i počet mužů a žen s řidičským oprávněním.</p>

<!-- registered vs penalized chart -->
<div class="chart-box" id="registered_vs_penalized_chart">
    <div class="chart-header">
        <img class="chart-header-logo light" alt="logo" width="100" height="100" src="/images/logo-light.svg">
        <img class="chart-header-logo dark" alt="logo" width="100" height="100" src="/images/logo-dark.svg">
        <h1>Zastoupení pohlaví mezi registrovanými a bodovanými řidiči</h1>
        <p>Zatímco mezi registrovanými řidiči tvoří muži 54 % a ženy 46 %, mezi bodovanými řidiči je podíl mužů výrazně vyšší: 81 %.</p>
    </div>
    <div class="chart"></div>
    <div class="chart-footer">
        <span class="source">Zdroj: <a href="https://md.gov.cz/Statistiky/Silnicni-doprava/Statistiky-k-bodovemu-hodnoceni/Statistiky-bodovanych-ridicu/Statistiky-bodovanych-ridicu-za-rok-2025" target="_blank">Ministerstvo dopravy</a></span>
    </div>
</div>
<script>
    registerChart(() => drawPieComparisonChart("registered_vs_penalized_chart", [
        { title: "Registrovaní řidiči", data: [{ name: "Muži", value: 3806834 }, { name: "Ženy", value: 3254560 }] },
        { title: "Bodovaní řidiči",     data: [{ name: "Muži", value: 358339  }, { name: "Ženy", value: 81732   }] },
    ]));
</script>

<p>Z grafu můžeme mít pocit, že rozdíl mezi počty mužů a žen s řidičským oprávněním není ani zdaleka tak výrazný jako rozdíl mezi počty bodovaných mužů a žen. Ale dokážeme tento pocit nějak zhodnotit? Jak velkou část z rozdílu mezi bodovanými vysvětluje rozdíl mezi registrovanými?</p>
<p>Nejdříve si spočtěme poměr bodovaných z registrovaných pro muže i ženy:</p>
<ul>
<li><strong>muži</strong>: 358 339 / 3 806 834 ≈ <strong>9,41 %</strong></li>
<li><strong>ženy</strong>: 81 732 / 3 254 560 ≈ <strong>2,51 %</strong></li>
</ul>
<p>Dále se můžeme zeptat: <strong>&ldquo;Kolik bodovaných žen bychom očekávali, kdyby bylo stejně žen s řidičským oprávněním jako mužů?&rdquo;</strong> Při odpovědi budeme předpokládat, že poměr mezi bodovanými a nebodovanými ženami zůstane stejný.</p>
<p>3 806 834 × 2,51 % ≈ <strong>95 552</strong> bodovaných žen</p>
<p>95 552 je také výrazně méně než 358 339, i tak na 10 bodovaných žen připadá asi 38 bodovaných mužů. Rozdíl v počtu mužů a žen s řidičským oprávněním celý rozdíl v počtu bodovaných nevysvětluje.</p>
<p>Možná si teď říkáte: &ldquo;Muži ale určitě řídí častěji než ženy!&rdquo;</p>
<h2 id="muži-řídí-častěji-než-ženy">&ldquo;Muži řídí častěji než ženy&rdquo;</h2>
<p>Jinak řečeno, i když je žen s řidičským oprávněním jen o něco méně než mužů, výraznější rozdíl bude u aktivně řídících žen a mužů.</p>
<p>Touto problematikou se zabývali v Centru dopravního výzkumu ve zprávě <a href="https://md.gov.cz/getattachment/Ministerstvo/Rovne-prilezitosti/Rovne-prilezitosti-na-Ministerstvu-dopravy-%E2%80%93-aktua/Dopravni-chovani-zen-v-datech-2020.pdf.aspx" target="_blank" rel="noopener">Dopravní chování žen v datech</a>
.</p>
<blockquote>
<p>Cílem projektu je získat data reflektující možné odlišnosti v dopravním chování mužů a žen
a získaná data dále zanalyzovat za účelem zhodnocení stavu rovných příležitostí žen a mužů
v oblasti dopravy.</p>
</blockquote>
<p>Tato zpráva byla zpracována 30. 11. 2020, nejedná se tedy o aktuální data, navíc je důležité zmínit, že tento projekt proběhl za pandemie covid-19 a s ní spojených omezení. Novější data jsem ale bohužel nenašel.</p>
<p>Dle této zprávy 49 % dotázaných žen vlastní řidičské oprávnění a aktivně řídí a 80 % dotázaných mužů vlastní řidičské oprávnění a aktivně řídí.</p>

<!-- ownership chart -->
<div class="chart-box" id="ownership_chart">
    <div class="chart-header">
        <img class="chart-header-logo light" alt="logo" width="100" height="100" src="/images/logo-light.svg">
        <img class="chart-header-logo dark" alt="logo" width="100" height="100" src="/images/logo-dark.svg">
        <h1>Vlastnictví řidičského oprávnění dle pohlaví v %</h1>
        <p>49&nbsp;% žen a 80&nbsp;% mužů vlastní řidičské oprávnění a aktivně řídí. 21&nbsp;% žen a 9&nbsp;% mužů vlastní řidičské oprávnění, ale neřídí.</p>
    </div>
    <div class="chart"></div>
    <div class="chart-footer">
        <span class="source">Zdroj: <a href="https://md.gov.cz/getattachment/Ministerstvo/Rovne-prilezitosti/Rovne-prilezitosti-na-Ministerstvu-dopravy-%E2%80%93-aktua/Dopravni-chovani-zen-v-datech-2020.pdf.aspx" target="_blank">Dopravní chování žen v datech</a></span>
    </div>
</div>
<script>
    registerChart(() => drawOwnershipChart("ownership_chart"));
</script>

<p>Když budeme předpokládat platnost těchto hodnot pro celou populaci ČR v roce 2025, můžeme si dopočítat poměry těch, kteří aktivně řídí ze všech vlastníků řidičského oprávnění:</p>
<ul>
<li>80 % / (80 % + 9 %) × 100 % ≈ <strong>90 % mužů s řidičským oprávněním aktivně řídí</strong></li>
<li>49 % / (49 % + 21 %) × 100 % = <strong>70 % žen s řidičským oprávněním aktivně řídí</strong></li>
</ul>
<p>A dále i počty:</p>
<ul>
<li>90 % × 3 806 834 ≈ <strong>3 426 151 mužů aktivně řídí</strong></li>
<li>70 % × 3 254 560 = <strong>2 278 192 žen aktivně řídí</strong></li>
</ul>

<!-- active vs penalized chart -->
<div class="chart-box" id="active_vs_penalized_chart">
    <div class="chart-header">
        <img class="chart-header-logo light" alt="logo" width="100" height="100" src="/images/logo-light.svg">
        <img class="chart-header-logo dark" alt="logo" width="100" height="100" src="/images/logo-dark.svg">
        <h1>Zastoupení pohlaví mezi aktivními a bodovanými řidiči</h1>
        <p>Mezi aktivními řidiči tvoří muži 60 % a ženy 40 %, mezi bodovanými řidiči je podíl mužů vyšší: 81 %.</p>
    </div>
    <div class="chart"></div>
    <div class="chart-footer">
        <span class="source">Zdroj: <a href="https://md.gov.cz/Statistiky/Silnicni-doprava/Statistiky-k-bodovemu-hodnoceni/Statistiky-bodovanych-ridicu/Statistiky-bodovanych-ridicu-za-rok-2025" target="_blank">Ministerstvo dopravy</a>, <a href="https://md.gov.cz/getattachment/Ministerstvo/Rovne-prilezitosti/Rovne-prilezitosti-na-Ministerstvu-dopravy-%E2%80%93-aktua/Dopravni-chovani-zen-v-datech-2020.pdf.aspx" target="_blank">Dopravní chování žen v datech</a></span>
    </div>
</div>
<script>
    registerChart(() => drawPieComparisonChart("active_vs_penalized_chart", [
        { title: "Aktivní řidiči", data: [{ name: "Muži", value: 3426151 }, { name: "Ženy", value: 2278192 }] },
        { title: "Bodovaní řidiči",     data: [{ name: "Muži", value: 358339  }, { name: "Ženy", value: 81732   }] },
    ]));
</script>

<p>To je opět o něco menší rozdíl. Proveďme podobnou úvahu jako v předchozí sekci:</p>
<ul>
<li><strong>muži</strong>: 358 339 / 3 426 151 ≈ <strong>10,46 %</strong></li>
<li><strong>ženy</strong>: 81 732 / 2 278 192 ≈ <strong>3,59 %</strong></li>
</ul>
<p>Dále předpokládáme, že poměr mezi bodovanými a nebodovanými ženami zůstane stejný.</p>
<p>3 426 151 × 3,59 % ≈ <strong>122 999</strong> bodovaných žen</p>
<p>122 999 je stále výrazně méně než 358 339, ale rozdíl se uvažováním pouze aktivně řídících mužů a žen zmenšil, na 10 bodovaných žen připadá asi 29 bodovaných mužů. Řekl bych, že celý rozdíl v počtu bodovaných ale stále vysvětlený není.</p>
<p>Možná si teď říkáte: &ldquo;Muži ale určitě řídí dál než ženy!&rdquo;</p>
<h2 id="muži-řídí-dál-než-ženy">&ldquo;Muži řídí dál než ženy&rdquo;</h2>
<p>Jinak řečeno, muži najezdí v autě více kilometrů než ženy, a tak mají &ldquo;více příležitostí&rdquo; nasbírat body. Je to ale pravda?</p>
<p>Podívejme se na jinou studii z Centra dopravního výzkumu: <a href="https://www.ceskovpohybu.cz/" target="_blank" rel="noopener">Česko v pohybu</a>
</p>
<blockquote>
<p>V průzkumu Česko v pohybu jsme získali řadu údajů o dopravním chování české populace.</p>
</blockquote>
<p>Bohužel sběr dat pro tuto studii probíhal od podzimu 2017 do jara 2019. Data jsou tedy také stará. Ve druhém pololetí roku 2025 a na začátku roku 2026 probíhal sběr dat pro druhou vlnu výzkumu, brzy tedy budou k dispozici data nová!</p>
<p>Prozatím se podívejme, co se můžeme dozvědět z těchto dat.</p>
<p>Výsledky obsahují seznam <em>cest</em>, které účastníci studie vykonali v jeden konkrétní všední den. (Výběr dní má svá specifika, doporučuji si přečíst závěrečnou zprávu studie.) Pro každou cestu je uveden hlavní dopravní prostředek, její délka a další informace. Seznam zahrnuje i služební cesty neboli cesty &ldquo;v rámci práce&rdquo;. V daném dni může osoba vykonat několik cest.</p>
<p>Pro zajímavost nejdelší zaznamenané cesty jsou:</p>
<ul>
<li>715,69 km pro muže</li>
<li>321,36 km pro ženy</li>
</ul>
<p>Pro každou osobu ve výsledcích, která měla řidičské oprávnění, jsem sečetl za každý den vzdálenosti všech cest, které měly jako hlavní dopravní prostředek uvedený <em>automobil - řidič</em>. Z těchto součtů jsem pak spočítal průměr pro muže a ženy:</p>
<ul>
<li><strong>muži</strong>: <strong>17,0 km</strong> za volantem automobilu v průměru každý den</li>
<li><strong>ženy</strong>: <strong>7,6 km</strong> za volantem automobilu v průměru každý den</li>
</ul>
<p>Tyto průměry vám mohou připadat velmi nízké, alespoň mně tak přišly. Podíval jsem se tedy na data blíže. Většina účastníků studie v daný den vůbec neřídila. Pro ženy to je výrazná většina.</p>
<table>
  <thead>
      <tr>
          <th></th>
          <th>Neřídili</th>
          <th>Řídili</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Muži</td>
          <td>4 253</td>
          <td>3 371</td>
      </tr>
      <tr>
          <td>Ženy</td>
          <td>4 313</td>
          <td>1 551</td>
      </tr>
  </tbody>
</table>
<p>Tato čísla se mohou zdát poněkud v rozporu s čísly aktivních řidičů ze zprávy <a href="https://md.gov.cz/getattachment/Ministerstvo/Rovne-prilezitosti/Rovne-prilezitosti-na-Ministerstvu-dopravy-%E2%80%93-aktua/Dopravni-chovani-zen-v-datech-2020.pdf.aspx" target="_blank" rel="noopener">Dopravní chování žen v datech</a>
, ale to nemusí být pravda. Já bych se například také prohlásil za aktivního řidiče, ale přitom většinu dnů v roce neřídím vůbec.</p>
<p>I když jsou data už několik let stará a možná tak nejsou perfektně reprezentativní, pokračujme v analýze. Pro muže i ženy můžeme určit &ldquo;osobokilometry&rdquo;, celkový počet kilometrů, které ujede za jeden den průměrný registrovaný řidič:</p>
<ul>
<li><strong>muži</strong>: 3 806 834 × 17,0 km = <strong>64 716 178 km</strong></li>
<li><strong>ženy</strong>: 3 254 560 × 7,6 km = <strong>24 734 656 km</strong></li>
</ul>
<p>A konečně můžeme určit i očekávaný počet bodovaných žen, kdyby ženy jezdily tolik kilometrů jako muži, při zachování &ldquo;bodovanosti na ujetý kilometr&rdquo;.</p>
<p>64 716 178 km × 81 732 / 24 734 656 km ≈ <strong>213 845</strong> bodovaných žen</p>

<!-- km vs penalized chart -->
<div class="chart-box" id="km_vs_penalized_chart">
    <div class="chart-header">
        <img class="chart-header-logo light" alt="logo" width="100" height="100" src="/images/logo-light.svg">
        <img class="chart-header-logo dark" alt="logo" width="100" height="100" src="/images/logo-dark.svg">
        <h1>Zastoupení pohlaví mezi osobokilometry a bodovanými řidiči</h1>
        <p>Mužům přísluší asi 72&nbsp;% osobokilometrů, ženám 28&nbsp;%.</p>
    </div>
    <div class="chart"></div>
    <div class="chart-footer">
        <span class="source">Zdroj: <a href="https://md.gov.cz/Statistiky/Silnicni-doprava/Statistiky-k-bodovemu-hodnoceni/Statistiky-bodovanych-ridicu/Statistiky-bodovanych-ridicu-za-rok-2025" target="_blank">Ministerstvo dopravy</a>, 
        <a href="https://md.gov.cz/getattachment/Ministerstvo/Rovne-prilezitosti/Rovne-prilezitosti-na-Ministerstvu-dopravy-%E2%80%93-aktua/Dopravni-chovani-zen-v-datech-2020.pdf.aspx" target="_blank">Dopravní chování žen v datech</a>, <a href="https://www.ceskovpohybu.cz/" target="_blank">Česko v pohybu</a></span>
    </div>
</div>
<script>
    registerChart(() => drawPieComparisonChart("km_vs_penalized_chart", [
        { title: "Osobokilometry", data: [{ name: "Muži", value: 64716178 }, { name: "Ženy", value: 24734656 }] },
        { title: "Bodovaní řidiči",     data: [{ name: "Muži", value: 358339  }, { name: "Ženy", value: 81732   }] },
    ]));
</script>

<p>I když dostáváme postupně vyšší čísla, 213 845 je stále méně než 358 339, na 10 bodovaných žen připadá asi 17 bodovaných mužů. Já bych řekl, že celý rozdíl v počtu bodovaných stále vysvětlený není. I když ne tak výrazně, jak se mohlo zprvu zdát, muži zkrátka dostávají více trestných bodů než ženy. Proč tomu tak asi je? 🤔</p>
<p>Napadá mě ale ještě jedno vysvětlení, kterým by se mohl uražený řidič bránit: &ldquo;Policisté jsou k ženám mírnější!&rdquo;</p>
<h2 id="policisté-jsou-k-ženám-mírnější">&ldquo;Policisté jsou k ženám mírnější&rdquo;</h2>
<p>Na rozdíl od prvních tří se toto vysvětlení hůře ověřuje v datech, ale přesto se pokusme.</p>
<p>Předpokládám, že typický scénář, který si takto bránící se řidič představuje, je (zjednodušeně):</p>
<ol>
<li>Muž policista zastaví řídící ženu.</li>
<li>Žena se na policistu hezky usměje.</li>
<li>Policista udělí ženě mírnější trest, včetně nižšího počtu trestných bodů.</li>
</ol>
<p><em>Poznámka autora: Tímto se nesnažím urazit žádného policistu jakéhokoliv pohlaví, ba naopak dále budu prezentovat argumenty, proč si myslím, že je takovýto scénář především imaginární. Věřím, že policisté dělají svou práci férově a spravedlivě.</em></p>
<p>Z tohoto scénáře vyplývá alespoň jeden předpoklad a jeden důsledek, oba postupně prověříme:</p>
<ul>
<li>Mužů policistů je výrazně více, a jejich shovívavost k ženám způsobí tak výrazný rozdíl v trestných bodech.</li>
<li>Ženy dostávají mírnější tresty, což by se mělo projevit na jejich trestných kontech.</li>
</ul>
<h3 id="mužů-policistů-je-výrazně-více">&ldquo;Mužů policistů je výrazně více&rdquo;</h3>
<p>Toto je předpoklad zmíněného scénáře a (k mému zklamání) je to pravda.</p>
<p>Policie ČR zveřejnila v <a href="https://policie.gov.cz/clanek/zeny-v-policii-ceske-republiky.aspx" target="_blank" rel="noopener">odpovědi na požadavek v rámci svobodného přístupu k informacím</a>
:</p>
<blockquote>
<ul>
<li>Ad 1. K datu 1. ledna 2025 skutečný početní stav příslušníků Policie České republiky činí 40 320 osob.</li>
<li>Ad 2. K datu 1. ledna 2025 podíl žen na celkovém skutečném početním stavu příslušníků Policie České republiky představuje 19,32%.</li>
</ul>
</blockquote>
<p>Informace jsou k celkovému početnímu stavu, ale nemyslím si, že je rozumné předpokládat, že ve skupině policistů udělujících trestné body bude žen více.</p>
<p>Toť k předpokladu, ten se zdá být platný, pojďme se podívat na platnost důsledku.</p>
<h3 id="ženy-dostávají-mírnější-tresty">&ldquo;Ženy dostávají mírnější tresty&rdquo;</h3>
<p>Pokud by ženám byly udělovány nižší počty bodů, měla by i jejich bodová konta obsahovat nižší počty bodů, naštěstí Ministerstvo dopravy zveřejňuje i informace o tomto.</p>

<!-- points by gender chart -->
<div class="chart-box" id="points_by_gender_chart">
    <div class="chart-header">
        <img class="chart-header-logo light" alt="logo" width="100" height="100" src="/images/logo-light.svg">
        <img class="chart-header-logo dark" alt="logo" width="100" height="100" src="/images/logo-dark.svg">
        <h1>Absolutní počty bodovaných řidičů (2025)</h1>
        <p>Srovnání počtu mužů a žen s 1–12 trestnými body na řidičském kontě. V grafu jsou uvedeny absolutní hodnoty, bez korekcí na ujeté kilometry. </p>
    </div>
    <div class="chart"></div>
    <div class="chart-footer">
        <span class="source">Zdroj: <a href="https://md.gov.cz/Statistiky/Silnicni-doprava/Statistiky-k-bodovemu-hodnoceni/Statistiky-bodovanych-ridicu/Statistiky-bodovanych-ridicu-za-rok-2025" target="_blank">Ministerstvo dopravy</a></span>
    </div>
</div>
<script>
    registerChart(() => drawPointsByGenderChart("points_by_gender_chart"));
</script>

<p>Z grafu je evidentní hned několik věcí:</p>
<ul>
<li><strong>Počty pro muže jsou výrazně vyšší:</strong> o tom je celý tento článek 🙂</li>
<li><strong>Počty u lichých hodnot jsou nižší:</strong> to je způsobené novelou zákona, která platí od 1. 1. 2024 (<a href="https://e-sbirka.gov.cz/sb/2000/361" target="_blank" rel="noopener">Aktuální znění</a>
) a která změnila počty udělovaných bodů za přestupky na pouze sudá čísla. Lichá konta tedy postupně úplně zmizí.</li>
<li><strong>Rozdíl pro 12 bodů je významný:</strong> 12 bodů není stejné konto jako ta ostatní. Řidič s 12 body přijde o řidičské oprávnění a více bodů získat nemůže, i kdyby tomu poslední přestupek odpovídal.</li>
</ul>
<h4 id="co-se-z-těchto-dat-můžeme-dozvědět">Co se z těchto dat můžeme dozvědět</h4>
<p>Stojí za to se na chvíli zastavit a zamyslet se nad tím, co se v nejlepším případě můžeme dozvědět, ať nemáme přehnaná očekávání. Tato data zahrnují pouze muže a ženy, kteří udělali přestupek a dostali za něj trestné body. Můžeme se tedy ptát například, jestli ženy dostávají průměrně méně bodů než muži, ale nedozvíme se například, kolik žen žádné trestné body nedostalo, i když je dostat měly, o tom data nemáme.</p>
<h4 id="střední-hodnoty">Střední hodnoty</h4>
<p>Podívejme se na průměr a medián obdržených trestných bodů pro muže a ženy.</p>
<table>
  <thead>
      <tr>
          <th></th>
          <th>Průměr</th>
          <th>Medián</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Muži</td>
          <td>4,67</td>
          <td>4</td>
      </tr>
      <tr>
          <td>Ženy</td>
          <td>3,79</td>
          <td>4</td>
      </tr>
  </tbody>
</table>
<p>Průměrné konto bodované ženy je asi o 0,88 bodu nižší než průměrné konto bodovaného muže, ale mediány jsou pro obě skupiny stejné. To naznačuje, že průměr je ovlivněn krajními hodnotami, v tomto případě nejspíše počty pro 12 bodů. Významný počet mužů s 12 body zvyšuje celý průměr pro muže. V takových případech je běžné takové &ldquo;úlety&rdquo; vynechat.</p>
<p>Podívejme se tedy na hodnoty spočtené pouze pro konta s body 1 až 11.</p>
<table>
  <thead>
      <tr>
          <th></th>
          <th>Průměr</th>
          <th>Medián</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Muži</td>
          <td>3,93</td>
          <td>4</td>
      </tr>
      <tr>
          <td>Ženy</td>
          <td>3,43</td>
          <td>3</td>
      </tr>
  </tbody>
</table>
<p>Průměrné konto bodované ženy je nyní jen o <strong>půl bodu nižší</strong> než průměrné konto bodovaného muže. Medián klesl pro ženy ze 4 na 3, už v předchozím případě byl &ldquo;na hraně&rdquo;.</p>
<h4 id="pravděpodobnost-že-žena-má-méně-bodů">Pravděpodobnost, že žena má méně bodů</h4>
<p>Můžeme se také podívat, jaká je pravděpodobnost, že náhodně vybraná bodovaná žena má méně bodů než náhodně vybraný bodovaný muž.</p>
<ul>
<li>v 45,5 % případů má žena méně bodů,</li>
<li>v 25,8 % případů mají oba stejně,</li>
<li>v 28,7 % případů má žena více bodů.</li>
</ul>
<p>Ženy tedy mají méně bodů o něco častěji, než jich mají více (45,5 % oproti 28,7 %), ale pro zhruba čtvrtinu dvojic platí shoda. Pokud remízy rozdělíme napůl, dostaneme jediné souhrnné číslo: 58 %. To je jen mírně nad hodnotou 50 %, která by odpovídala tomu, že muži i ženy jsou na kontech rozmístěni stejně. Rozdíl tedy existuje a míří očekávaným směrem, ale je malý.</p>
<p>Jestli jsou policisté k bodovaným ženám mírnější, a to není jediné vysvětlení tohoto zjištění, nejsou mírnější výrazně.</p>
<h2 id="závěr">Závěr</h2>
<p>Co si můžeme z tohoto článku odnést? Dozvěděli jsme se vůbec něco? Určitě ano!</p>
<ol>
<li>Bodovaní řidiči tvoří menšinu všech registrovaných řidičů.</li>
<li>Bodovaných mužů je výrazně více než bodovaných žen, <strong>ale</strong> nezanedbatelná část tohoto rozdílu je způsobená tím, že muži řídí častěji a na delší vzdálenosti, <strong>ale</strong> tím nemůžeme vysvětlit celý rozdíl, bodovaných mužů je skutečně více než bodovaných žen.</li>
<li>Mužů s 12 body je výrazně více než žen s 12 body.</li>
<li>Bodované ženy dostávají v průměru jen mírně méně bodů než bodovaní muži a medián mají obě skupiny stejný.</li>
<li>Ženy netvořily na začátku roku 2025 ani 20 % příslušníků Policie České republiky.</li>
</ol>
<p>Rád bych tuto analýzu zopakoval, až budou k dispozici nová data z výzkumu Česko v pohybu a až odezní přechodný stav po novele a lichá konta zmizí.</p>
]]></description></item></channel></rss>