iurbinah's picture
Create other_scripts/flowchart.py
9e1d816 verified
import graphviz
# Build the decision-tree flow chart
dot = graphviz.Digraph("z_vs_t_decision_tree", format="png")
dot.attr(rankdir="TB", fontsize="10", fontname="Helvetica")
# Nodes
dot.node("start", "Start", shape="ellipse", style="filled", fillcolor="#e0f7fa")
dot.node("samples", "Number of samples?", shape="diamond", style="filled", fillcolor="#fff9c4")
# One-sample branch
dot.node("one_n", "n ≥ 30 AND σ known?", shape="diamond", style="filled", fillcolor="#ffe0b2")
dot.node("one_z", "1-Sample Z", shape="box", style="filled", fillcolor="#c8e6c9")
dot.node("one_t", "1-Sample t", shape="box", style="filled", fillcolor="#c5cae9")
# Two-sample branch
dot.node("two_n", "Both n ≥ 30?", shape="diamond", style="filled", fillcolor="#ffe0b2")
dot.node("two_sigma", "σ₁ and σ₂ known?", shape="diamond", style="filled", fillcolor="#ffe0b2")
dot.node("two_z", "2-Sample Z", shape="box", style="filled", fillcolor="#c8e6c9")
dot.node("equal_var", "Equal variances\nplausible?", shape="diamond", style="filled", fillcolor="#ffe0b2")
dot.node("pooled_t", "Pooled t\n(df = n₁ + n₂ − 2)", shape="box", style="filled", fillcolor="#c5cae9")
dot.node("welch_t", "Welch t\n(df*)", shape="box", style="filled", fillcolor="#c5cae9")
# Edges
dot.edge("start", "samples")
dot.edge("samples", "one_n", label="1")
dot.edge("samples", "two_n", label="2")
# One-sample path
dot.edge("one_n", "one_z", label="Yes")
dot.edge("one_n", "one_t", label="No")
# Two-sample path
dot.edge("two_n", "two_sigma", label="Yes")
dot.edge("two_n", "equal_var", label="No")
dot.edge("two_sigma", "two_z", label="Yes")
dot.edge("two_sigma", "equal_var", label="No")
dot.edge("equal_var", "pooled_t", label="Yes")
dot.edge("equal_var", "welch_t", label="No")
# Render to file
file_path = "/mnt/data/decision_tree_z_t.png"
dot.render(filename="/mnt/data/decision_tree_z_t", cleanup=True)
file_path