# 공학·과학 데이터 적합에서의 실제 예시

#### 개요와 접근 방법

일상적인 공학 및 과학 현장에서는 실험을 통해 얻은 측정값에 이론적 모델을 적용해 보고, 모델의 계수를 추정한 뒤 예측이나 최적화를 수행한다. 이러한 과정에서 최소제곱법(Least Squares)은 데이터를 가장 잘 표현하는 곡선을 찾기 위해 널리 활용된다. 예를 들어 실험에서 특정 물리량 $y$를 여러 조건 $x$에서 측정한 결과가 있다고 할 때, 선형관계 혹은 비선형관계를 가정하여 이에 맞는 계수를 추정하면 미래의 다른 조건에서 $y$ 값이 어떻게 될지 예측하거나, 시스템이 어떤 방식으로 동작하는지 분석할 수 있다.

실제로 간단한 1차원 선형 모델을 가정한다면 $y \approx a + bx$ 형태가 될 수 있다. 더 복잡한 물리 현상을 설명하고자 할 때는 $n$차 다항식, 지수함수, 로지스틱 함수와 같은 다양한 형태가 사용된다. 이러한 모델의 계수(예: $a$, $b$, 더 나아가 고차항 계수 등)를 추정하는 데 최소제곱법이 핵심적 역할을 한다.

예를 들어 특정 실험에서 $x$-$y$ 쌍 데이터를 $N$개 관측했다고 하자. 이때 실험적으로 보정된 간단한 선형 모델

$$
\begin{align} y = \theta\_0 + \theta\_1 x \end{align}
$$

로 표현한다고 가정한다면, 관측 데이터 $(x\_i, y\_i)$가 모델식에 만족하도록 $\theta\_0$, $\theta\_1$ 값을 추정해야 한다. 이를 가장 일반적으로 다룰 수 있는 도구가 최소제곱법이며, 잔차(residual)의 제곱합

$$
\begin{align} S(\theta\_0, \theta\_1)  = \sum\_{i=1}^{N} \bigl( y\_i - \[\theta\_0 + \theta\_1 x\_i] \bigr)^2 \end{align}
$$

이 최소가 되는 $\theta\_0$, $\theta\_1$를 찾는다. 이를 일반화하면 다항식 모형이나 여러 개의 독립 변수, 복잡한 비선형 모델로도 확장할 수 있다.

#### 일반화된 수학적 표현

공학 및 과학 데이터에서 독립변수가 여러 개이거나, 혹은 고차원 실험 결과를 다룰 때는 행렬과 벡터 표현을 사용하면 편리하다. 예를 들어 $y\_i$가 종속 변수, $x\_i$가 여러 독립 변수를 포함하는 벡터라고 가정하면

$$
\begin{align} \mathbf{y} = \mathbf{X} \boldsymbol{\beta} + \boldsymbol{\epsilon} \end{align}
$$

꼴로 나타낼 수 있다. 여기서

* $\mathbf{y}$는 $(N \times 1)$ 차원의 벡터로 관측된 종속변수들의 집합
* $\mathbf{X}$는 $(N \times p)$ 차원의 행렬로 설계행렬(design matrix)이라 부르며, 각 행은 한 번의 실험에서 얻은 독립변수들의 값을 나타냄
* $\boldsymbol{\beta}$는 $(p \times 1)$ 차원의 계수 벡터
* $\boldsymbol{\epsilon}$는 오차 벡터

최소제곱법은 아래 식에서

$$
\begin{align} \min\_{\boldsymbol{\beta}} , \lVert \mathbf{y} - \mathbf{X} \boldsymbol{\beta} \rVert^2 \end{align}
$$

문제를 푸는 것과 같다. 만약 $\mathbf{X}$의 열들이 선형 독립이라면, 정상방정식(Normal Equation)

$$
\begin{align} \mathbf{X}^\mathsf{T}\mathbf{X} ,\boldsymbol{\beta}  =  \mathbf{X}^\mathsf{T}\mathbf{y} \end{align}
$$

을 통해 해

$$
\begin{align} \boldsymbol{\beta}  =  \bigl(\mathbf{X}^\mathsf{T}\mathbf{X}\bigr)^{-1} \mathbf{X}^\mathsf{T} \mathbf{y} \end{align}
$$

를 얻게 된다. 규모가 큰 문제에서는 수치적 안정성을 위해 QR 분해나 SVD 분해를 사용하여 해를 구하는 기법이 주로 쓰인다.

#### 공학·과학 분야 예시 개요

진동 실험, 주파수 응답 측정, 열전달 계수 추정, 재료물성 파라미터 추정 등 다양한 분야에서 실험 결과를 기반으로 모델 계수를 추정하는 과정을 수행한다. 예시로 열전달 계수 추정 문제를 간단히 살펴보면, 어떤 물체를 특정 온도에서 가열할 때 시간에 따라 온도가 어떻게 변화하는지를 측정하고, 물체 내부에서의 열전달 방정식에 대응하는 여러 이론적 모형 중 하나를 적용해 전반적인 열전달계수를 추정할 수 있다. 측정 데이터를 통해 이 계수가 잘 맞추어지면, 실제 기기 설계나 다른 조건에서의 동작을 예측하는 데 활용될 수 있다.

또 다른 예로 실험실에서 특정 용액의 화학 반응 속도를 측정했다고 하자. 반응 속도는 온도, 압력 등에 따라 달라지며, 일반적으로 아레니우스(Arrhenius) 식을 사용하는 경우가 많다.

$$
\begin{align} k = A \exp\Bigl( -\frac{E\_a}{R,T} \Bigr) \end{align}
$$

형태와 같은 식을 가정할 수 있다. 이때 $A$, $E\_a$는 실험 데이터로부터 추정해야 하는 계수이며, 이를 최소제곱법 혹은 비선형 회귀 기법으로 찾는다.

#### 예시 1: 실제 실험 데이터로부터 간단한 선형 모델 적용

어떤 센서 장치를 통해 시간 $t$에 따른 온도를 측정했다고 가정한다. 온도가 서서히 상승하며 어느 지점에서 포화에 가까워진다. 관측값 ${(t\_i, T\_i)}$가 주어졌을 때, 실험적으로 다음과 같은 간단한 근사 모델

$$
\begin{align} T(t) = \alpha + \beta t \end{align}
$$

로 가정하고, 계수 $\alpha, \beta$를 최소제곱법으로 결정해 보자. 모델이 실제 데이터를 온전히 설명할 수 없을 수도 있으나, 초기단계에서 상승 구간만을 대상으로 선형화하는 경우가 많다.

데이터가 $N$개 있다고 하면 설계행렬 $\mathbf{X}$는

$$
\begin{align} \mathbf{X}  =  \begin{pmatrix} 1 & t\_1 \ 1 & t\_2 \ \vdots & \vdots \ 1 & t\_N \end{pmatrix} \end{align}
$$

이고, $\mathbf{y} = (T\_1, T\_2, \dots, T\_N)^\mathsf{T}$로 쓸 수 있다. 계수 벡터 $\boldsymbol{\beta} = (\alpha, \beta)^\mathsf{T}$에 대해

$$
\begin{align} \boldsymbol{\beta}  =  (\mathbf{X}^\mathsf{T}\mathbf{X})^{-1}\mathbf{X}^\mathsf{T}\mathbf{y} \end{align}
$$

를 계산하면 된다.

#### 예시 1에 대한 Python 코드 예시

실제로 간단한 실험 데이터를 통해 계수 $\alpha, \beta$를 추정하는 Python 예시를 간략히 살펴보자. 가상의 데이터를 생성하여 최소제곱 해를 구한 뒤, 결과를 시각화하는 과정을 볼 수 있다.

```python
import numpy as np
import matplotlib.pyplot as plt

# 가상의 시간 데이터
t_data = np.linspace(0, 10, 11)  
# 실제 모델(진짜 계수는 alpha=2, beta=0.5라고 가정)에 대해 노이즈 추가
alpha_true = 2.0
beta_true = 0.5
T_data = alpha_true + beta_true * t_data + np.random.normal(0, 0.2, len(t_data))

# 설계행렬 구성
X = np.column_stack((np.ones(len(t_data)), t_data))  
y = T_data.reshape(-1, 1)

# 최소제곱 해 계산
beta_est = np.linalg.inv(X.T @ X) @ X.T @ y  
alpha_est, beta_est_value = beta_est.flatten()

# 결과 출력
print("추정된 alpha:", alpha_est)
print("추정된 beta:", beta_est_value)

# 시각화
plt.scatter(t_data, T_data, label='측정 데이터')
plt.plot(t_data, alpha_est + beta_est_value * t_data, 'r--', label='적합된 선형모델')
plt.legend()
plt.xlabel('Time')
plt.ylabel('Temperature')
plt.show()
```

#### 데이터 적합 과정의 흐름

아래는 공학·과학 데이터 적합을 위해 실제로 모델을 적용하는 과정의 개략적인 흐름을 보여준다.

{% @mermaid/diagram content="flowchart LR
A\[실험 데이터 획득] --> B\[모델 형태 결정]
B --> C\[선형 or 비선형]
C --> D\[설계행렬 or 목적함수 구성]
D --> E\[최소제곱 or 최적화 알고리즘]
E --> F\[계수 추정 결과 해석]
F --> G\[모델 검증 및 활용]" %}

실험 데이터를 얻은 뒤 이론적 배경 혹은 경험적인 판단을 기반으로 모델 형태를 결정한다. 선형 모델인 경우 설계행렬을 구성하고 정상방정식을 풀거나 QR 분해 등을 통해 빠르고 정확하게 해를 구한다. 비선형 모델인 경우 목적함수를 정의하고 반복 최적화 알고리즘(뉴턴법, Gauss-Newton법 등)을 통해 계수를 추정한다. 최종 계수를 바탕으로 모델 검증 후 설계, 예측, 제어 등 다양한 후속 작업을 수행한다.

#### 확장된 기법: 가중 최소제곱법과 일반화

실험 데이터 중 측정값들이 동일한 정밀도를 갖지 않을 수도 있다. 예를 들어 어떤 구간에서는 측정기의 분해능(resolution)이 떨어지거나, 일부 데이터는 노이즈가 더 많이 섞여 있을 수 있다. 이런 경우, 모든 데이터 점에 동일한 가중(weight)을 두고 최소제곱법을 적용하는 것은 바람직하지 않을 수 있다. 이를 보완하기 위해 도입되는 것이 가중 최소제곱법(Weighted Least Squares)이다.

가중 최소제곱법에서는 다음과 같은 최소화 문제를 다룬다.

$$
\begin{align} \min\_{\boldsymbol{\beta}}  , (\mathbf{y} - \mathbf{X}\boldsymbol{\beta})^\mathsf{T}  , \mathbf{W}  , (\mathbf{y} - \mathbf{X}\boldsymbol{\beta}) \end{align}
$$

여기서 $\mathbf{W}$는 대각성분으로 각 데이터 점에 대한 가중을 담고 있는 $(N \times N)$ 대각행렬이다. 측정값 중 신뢰도가 높은 데이터에는 가중을 더 크게(즉, 대각성분 값을 크게), 신뢰도가 낮은 데이터는 가중을 작게 부여한다. 이때도 정상방정식을 사용하면

$$
\begin{align} \mathbf{X}^\mathsf{T} \mathbf{W} \mathbf{X} ,\boldsymbol{\beta} = \mathbf{X}^\mathsf{T} \mathbf{W} \mathbf{y} \end{align}
$$

가 되고, 선형독립 조건하에서

$$
\begin{align} \boldsymbol{\beta}  =  (\mathbf{X}^\mathsf{T} \mathbf{W} \mathbf{X})^{-1}  , \mathbf{X}^\mathsf{T} \mathbf{W}  , \mathbf{y} \end{align}
$$

형태로 해를 구할 수 있다. 이러한 가중치 설정은 특수한 경우(모든 가중이 동일)에서 표준 최소제곱해로 돌아간다.

#### 비선형 최소제곱법

비선형 관계를 다룰 때는 모델을 단순히 $\mathbf{X} \boldsymbol{\beta}$의 형태로 표현하기 어렵다. 예를 들어 지수함수, 로지스틱함수, 마이클리스-멘텐(Michaelis–Menten) 형태 등 다양한 비선형식이 공학·과학 영역에서 자주 사용된다. 이 경우

$$
\begin{align} y\_i \approx f(x\_i; \boldsymbol{\beta}), \end{align}
$$

와 같은 형태의 모델이 되며, 계수 $\boldsymbol{\beta}$를 최소제곱 관점에서 추정하기 위해

$$
\begin{align} \min\_{\boldsymbol{\beta}}  \sum\_{i=1}^N \Bigl( y\_i - f(x\_i; \boldsymbol{\beta})\Bigr)^2 \end{align}
$$

를 풀어야 한다. 보통 해석적인 해가 존재하지 않으므로, 수치적 반복법을 사용한다. 예:

* Gauss-Newton 알고리즘
* Levenberg–Marquardt 알고리즘
* Gradient Descent 기반 방법

등을 활용한다. 미분 계수가 쉽게 구해지는 모델이라면 Gauss-Newton이나 Levenberg–Marquardt가 효율적이고, 모델이 복잡하거나 미분 불능 구간이 있으면 다른 범용적 최적화 알고리즘을 고려한다.

#### 예시 2: 지수함수 적합 문제

화학 반응이나 생물학적 성장 등에서 지수함수 모델이 자주 등장한다. 특정 실험에서 시간 $t$에 따른 농도 $C(t)$를 측정했다고 할 때, 간단한 지수함수 모델

$$
\begin{align} C(t) = A \exp(-kt) \end{align}
$$

을 가정해 보자. 실제 실험 데이터 ${(t\_i, C\_i)}$가 주어졌다고 하면, 최소제곱 관점에서는 아래 식의 $A, k$를 추정한다.

$$
\begin{align} \min\_{A,k} \sum\_{i=1}^N \bigl(C\_i - A e^{-k t\_i}\bigr)^2 \end{align}
$$

이 문제는 비선형 방정식이며, $A$와 $k$에 대해 해석적 해를 구하기 어렵다. 따라서 반복적 방법을 이용해 추정한다. 로그변환이 가능하거나, 모델 형태를 일부 선형화하여 접근하는 방법도 있지만, 정밀하게는 비선형 회귀를 적용해 오차가 최소가 되는 $A$와 $k$를 찾는다.

#### 예시 2를 Octave로 시도하는 간단 예시

Octave에서 지수함수를 적합하기 위해 Levenberg-Marquardt 알고리즘을 직접 구현하거나, Octave의 비선형 최적화 함수를 활용할 수 있다. 간단하게 $fminunc$나 $lsqnonlin$과 같은 함수를 사용하는 방법을 살펴보자.

```octave
% 가상의 시간 데이터 t와 농도 C 생성
t_data = linspace(0, 5, 11)';
A_true = 2.0; 
k_true = 0.8;
C_data = A_true * exp(-k_true*t_data) + 0.05*randn(size(t_data));

% 목적함수(잔차 벡터) 정의
% 파라미터 p = [A, k]
function r = residual_exp(p, t, C)
    A = p(1);
    k = p(2);
    r = C - A*exp(-k*t);
endfunction

% 초기 추정값 설정
p0 = [1; 1];

% lsqnonlin 등 Octave Toolboxes 사용 가능(미설치 시 직접 Gauss-Newton 작성)
% 여기서는 fminunc 예시로 접근
options = optimset('MaxIter', 1000, 'TolX', 1e-8, 'TolFun', 1e-8);
[p_est, fval] = fminunc(@(p) sum(residual_exp(p, t_data, C_data).^2), p0, options);

A_est = p_est(1);
k_est = p_est(2);

disp(["추정된 A: ", num2str(A_est)]);
disp(["추정된 k: ", num2str(k_est)]);

% 결과 시각화
t_plot = linspace(0,5,100)';
C_fit = A_est * exp(-k_est * t_plot);

plot(t_data, C_data, 'o', t_plot, C_fit, 'r-');
xlabel('Time');
ylabel('Concentration');
legend('Measurements','Fitted Curve');
```

위 코드는 잔차 함수를 정의한 뒤 최소화 문제를 풀어 $A$, $k$를 추정한다. 실제로는 Gauss-Newton(또는 Levenberg-Marquardt)에 기반한 비선형 회귀 루틴을 쓰면 더 빠른 수렴과 안정적인 해를 얻을 수 있다.

#### 모형 복잡도와 과적합

실험 데이터에 복잡한 다항식이나 초고차원 모형을 적용하면, 데이터 점들을 매우 정확히 따라갈 수도 있으나 실제 현상을 잘 반영한다고 보장할 수는 없다. 이를 과적합(overfitting) 문제라고 부른다. 현장 실험에서는 노이즈나 외부 요인이 존재하므로, 복잡도가 높은 모형보다는 물리적으로 의미 있는 파라미터들을 가진 모형이 좋은 해를 주는 경우가 많다.

복잡한 모형 선택 시에는 검증 데이터(실험에서 일부 데이터를 따로 떼어놓거나, 교차검증 기법을 사용)로 오차를 점검하거나, 물리학적 해석 관점에서 모형 적합성을 검토한다. 필요하다면 정칙화(regularization) 방법을 적용해 모형 계수에 페널티를 두어 과도하게 계수가 커지지 않도록 제약을 주기도 한다. 예를 들어 $L\_2$ 페널티를 주는 Ridge 회귀

$$
\begin{align} \min\_{\boldsymbol{\beta}} \lVert \mathbf{y} - \mathbf{X}\boldsymbol{\beta} \rVert^2 +  \lambda ,\lVert \boldsymbol{\beta} \rVert^2 \end{align}
$$

를 적용해 안정적 추정값을 얻는 사례도 많다.

#### 기타: SVD(특잇값분해)를 통한 안정적 계산

실험에서 $\mathbf{X}$의 열 벡터들이 서로 거의 선형 종속인 경우, $\mathbf{X}^\mathsf{T}\mathbf{X}$가 (가까운) 특이행렬(singular matrix)이 되어 역행렬을 직접 구하기 어렵다. 이때는 SVD(특잇값분해)나 QR 분해를 통해 해를 구하는 것이 일반적이다. 예를 들어 SVD를 사용하면

$$
\begin{align} \mathbf{X} = \mathbf{U},\boldsymbol{\Sigma},\mathbf{V}^\mathsf{T} \end{align}
$$

이 성립하므로, 최소제곱해 $\boldsymbol{\beta}$는

$$
\begin{align} \boldsymbol{\beta} = \mathbf{V},\boldsymbol{\Sigma}^{+},\mathbf{U}^\mathsf{T},\mathbf{y} \end{align}
$$

를 통해 구한다. 여기서 $\boldsymbol{\Sigma}^+$는 $\boldsymbol{\Sigma}$의 무어-펜로즈(Moore-Penrose) 유사역행렬(pseudoinverse)이다. 수치안정성과 잡음에 대한 민감도 등을 고려해 필요한 경우 작은 특잇값들에 대해 0처리를 하거나 정칙화 기법을 병행한다.

#### 이상치(outlier) 처리와 로버스트 회귀

실험 데이터를 살펴보면, 간혹 측정 기기의 오작동이나 외부 환경의 급작스러운 간섭 등으로 인해 특정 관측값이 매우 비정상적으로 나타나는 경우가 있다. 이를 이상치(outlier)라고 부르는데, 최소제곱법은 제곱오차를 최소화하려 하기 때문에 한두 개의 극단값에 의해 해가 크게 왜곡될 수 있다. 이러한 문제를 완화하기 위한 방법 중 하나로 로버스트(robust) 회귀가 존재한다.

로버스트 회귀에서는 오차(혹은 잔차) 함수를 절댓값 기반으로 하거나, Huber 함수처럼 오차의 크기에 따라 가중을 조정한다. 예를 들어 $L\_1$ norm을 사용하는 경우

$$
\begin{align} \min\_{\boldsymbol{\beta}} \sum\_{i=1}^{N} |,y\_i - f(x\_i; \boldsymbol{\beta})|  \end{align}
$$

를 풀게 되는데, 이는 $L\_2$ norm(기존 최소제곱)보다 이상치에 덜 민감하다. Huber 손실 함수를 쓰면, 오차가 작을 때는 $L\_2$ 방식, 클 때는 $L\_1$ 방식을 혼합적으로 적용한다. 또 다른 예로 RANSAC(Random Sample Consensus) 기법은 일정 부분 데이터를 무작위로 샘플링하면서, 이상치가 포함되지 않은 샘플에 대해 모델을 피팅해 보고 가장 많은 지지를 받는 모델을 선택한다.

이러한 로버스트 기법은 공학·과학 실험에서 종종 발생하는 이상값을 효과적으로 무시 혹은 완화해 준다. 로버스트 회귀 역시 선형 모델뿐 아니라 다양한 비선형 모델에도 적용 가능하며, 비선형 잔차에 대해 M-추정(M-estimator) 방식을 사용하는 등이 대표적이다.

#### 잔차 분석과 진단

최소제곱법(혹은 더 일반적인 회귀 방법)을 통해 계수를 추정한 후에는 잔차 분석을 수행하는 것이 보통이다. 잔차란 데이터 실제값 $y\_i$와 모델 예측값 $\hat{y}\_i$의 차이 $e\_i = y\_i - \hat{y}\_i$이다. 잔차 분석을 통해 모델이 가정했던 것(예: 오차 분포가 정규분포임, 독립성 가정 등)에 대한 위반사항이 있는지 살펴볼 수 있다.

대표적으로 잔차가 특정 방향으로 치우쳐 있거나, 독립변수 $x\_i$에 따라 계통적으로 증가 혹은 감소하는 형태가 나타난다면, 모델식이 적절치 않은 것이거나 누락된 변수, 변환(transform)의 필요성을 시사한다.

또한 잔차의 분포가 대략 정규분포 형태인지, 평균이 0에 가깝게 분포하는지 등을 확인해 볼 필요가 있다. 이 과정을 거쳐 모델의 적합도를 평가하고, 필요하다면 모델 형태나 추정 방법 등을 수정·보완하게 된다.

#### 모형의 적합도 평가

선택된 모델이 얼마나 데이터를 잘 설명하는지 판단할 때 여러 평가 척도가 쓰인다. 예를 들어 결정계수 $R^2$는

$$
\begin{align} R^2  =  1 - \frac{\sum\_{i=1}^N (y\_i - \hat{y}*i)^2}{\sum*{i=1}^N (y\_i - \overline{y})^2} \end{align}
$$

형태로 정의되며, $\overline{y}$는 관측값의 평균이다. $R^2$ 값이 1에 가까울수록 데이터에 대한 적합도가 높음을 시사한다. 하지만 독립변수가 많아질수록 $R^2$가 인위적으로 커질 수 있으므로, 변수 개수를 조정해 반영한 수정된 결정계수(Adjusted $R^2$)나 $AIC$, $BIC$ 같은 정보량 기준을 고려하기도 한다.

신뢰구간(confidence interval)이나 예측구간(prediction interval)을 통해 추정된 계수가 통계적으로 유의미한지, 예측값의 불확실성이 어느 정도인지 파악하는 과정도 자주 수행된다. 실험 현장에서는 이런 정보를 토대로 추가 실험이나 계측 장치 교정, 혹은 모델 구조 재설계를 결정하기도 한다.

#### 스플라인(spline)과 다항식 보간

다항식이나 단순한 함수 형태만으로 데이터를 충분히 설명하기 어렵다면, 스플라인(spline) 보간이나 근사를 사용하는 방법도 있다. 스플라인 함수는 구간별로 다항식을 정의하되, 접합점에서 연속성과 매끄러움을 유지하도록 제한 조건을 준다. 예를 들어 3차 스플라인은 각 구간이 3차 다항식으로 표현되며, 접합점에서 함수값과 1차, 2차 도함수가 연속되도록 한다.

스플라인 기반 최소제곱법을 적용하면 데이터가 많은 구간에서 복잡한 형태를 띠더라도, 전체 구간을 하나의 고차 다항식으로 표현하는 것보다 수치적으로 안정적이며, 과적합 위험도 줄어든다. 물리나 공학 현장에서는 이러한 스플라인 보간을 통해 복잡한 곡면 형태를 추정하거나, 곡선의 일부 구간만 국소적으로 다룰 수도 있다.

#### 멀티플 피스와이즈(piecewise) 근사

스플라인이 아닌 방식으로 특정 구간을 여러 개로 나누어, 각 구간별로 다른 형태의 근사 함수를 설정하는 방법도 있다. 예를 들어 구간별 선형 근사(piecewise linear)나 구간별 다항식 모델을 적용해서, 구간마다 최소제곱법 혹은 비선형 적합을 진행할 수 있다. 이는 물리적으로 서로 다른 거동을 보이는 구간이 있을 때 직관적으로 유용하다. 다만 구간 경계에서의 매끄러움(연속성, 도함수 연속성 등)을 어떻게 다룰지가 추가 이슈로 제기된다.

#### 실전 팁: 물리적 제약조건이나 전문가 지식의 활용

공학·과학 분야에서 얻는 데이터는 무작정 통계적·수학적 근사만으로는 놓칠 수 있는 물리적, 화학적, 생물학적 제약이 존재한다. 예를 들어 온도는 섭씨 -273°C보다 내려갈 수 없거나, 반응 속도 상수는 음수가 될 수 없다는 것 등, 기본적인 제약조건들이 있다. 이런 제약들을 반영한 제한형 최소제곱(Constrained Least Squares) 혹은 최적화 기법을 사용하면, 계산 결과가 물리적으로 말이 되지 않는 상황을 줄여준다.

실험 현장에서는 전문가들의 도메인지식(domain knowledge)을 충분히 활용해 변수 변환을 시도하거나, 가정이 적절한 모형을 고르는 것이 중요하다.

\--- 대신 마무리 요약

앞서 소개한 다양한 기법(선형, 비선형, 가중, 로버스트 등)과 주의사항(잔차 분석, 모형 평가, 과적합 방지, 물리적 제약 고려 등)을 종합적으로 적용하면, 공학·과학적 문제를 보다 정확하고 안정적으로 해결할 수 있다. 현실의 여러 복잡한 현장을 다룰 때는 단순 모델이든 복잡 모델이든 그 이면에 존재하는 물리적, 수학적, 통계적 관점을 균형 있게 적용하는 것이 중요하다.

#### 고차원·다변수 데이터 적합과 추가 기법

공학·과학 현장에서는 독립변수가 하나($x$)만 있는 간단한 경우가 아니라, 여러 입력 변수($x\_1, x\_2, \dots, x\_m$)와 여러 출력(종속) 변수($y\_1, y\_2, \dots, y\_k$)가 동시에 존재하는 복합 상황이 흔하다. 이때에도 최소제곱법은 유효하지만, 다변수 확장과 함께 다양한 기법을 고려해야 한다. 예를 들어 입력 차원이 높으면 다항식 항을 추가하거나, 지수·로그·기타 비선형항을 넣을 때 그 수가 폭발적으로 증가할 수 있으므로, 모형 복잡도를 적절히 제어하고, 다중공선성(multicollinearity)을 방지하는 등의 이슈가 제기된다.

특히 $\mathbf{X}$의 열들이 서로 상관관계가 높으면, $\mathbf{X}^\mathsf{T}\mathbf{X}$가 (가까운) 특이행렬이 되어 계수 추정이 불안정해진다. 이를 해결하기 위한 대표적 방법 중 하나가 주성분회귀(PCR, Principal Component Regression)이며, 입력변수들에 대해 주성분분석(PCA)을 수행하여 차원을 축소하고, 그 축소공간에서 회귀를 진행한다. 혹은 부분최소제곱(PLS, Partial Least Squares)을 통해 독립변수와 종속변수 간의 공분산 구조를 직접 반영하여 변수 변환을 수행할 수도 있다.

#### 다항식 기반 대규모 설계

다항식 근사에서, 예를 들어 2차원 입력 $(x, y)$에 대해 2차 혹은 3차 다항식을 구성하려면 항의 개수가 상당히 많아진다. 2차 다항식만 해도

$$
\begin{align} f(x,y)  =  \beta\_0 + \beta\_1 x + \beta\_2 y + \beta\_3 x^2 + \beta\_4 xy + \beta\_5 y^2 \end{align}
$$

꼴이 되고, 3차 이상의 다항식은 항이 더 증가한다. 여기에 입력변수가 더 늘어나면 설계행렬의 열 개수가 크게 증가하며, 이로 인한 수치적·통계적 문제가 발생할 수 있다. 따라서 물리적 배경지식을 활용하여 “어떤 항이 반드시 필요한지” 우선순위를 매기거나, 정칙화 기법(Ridge, Lasso 등)을 적용해 계수 추정의 안정성을 높이는 전략을 쓴다.

#### 부분최소제곱(PLS)과 주성분회귀(PCR)

다중공선성이 심한 환경에서, 최소제곱 추정은 민감도가 높아 계산된 계수가 해석적으로나 예측적으로 불안정해질 수 있다.

주성분회귀(PCR)는 독립변수 행렬 $\mathbf{X}$에 먼저 주성분분석(PCA)을 수행해 주성분들을 추출한 뒤, 그 주성분 좌표계에서 종속변수 $\mathbf{y}$를 회귀하는 방식이다. 반면 부분최소제곱(PLS)은 독립변수와 종속변수를 동시에 바라보며, 이들 사이의 최대 공분산을 설명하는 잠재요인을 찾는다. 둘 다 차원 축소를 통해 다중공선성 문제를 완화하고, 모델을 단순화하며, 해석 가능성을 높여준다.

예컨대 화학 공정에서 여러 센서로부터 유입되는 다차원 측정값(온도, 압력, 유량, 농도 등)을 가지고 생산물의 품질(예: 농도, 점도, 색상) 등을 예측할 때, PLS는 매우 효과적인 도구로 알려져 있다. 측정값이 상호 강한 상관관계를 보이더라도, PLS를 사용하면 중요한 요인을 추출하여 예측이나 제어 모델을 구축할 수 있다.

#### 비선형 차원 축소와 핵심(map) 기법

선형적 PCA나 PLS 외에도, 커널 트릭(kernel trick) 등을 활용한 비선형 차원 축소 기법들이 존재한다. 공학·과학 데이터에서 복잡한 비선형 구조를 갖는 경우, 단순한 선형 변환으로는 설명력이 부족하므로, 가우시안 RBF나 다항식 커널 등의 함수를 이용해 데이터를 고차원 특성공간으로 사상(mapping)한 뒤, 선형 회귀나 PCA, PLS를 적용한다. 이를 커널 PCA, 커널 PLS 등이라 부른다. 이러한 접근은 비선형성이 강한 데이터에도 부드러운 곡면/곡선을 통해 근사할 수 있는 장점이 있다.

#### 다중 출력(멀티 아웃풋) 문제

출력 변수도 여러 개인 상황, 예를 들어 열역학 시스템에서 시간에 따라 온도, 압력, 부피 등 여러 상태값들을 동시에 예측해야 하는 문제를 생각해 볼 수 있다. 이때는 벡터 형태의 종속변수 $\mathbf{Y}$를 한 번에 다루는 다변량 회귀(multivariate regression)를 진행한다. 실제로는 각 종속변수마다 별도의 회귀모델을 구축해도 되지만, 종속변수 간 상관관계를 활용하면 추정과 예측 정확도를 높일 수 있다.

멀티 아웃풋 상황에서 최소제곱 해는

min⁡B∥Y−XB∥2 \begin{align} \min\_{\mathbf{B}} \lVert \mathbf{Y} - \mathbf{X}\mathbf{B} \rVert^2 \end{align}

가 되며, $\mathbf{B}$는 $(p\times k)$ 행렬이다. 독립변수 개수가 $p$, 출력 변수가 $k$, 데이터 개수가 $N$이라면, $\mathbf{X}$는 $(N\times p)$, $\mathbf{Y}$는 $(N\times k)$가 되어, 마찬가지 방식으로 해석할 수 있다. 정상방정식은

$$
\begin{align} \mathbf{X}^\mathsf{T}\mathbf{X},\mathbf{B} = \mathbf{X}^\mathsf{T}\mathbf{Y} \end{align}
$$

가 되므로,

$$
\begin{align} \mathbf{B}  =  (\mathbf{X}^\mathsf{T}\mathbf{X})^{-1} , \mathbf{X}^\mathsf{T}\mathbf{Y}. \end{align}
$$

#### 곡면 적합과 3D 시각화

입력이 두 변수 $(x, y)$, 출력이 한 변수 $z$인 경우, 예를 들어 재료 표면의 온도 분포를 실험으로 측정해 $(x\_i, y\_i)$ 위치에서의 $z\_i$ 값을 얻었다고 하자. 이 데이터를 매끄러운 곡면으로 근사하기 위해 2변수 다항식 회귀나, 스플라인 표면(spline surface), 혹은 2D RBF, 케르넬 회귀 등을 이용한다. 근사된 곡면을 3D로 시각화하면, 실험 결과가 어떤 형태로 분포하는지, 어느 방향으로 변화가 큰지 등을 직관적으로 파악할 수 있다.

3D 스플라인이나 다차원 보간은 수치적으로 구현이 복잡할 수 있으나, 여러 소프트웨어(예: Matlab, Python, 기타 라이브러리)에서 지원된다. 다만 데이터가 희소하거나 불균일하게 배치된 경우, 스플라인 구성 시 적절한 그리드화 또는 지역적 보간 기법이 필요하다.

#### 데이터 취합과 전처리의 중요성

곡선 근사와 최소제곱법을 적용하기에 앞서, 실험 데이터를 어떻게 수집·전처리하느냐가 전체 과정의 성패를 좌우하기도 한다. 센서에서 직접 읽어온 값에 잡음 필터링이나 이상치 제거, 혹은 물리량 환산(단위 변환, 로그 변환 등)을 적용해야 할 때가 많다. 불량 센서 데이터나 결측치(missing data)가 있을 경우 보정 과정을 거치지 않으면, 회귀 해석 결과가 왜곡될 수 있다.

실제로 모델을 만들어 예측력을 검증할 때, 훈련 데이터와 검증 데이터가 동일한 분포에서 잘 추출되었는지도 확인해야 한다. 실험 조건이 갑자기 크게 변하거나, 측정 장치가 다른 경우가 있다면, 단순히 하나의 모델로 모든 상황을 설명하기 어렵다. 이때 구간별 또는 조건별로 서로 다른 모델을 구성하거나, 충분히 확장된 모형을 사용하여 상황 변화를 포괄하도록 설계해야 한다.

#### 추가적 응용: 최적화·제어와의 결합

곡선 근사로부터 얻어진 모델은 이후의 최적 설계나 제어 문제로도 이어진다. 예를 들어 실험 데이터를 통해 공정 반응 속도 함수를 근사했으면, 그 함수를 목표로 하는 최적화 문제(예: 반응 시간을 최소화, 비용 절감)를 정의하여 적절한 온도·압력·배합비 등을 결정할 수 있다. PID 제어나 모델 예측 제어(MPC) 같은 동적 시스템 제어에서는, 시스템의 동특성을 최소제곱(또는 비선형 회귀)으로 식별한 뒤 제어 규칙을 설계하는 식으로 활용된다.

실험에서 얻은 근사 모델이 현실을 얼마나 정확히 반영하느냐에 따라 후속 최적화나 제어 과정의 품질이 결정된다. 따라서 근사 모델은 단순히 “데이터에 맞추는 것”을 넘어, “정말로 물리적 의미가 있는 모델인가?”라는 점이 중요하며, 과도한 복잡성을 배제하는 동시에 핵심 동작 메커니즘을 포착해야 한다.

\--- 요약

지금까지 다양한 상황에서 곡선(또는 곡면) 근사와 최소제곱법이 어떤 식으로 응용되고 확장되는지 살펴보았다. 다중공선성, 비선형성, 고차원성, 이상치, 정칙화, 물리적 제약, 잔차 분석, 로버스트 회귀 등 현실적인 문제들을 해결하기 위한 다채로운 기법이 존재한다. 실제 공학·과학 문제를 효과적으로 풀기 위해서는 이론적 수치해석 지식과 더불어, 현장 도메인지식과 실험 설계 기법, 분석 툴 운용 능력이 유기적으로 결합되어야 한다.
