불균형한9개 셀의 평균은 표본 수와 함께 읽는다
정당×연령의 9개 셀 평균·신뢰구간·표본 수와 공동 검정을 함께 보여줍니다. 선의 교차만으로 상호작용을 판정하지 않습니다.
Type III F · 944 respondents · ANES96
01 · 실제 발표 장표
CMDS · SVG
02 · Pele 관계도와 원문
Pele 1.6.0 · Mermaid flowchart이 관계도는 분석의 변수·설계·검정 관계를 설명하는 보조 도식입니다. 단독 HTML 발표 장표의 통계 그림과 구분합니다.
Pele 관계도 원문
flowchart LR
P["Party group"] --> Y["TV news"]
A["Age band"] --> Y
I["Party × age"] --> Y
Y --> C["Cell means + joint tests"]03 · 정밀 SVG 제작 코드
JavaScript → SVG공개된 추정치를 받아 축·선·구간·라벨을 직접 배치하는 실제 제작 분기입니다. 생략한 공용 함수와 전체 파일도 확인할 수 있습니다.
SVG 제작 분기 · JavaScript
if (v.kind === "two-way") {
a.push(
T(0, 35, "A Full-interaction cell means ·95% CI", 30, C.ink, 700),
T(1010, 35, "B " + v.label + " tests", 30, C.ink, 700),
);
const ps = ["Democrat", "Independent", "Republican"],
bs = ["18–34", "35–54", "55+"],
cols = [C.blue, C.teal, C.slate];
let pp = plotFrame({
x: 80,
y: 110,
w: 750,
h: 360,
xRange: [-0.2, 2.2],
yRange: [0, 8],
xTicks: [],
yTicks: [0, 2, 4, 6, 8],
xLabel: "Age band",
yLabel: "TV news (times/week)",
});
a.push(...pp.a);
bs.forEach((b, i) => a.push(T(pp.X(i), 510, b, 26, C.muted, 400, "middle")));
ps.forEach((p, i) => {
const cells = v.cells.filter((c) => c.party === p),
xx = (j) => pp.X(j) + (i - 1) * 12;
a.push(
D(
cells.map((c, j) => (j ? "L" : "M") + xx(j) + " " + pp.Y(c.mean)).join(" "),
cols[i],
3,
),
);
cells.forEach((c, j) =>
a.push(
G(
[
L(xx(j), pp.Y(c.lo), xx(j), pp.Y(c.hi), cols[i], 3),
Q(xx(j), pp.Y(c.mean), 7, cols[i]),
],
c.key,
),
),
);
a.push(
R(40 + i * 300, 585, 16, 16, cols[i]),
T(68 + i * 300, 604, p, 25),
T(68 + i * 300, 640, "n: " + cells.map((c) => c.n).join(" / "), 22, C.muted),
);
});
v.terms.forEach((t, i) => {
let yy = 125 + i * 135;
a.push(
T(1015, yy, ["Party group", "Age band", "Party × age"][i], 29, C.ink, 650),
T(1015, yy + 43, "F(" + t.df + ", " + v.dfResidual + ") = " + fmt(t.F, 3), 28),
T(1015, yy + 83, pv(t.p), 26, C.muted),
);
});
note =
"Unbalanced 3×3 design, sum contrasts. Cell n and pointwise intervals remain visible. Joint interaction test is not inferred from line crossings.";
source =
'flowchart LR\n P["Party group"] --> Y["TV news"]\n A["Age band"] --> Y\n I["Party × age"] --> Y\n Y --> C["Cell means + joint tests"]';
map = { P: v.cells[0].key, A: v.cells[1].key, I: v.key, Y: v.key, C: v.key };
}이 소스는 실행 가능한 편집기가 아니라 원문을 보존한 참고 코드입니다.
04 · 재사용할 때 바꿀 것
DATA · DESIGN · INFERENCE- 데이터
- 해당 조건의 데이터 파일을 먼저 확인하고, 표본·단위·계수·신뢰구간을 함께 교체합니다. 표본이나 측정 수준이 다른 분석을 같은 척도로 합치지 않습니다.
- 그림
- 축 범위·라벨 폭·서체·색상은 실제 삽입 영역에 맞춥니다. 신뢰구간이 0을 포함하는지에 따라 의미를 보존하고, 화면을 줄인 뒤 다시 읽어 봅니다.
- 해석
- 관계도의 화살표와 통계 모형의 경로는 인과의 증거가 아닙니다. 평균 반응의 구간과 개별 예측구간, 점별 구간과 동시 구간을 구분합니다.