1 접시 계량 — BIB 기반 spring balance design

Montgomery Ch.9.4 Incomplete Block as Weighing (One Pan from BIB)

Spring balance (한 접시 저울) 의 weighing design 이 BIB design 의 incidence matrix 와 동치임을 보이고, 그 추정량과 효율을 chemical balance 와 비교한다. BIB 의 모수 \((v, b, r, k, \lambda)\) 가 weighing 의 정보 효율에 어떻게 기여하는지 단계적으로 유도한다.

Experimentation
DOE
저자

Kwangmin Kim

공개

2026년 05월 08일

1 Spring Balance 의 design

정의: Spring Balance Weighing Design

각 측정에서 일부 물건만 한 접시에 올림. design entry \(\in \{0, 1\}\):

  • \(1\): 측정에 포함.
  • \(0\): 제외.

저울 측정값 = 포함된 물건의 합 무게: \[ y_i = \sum_{j \in S_i} w_j + \varepsilon_i \]

여기서 \(S_i\) 는 측정 \(i\) 에 포함된 물건 집합.

2 BIB 와의 동치성

직관: Spring balance = BIB incidence matrix

BIB design 의 incidence matrix 는 0/1 행렬. 행이 블록, 열이 처치, 1 은 그 처치가 그 블록에 등장.

Spring balance 의 design matrix 도 0/1 — 각 측정 (블록) 에 어느 물건 (처치) 이 포함.

→ 두 framework 가 동일 행렬 구조. BIB 의 통계 결과가 weighing 에 그대로 적용.

2.1 BIB 의 5 모수 (재방문)

\((v, b, r, k, \lambda)\):

  • \(v\): 물건 수.
  • \(b\): 측정 횟수.
  • \(r\): 각 물건이 등장하는 측정 수.
  • \(k\): 각 측정의 물건 수.
  • \(\lambda\): 임의의 두 물건이 같은 측정에 등장하는 횟수.

관계: \[ bk = vr,\quad \lambda(v - 1) = r(k - 1) \]

3 \((7, 7, 3, 3, 1)\) BIB 의 weighing 적용

7 물건, 7 측정, 각 측정 3 물건, 각 쌍 1 번 같이.

Design matrix (incidence):

     w1 w2 w3 w4 w5 w6 w7
m1:  1  1  0  1  0  0  0  → y1 = w1 + w2 + w4 + ε
m2:  0  1  1  0  1  0  0  → y2 = w2 + w3 + w5 + ε
m3:  0  0  1  1  0  1  0  → y3 = w3 + w4 + w6 + ε
m4:  0  0  0  1  1  0  1  → y4 = w4 + w5 + w7 + ε
m5:  1  0  0  0  1  1  0  → y5 = w1 + w5 + w6 + ε
m6:  0  1  0  0  0  1  1  → y6 = w2 + w6 + w7 + ε
m7:  1  0  1  0  0  0  1  → y7 = w1 + w3 + w7 + ε

각 물건 3 번 등장 (\(r = 3\)). 각 쌍 1 번 같이 (\(\lambda = 1\)).

4 추정량

BIB design 에서 처치 효과 (= 무게 추정):

\[ \hat w_j = \frac{k Q_j}{\lambda v} \]

여기서 $Q_j = $ 물건 \(j\) 의 “intra-block 합” (각 측정의 그 물건 응답에 weight 1, 다른 물건 응답에 weight \(-1/(k-1)\)).

또는 더 명확히: 회귀 분석으로 \(\hat{\mathbf{w}} = (\mathbf{X}^T \mathbf{X})^{-1} \mathbf{X}^T \mathbf{y}\).

4.1 Spring Balance 의 정보 행렬

\(\mathbf{X}^T \mathbf{X}\) 의 구조: - 대각 원소: \(r\) (각 물건의 등장 횟수). - 비대각 원소: \(\lambda\) (각 쌍의 동시 등장 횟수).

\[ \mathbf{X}^T \mathbf{X} = \begin{pmatrix} r & \lambda & \lambda & \cdots & \lambda \\ \lambda & r & \lambda & \cdots & \lambda \\ \vdots & & & & \vdots \\ \lambda & \lambda & \lambda & \cdots & r \end{pmatrix} = (r - \lambda) \mathbf{I} + \lambda \mathbf{J} \]

\(\mathbf{J}\) = 모든 1 행렬.

4.2 Inverse 의 형태

\[ (\mathbf{X}^T \mathbf{X})^{-1} = \frac{1}{r - \lambda} \mathbf{I} - \frac{\lambda}{(r - \lambda)(r + \lambda(v-1))} \mathbf{J} \]

각 무게의 분산:

\[ \text{Var}(\hat w_j) = \sigma^2 \cdot \left[\frac{1}{r - \lambda} - \frac{\lambda}{(r - \lambda)(r + \lambda(v-1))}\right] \]

(단, intercept term 제거 후의 effective inverse — 실제 BIB 는 sum 제약 있음. 자세한 식은 BIB 표준 textbook.)

5 효율 비교 — Chemical vs Spring

5.1 Chemical Balance (Hadamard)

\[ \text{Var}(\hat w_j) = \sigma^2 / N \]

각 물건 정보 = \(N / \sigma^2\).

5.2 Spring Balance (BIB)

각 물건 정보 = \(r \lambda v / [\sigma^2 (k - \lambda(k-1)/(r-\lambda))]\) (대략).

상대 효율:

\[ e_{\text{spring}} \approx \frac{r \lambda}{N (r - \lambda + ...)} \approx \frac{1}{2} \text{ (근사)} \]

자세한 비교는 design 모수에 의존.

직관: Spring 이 절반 효율 인 이유

Chemical 은 \(\pm 1\) 의 3 값으로 직교 구성 가능 → \(\mathbf{X}^T\mathbf{X} = N \mathbf{I}\).

Spring 은 \(0, 1\) 의 2 값으로 비대각 원소 0 만들기 어려움 → \(\mathbf{X}^T\mathbf{X}\) 가 대각 + 일정 비대각 (\(\lambda\)) 의 형태.

비대각 0 이 아니므로 정보 손실 ↑. 분산 \(\sigma^2/N\) 의 약 2 배.

“음수 사용의 정보 가치” 의 통계적 형식.

6 \((7, 7, 3, 3, 1)\) BIB 의 weighing 효율

Chemical \(H_8\) 과 비교 (8 측정 vs 7 측정):

Design 측정 수 물건 수 분산 / 무게
개별 7 7 \(\sigma^2\)
BIB Spring 7 7 \(\sigma^2 \cdot (k/\lambda v) \approx \sigma^2 \cdot 3/7 = 0.43\sigma^2\)
Hadamard \(H_8\) 8 7 (또는 8) \(\sigma^2 / 8 = 0.125\sigma^2\)

Spring 이 chemical 의 약 3.4 배 (정밀도 1/√3.4 ≈ 0.54). 효율 약간 낮음.

그러나 spring 이 1 접시 저울만 필요 (설비 단순) — trade-off.

7 Python 코드 — BIB Spring Balance

import numpy as np
from scipy.linalg import hadamard

# (7, 7, 3, 3, 1) BIB incidence matrix
bib_X = np.array([
    [1, 1, 0, 1, 0, 0, 0],
    [0, 1, 1, 0, 1, 0, 0],
    [0, 0, 1, 1, 0, 1, 0],
    [0, 0, 0, 1, 1, 0, 1],
    [1, 0, 0, 0, 1, 1, 0],
    [0, 1, 0, 0, 0, 1, 1],
    [1, 0, 1, 0, 0, 0, 1],
])

print("=== BIB (7, 7, 3, 3, 1) incidence matrix ===")
print(bib_X)

XtX = bib_X.T @ bib_X
print(f"\nX'X (= rI + λ(J-I) form):")
print(XtX)
print(f"r = {XtX[0,0]} (대각), λ = {XtX[0,1]} (비대각)")

# 7 물건의 가상 무게
np.random.seed(2026)
true_w = np.array([0.5, 0.7, 0.3, 0.9, 0.4, 0.6, 0.8])
sigma = 0.1

# Spring balance 측정
y = bib_X @ true_w + np.random.normal(0, sigma, 7)
print(f"\nMeasurements: {y.round(3)}")

# 추정 — 회귀 분석 (한 reference 무게 fix 또는 sum constraint)
# BIB 의 단순 추정: pseudo-inverse 또는 LSQ + mean constraint
# (정확한 BIB 분석은 복잡)
w_hat = np.linalg.lstsq(bib_X, y, rcond=None)[0]
print(f"\nEstimated: {w_hat.round(3)}")
print(f"True:      {true_w.round(3)}")
print(f"Errors:    {(w_hat - true_w).round(4)}")
print(f"RMSE:      {np.sqrt(np.mean((w_hat - true_w)**2)):.4f}")

# Chemical Hadamard 비교 (8 회 측정, 8 물건)
H8 = hadamard(8)
true_w8 = np.append(true_w, 0.5)  # 8 번째 무게
y8 = H8 @ true_w8 + np.random.normal(0, sigma, 8)
w_hat8 = (1/8) * H8.T @ y8
print(f"\nHadamard (8 measurements): RMSE = {np.sqrt(np.mean((w_hat8 - true_w8)**2)):.4f}")

# 분산 비교
# Spring: 회귀 분산
residuals_spring = y - bib_X @ w_hat
mse_spring = np.mean(residuals_spring**2)
var_spring = mse_spring * np.diag(np.linalg.pinv(bib_X.T @ bib_X))
print(f"\nVariance per weight (Spring BIB): {var_spring.mean():.5f}")
print(f"Variance per weight (Hadamard):   {sigma**2 / 8:.5f}")

8 Truncated Spring Balance

BIB 가 존재하지 않는 모수 (\(v = 6\) 같은) 에서 PBIB 또는 truncated weighing.

각 측정에 다른 수의 물건 (block size 가 변동) — pairwise balanced design (PBD).

자세한 내용은 G-MON9-4.

9 응용 사례

9.1 1. 화학 — 미량 시약

여러 시약의 정확한 양을 한 저울로 측정. 한 시약 추가 후 다음 시약 추가 — 누적 측정. 이는 spring 의 자연스러운 적용.

9.2 2. 식품 가공

여러 ingredient 의 정확한 비율 측정. 각 측정에 일부 ingredient 만 — BIB 활용.

9.3 3. 의약 제조

여러 활성 성분의 양 측정. spring balance 가 흔함.

9.4 4. 광도 측정 (천문학)

별의 절대 광도 추정. 한 region 의 광도 측정 (포함된 별 수에 비례) — spring balance.

10 Spring Balance 의 장점

직관: 1 접시의 단순함

저울이 1 접시만 사용 — 설비 단순: - 물리적 저울이 표준 (양접시 저울이 historical, 현대는 spring 또는 digital). - Calibration 단순. - 측정 시간 짧음.

효율은 chemical 의 절반이지만 측정 비용이 작아 trade-off 가능.

ML 의 가설 평가에서 spring 형태가 흔함 — 한 모델 평가 (한 dataset 에서 한 metric) 이 “포함” 또는 “제외” 의 binary, 음수 측정 없음.

11 가정과 한계

  • 0/1 entry 만: 음수 사용 안 함.
  • BIB 의 존재: 모든 \((v, k)\) 모수에 BIB 존재 안 함.
  • PBIB 대안: BIB 부재 시 PBIB 또는 PBD 활용.
  • 효율의 손실: chemical 보다 분산 약 2 배.

12 본 시리즈

G-MON9-0  개관
G-MON9-1  Definition + Estimation
G-MON9-2  One Pan from BIB  ← 현재 글
G-MON9-3  Two Pan Weighing
G-MON9-4  PBIB + Efficiency

13 관련 주제

선행 지식

후속 주제

다른 카테고리 연결

14 더 읽을 거리

  • Banerjee, K. S. (1975). “Weighing Designs.” Marcel Dekker.
  • Raghavarao, D. (1971). “Constructions and Combinatorial Problems in Design of Experiments.” Wiley.
  • Hedayat, A., Sloane, N. J. A., Stufken, J. (1999). “Orthogonal Arrays: Theory and Applications.” Springer.

Subscribe

Enjoy this blog? Get notified of new posts by email: