FDA 4.7~4.8 — refund 패키지 통합 구현과 비선형 함수 회귀

세 추정 방법의 통합 R 인터페이스, 그리고 함수 GAM·비모수 functional regression

Kokoszka & Reimherr (2017) Ch.4의 §4.7과 §4.8을 상세히 다룬다. §4.7에서는 refund 패키지의 통합 인터페이스 pfr·lf·fpc·af, mgcv 기반 mixed model 매끄러움 추정, 시뮬레이션 데이터로 본 세 방법의 비교, 데이터셋에 따라 달라지는 성능을 다룬다. §4.8에서는 선형 모형의 한계를 넘는 두 비선형 접근 — 함수 GAM(continuously additive model) Y = α + ∫f(X(t), t)dt + ε 과 완전 비모수 Y = m(X) + ε 의 정식화, 추정, 거리 선택의 의미를 다룬다.

Statistics
Functional Data Analysis
저자

Kwangmin Kim

공개

2026년 05월 07일

1 이 포스트의 위치

./4-3-penalty-and-fpcr.qmd 까지 스칼라-on-함수 회귀의 세 가지 선형 추정 접근을 다뤘다 — 기저 전개·거칠기 벌점·FPCA 회귀. 이 포스트는 두 가지 마무리 주제를 다룬다.

§4.7 refund 패키지의 통합 구현
    ↓ 세 방법을 같은 인터페이스(pfr)로 호출
시뮬레이션으로 본 방법별 강점·약점

§4.8 비선형 함수 회귀
    ↓ 선형 모형 ∫β(s)X(s)ds의 한계
함수 GAM: Y = α + ∫f(X(t), t)dt + ε
완전 비모수: Y = m(X) + ε (Nadaraya-Watson 풍)

핵심 메시지: §4.7은 도구의 통합, §4.8은 모형 가정의 확장이다. 둘 다 실무에서 함수 회귀를 사용하기 위한 마지막 두 단계의 다리 역할을 한다.


2 refund 패키지의 통합 인터페이스

2.1 왜 통합 인터페이스가 필요한가

§4.4~§4.6의 세 추정 방법은 수학적으로 다르지만, 같은 형태의 출력 — 회귀 함수 \(\widehat{\beta}(t)\) 와 예측 — 을 만든다. 사용자가 한 번에 비교할 수 있는 통일된 도구가 필요하다.

refund 패키지의 핵심 함수 pfr() (Penalized Functional Regression) 가 이를 제공한다. 인자에 따라 세 방법 중 하나를 호출하지만, 인터페이스가 일관되어 비교가 쉽다.

2.2 핵심 헬퍼 함수

pfr() 안에서 함수 회귀자를 표시하는 세 가지 헬퍼:

헬퍼 의미 호출 방법
lf(X, ...) linear function — 선형 함수 회귀자 \(\int \beta(s) X_i(s) \, ds\)
fpc(X, ...) functional principal components FPCA 회귀
af(X, ...) additive function — 비선형 GAM \(\int f(X_i(t), t) \, dt\)

이 헬퍼들이 pfr() 의 우변 ~ 다음에 오면 함수 회귀자로 인식된다.

2.3 추정 방법 선택의 인자

lf() 헬퍼의 주요 인자:

인자 의미 효과
bs 기저 종류 "ps" (penalized splines), "cr" (cubic regression splines), "tp" (thin plate) 등
k 기저 함수 수 (\(K\)) 표현력 통제
fx 벌점 고정 여부 TRUE → 벌점 없음 (단순 기저 전개), FALSE (기본) → 거칠기 벌점
sp 매끄러움 모수 (\(\lambda\)) 미지정 시 REML로 자동 선택

이 네 인자의 조합으로 세 방법을 모두 호출:

# Method 1: 기저 전개 (벌점 없음)
fit_basis <- pfr(Y ~ lf(X, bs = "ps", k = 15, fx = TRUE))

# Method 2: 거칠기 벌점 (REML 자동)
fit_pen <- pfr(Y ~ lf(X, bs = "ps", k = 50))

# Method 3: FPCA 회귀
fit_fpcr <- pfr(Y ~ fpc(X))

2.4 내부 구현: mgcv와 mixed model

pfr() 의 내부는 mgcv 패키지의 gam() 함수를 호출한다. mgcv 는 generalized additive model의 표준 구현이며, mixed model framework로 매끄러움 모수를 REML 추정 한다.

이 내부 mechanism이 §4.5의 끝부분에서 언급한 “거칠기 벌점 = mixed model의 random effect” 라는 시각을 직접 활용한다 (Goldsmith et al. 2011, Ruppert et al. 2003 참조).

2.5 REML이 표준이 된 이유

refund 가 REML을 기본 방법으로 채택한 이유:

  1. 계산 효율: 한 번의 최적화로 \(\lambda\) 결정 (CV는 \(N\) 번의 모형 적합 필요).
  2. 통계적 정교: mixed model의 분산 모수 추정 표준 방법.
  3. 기존 인프라 재사용: mgcv 의 검증된 알고리즘 활용.
  4. 자동성: 사용자가 \(\lambda\) 후보 범위를 지정할 필요 없음.

2.6 한계와 보완

REML도 단점이 있다:

  • 작은 표본에서 불안정할 수 있음.
  • 비가우스 잡음에 대한 민감도.
  • \(\lambda\) 의 사후 분포가 비대칭일 때 점추정의 한계.

pfr()method = "REML" 외에도 "GCV.Cp", "ML" 등 대안을 제공한다.


3 시뮬레이션을 통한 세 방법의 비교

3.1 Kokoszka §4.7의 시뮬레이션 설계

Kokoszka는 두 진짜 회귀 함수에 세 방법을 모두 적용해 비교한다.

진짜 회귀 함수 1: 매끄러운 정현파.

\[ \beta_1(t) = \sin(2\pi t). \]

진짜 회귀 함수 2: 좁은 봉우리 세 개의 합.

\[ \beta_2(t) = -\phi(t; 0.2, 0.03^2) + 3\phi(t; 0.5, 0.04^2) + \phi(t; 0.75, 0.05^2), \]

여기서 \(\phi(t; \mu, \sigma^2)\) 는 평균 \(\mu\), 분산 \(\sigma^2\) 의 정규 밀도 함수.

3.2 두 함수의 의미

함수 특성 추정 난이도
\(\beta_1\) 단일 주기, 매끄러움 쉬움
\(\beta_2\) 좁은 봉우리, 거의 0 (대부분 구간) + 급격한 봉우리 어려움

\(\beta_1\) 은 모든 추정 방법이 잘 잡을 것 — 단순한 정현파라서 어떤 기저로도 표현 가능. \(\beta_2\) 는 좁은 봉우리(특히 sd=0.03 인 첫 봉우리)가 적은 수의 기저로는 표현하기 어렵다.

3.3 회귀자 데이터 생성

회귀자 \(X_i(t)\) 는 다음 합으로 구성:

\[ X_i(t) = Z_i \cdot t + U_i + \eta_i(t) + \zeta_i(t), \]

  • \(Z_i \sim N(1, 0.2^2)\): 선형 기울기 잡음
  • \(U_i \sim \text{Unif}[0, 5]\): 무작위 절편
  • \(\eta_i(t) \sim N(0, 1)\) i.i.d. 잡음
  • \(\zeta_i(t) = \sum_{k=1}^{10} \frac{1}{k}\{Z_{1k} \sin(2\pi t k) + Z_{2k} \cos(2\pi t k)\}\): 매끄러운 무작위 변동

이 데이터 생성 모형은 현실적 회귀자 를 시뮬레이션한다 — 매끄러운 추세 + 잡음 + 무작위 변동의 합.

3.4 반응 변수

\[ Y_i = \int X_i(t) \beta(t) \, dt \cdot 0.01 + \varepsilon_i, \quad \varepsilon_i \sim N(0, 0.4^2). \]

(0.01 스케일링은 \(X\) 의 큰 진폭을 보정).

3.5 시뮬레이션 결과 1: \(\beta_1\) (매끄러운 정현파)

예상 결과: 세 방법 모두 진짜 함수에 매우 가깝게 추정 (Kokoszka & Reimherr, 2017, Figure 4.4).

방법 결과
FPCA 회귀 진짜 함수와 거의 같음
기저 전개 (벌점 없음) 약간의 거친 진동, 평균적으로 진짜 함수
거칠기 벌점 가장 매끄러운 추정, 진짜 함수에 가장 가까움

해석: 매끄러운 진짜 함수에서는 세 방법이 모두 비슷하게 작동한다. 거칠기 벌점은 약간의 추가 정밀도를 주지만, 차이가 크지 않다.

3.6 시뮬레이션 결과 2: \(\beta_2\) (좁은 봉우리)

예상 결과: 방법 간 명확한 차이 (Kokoszka & Reimherr, 2017, Figure 4.5).

방법 결과
FPCA 회귀 두 번째·세 번째 봉우리는 잘 잡음, 첫 번째 좁은 봉우리는 평탄화
기저 전개 (벌점 없음) FPCA와 거의 같음, 약간 더 날카로움
거칠기 벌점 과평활 — 모든 봉우리가 평탄화됨

해석: 거친 진짜 함수에서는 거칠기 벌점이 너무 강한 매끄러움을 강제하여 봉우리를 잃는다. FPCA 회귀와 단순 기저 전개가 비슷한 성능, 둘 다 첫 번째 좁은 봉우리는 어려워한다.

3.7 Goldsmith and Scheipl (2014) 의 실증 분석

Kokoszka는 Goldsmith and Scheipl (2014) 의 결과를 인용한다 — “여러 실제 데이터에서 추정 방법의 예측 성능이 데이터셋에 따라 다르다” (Kokoszka & Reimherr, 2017, §4.7).

이는 위 시뮬레이션 결과와 일치한다. 데이터의 특성 (진짜 \(\beta\) 의 매끄러움 정도, 잡음 구조 등) 이 어느 방법이 최선인지 결정한다. 따라서 실무에서는 항상 여러 방법을 시도하고 비교 해야 한다.

3.8 비유: 의료 영상 처리 알고리즘 비교

자기공명영상(MRI) 의 잡음 제거 알고리즘은 여러 종류가 있다 — 가우시안 평활, 비국소 평균, 웨이블릿 임계, 딥러닝 등. 어느 알고리즘이 최선인지는 영상의 성질(촬영 부위·잡음 종류·해상도)에 의존한다. 한 알고리즘이 항상 최선인 경우는 거의 없다. 함수 회귀의 추정 방법 선택도 같은 원리이다.

3.9 실무 가이드라인

  1. 세 방법 모두 적용: pfr() 인자를 바꿔 빠르게 실행 가능.
  2. 시각적 비교: \(\widehat{\beta}(t)\) 곡선을 같은 그림에 겹쳐 그려 패턴 확인.
  3. 예측 성능 비교: CV 또는 hold-out 표본에서 RMSE 계산.
  4. 도메인 지식 반영: 매끄러움이 자명한 도메인(기후) 에서는 거칠기 벌점, 봉우리가 중요한 도메인(생체 신호) 에서는 FPCA 회귀나 기저 전개가 적합.

4 비선형 함수 회귀의 동기

4.1 선형 모형의 한계

§4.4~§4.6에서 다룬 모형은 모두 선형이다:

\[ Y_i = \alpha + \int \beta(s) X_i(s) \, ds + \varepsilon_i. \]

이 모형은 “\(X_i(s)\) 의 값이 두 배가 되면 \(Y_i\) 의 영향도 두 배” 를 가정한다. 이는 강한 가정이며 항상 성립하지 않는다.

4.2 비선형성이 필요한 사례

사례 비선형성의 형태
약물 농도 → 효과 임계값 + 포화 (S-curve)
RT-PCR 형광 → 초기 농도 로그-선형
식품 스펙트럼 → 화학 성분 흡광-농도 비선형 (Beer-Lambert 법칙)
신경 영상 → 인지 점수 임계값 효과

이런 사례에서 선형 모형 적합은 잘 안 되거나, 적합도는 좋아도 외삽에서 실패한다.

4.3 비선형 함수 회귀의 두 가지 전략

§4.8은 두 가지 비선형 접근을 다룬다.

접근 모형 해석 가능성
함수 GAM \(Y = \alpha + \int f(X(t), t) \, dt + \varepsilon\) 중간 (이변량 함수 \(f\))
완전 비모수 \(Y = m(X) + \varepsilon\) 낮음 (functional \(m\))

전자는 “비선형이지만 가법(additive)”, 후자는 “완전 자유(black-box)”. 비선형성의 정도가 다르다.


5 함수 GAM (Continuously Additive Model)

5.1 모형 정의

정의: 함수 일반화 가법 모형 (Functional GAM)

\[ Y_i = \alpha + \int f(X_i(t), t) \, dt + \varepsilon_i, \quad i = 1, \ldots, N. \]

여기서 \(f: \mathbb{R} \times [0, 1] \to \mathbb{R}\)미지의 매끄러운 이변량 함수 이다.

이를 continuously additive model 이라고도 부른다.

5.2 선형 모형의 일반화

선형 모형은 함수 GAM의 특수 경우이다 — \(f(x, t) = \beta(t) \cdot x\) 일 때:

\[ \int f(X_i(t), t) \, dt = \int \beta(t) X_i(t) \, dt. \]

함수 GAM은 \(f\) 가 첫 인자에 대해 비선형일 수 있다. 즉 각 시점 \(t\) 에서 “\(X_i(t)\) 의 비선형 변환” 을 적분.

5.3 직관

함수 GAM은 다음을 허용한다:

  • 각 시점 \(t\) 마다 \(X_i(t)\)\(Y\) 의 관계가 비선형.
  • 시점에 따라 비선형성의 형태가 달라짐.

비유: 선형 모형은 “모든 시점에서 같은 비례” 로 곡선을 합산한다. 함수 GAM은 “각 시점이 자신만의 응답 곡선” 을 가지고, 그 응답들을 적분으로 합산한다. 한 그룹의 합창이 아니라, 각 멤버가 자신의 부분을 부르는 합창과 같다.

5.4 추정: 텐서 곱 스플라인

\(f(x, t)\) 는 이변량 함수이므로 추정에 텐서 곱 스플라인이 사용된다:

\[ f(x, t) \approx \sum_{i=1}^{I} \sum_{\ell=1}^{L} f_{i\ell} B_i^*(x) B_\ell(t), \]

여기서:

  • \(B_i^*(x)\): \(x\) 방향의 스플라인 기저 (\(I\) 개)
  • \(B_\ell(t)\): \(t\) 방향의 스플라인 기저 (\(L\) 개)
  • \(f_{i\ell}\): 추정할 계수 (총 \(I \times L\) 개)

5.5 텐서 곱 기저의 의미

각 기저 \(B_i^*(x) B_\ell(t)\) 는 “\(x\) 방향에는 \(B_i^*\) 의 모양, \(t\) 방향에는 \(B_\ell\) 의 모양” 인 2차원 표면이다.

다변량 회귀 함수 GAM
회귀 계수 벡터 \(\boldsymbol{\beta}\) 회귀 표면 \(f(x, t)\)
단일 차원 기저 \(B_k\) 텐서 곱 기저 \(B_i^*(x) B_\ell(t)\)
계수 \(\beta_k\) 계수 \(f_{i\ell}\)

5.6 두 방향의 기저가 다를 수 있는 이유

\(x\) 의 범위 (예: \(X_i(t)\) 의 값 분포)와 \(t\) 의 범위 (예: \([0, 1]\))는 의미가 다르다. 따라서 두 방향의 기저 종류가 다를 수 있다 (Kokoszka & Reimherr, 2017, §4.8):

  • \(t\) 방향: B-spline (시간 도메인에 자연스러움)
  • \(x\) 방향: 다른 스플라인 또는 정규 분포 변환된 기저

5.7 벌점화

\(f\) 의 차원이 \(I \times L\) 로 매우 클 수 있으므로 §4.5와 같은 벌점이 필요하다. 보통 두 방향에 별도 매끄러움 벌점:

\[ \lambda_x \int\!\!\int (\partial_x^2 f)^2 \, dx \, dt + \lambda_t \int\!\!\int (\partial_t^2 f)^2 \, dx \, dt. \]

두 매끄러움 모수 \(\lambda_x, \lambda_t\) 를 REML로 자동 선택.

5.8 refund::af() 의 사용

library(refund)

# 함수 GAM 적합
fit_gam <- pfr(Y ~ af(X, k = c(20, 20)))
# k = c(I, L): x-방향과 t-방향의 기저 수

# 적합된 f(x, t) 표면 시각화
plot(fit_gam, scheme = 2)   # 2D contour

af()pfr 안에서 함수 GAM 회귀자를 표시한다. 내부적으로 mgcv::gam 의 텐서 곱 스플라인을 호출한다 (McLean et al. 2014).

5.9 장단점

장점:

  • 비선형성 허용 — 선형 모형이 잡지 못하는 패턴 포착.
  • 해석 가능 — 추정된 \(f(x, t)\) 를 시각화로 검토.
  • refund 가 통합 인터페이스 제공.

단점:

  • 모수 수 폭증 (\(I \times L\)) → 표본 크기 요구 증가.
  • 두 방향 매끄러움 모수 동시 추정의 어려움.
  • 해석이 선형 \(\beta(t)\) 보다 어려움.

6 완전 비모수 functional regression

6.1 모형 정의

정의: 완전 비모수 함수 회귀

\[ Y_i = m(X_i) + \varepsilon_i, \quad i = 1, \ldots, N. \]

여기서 \(m: L^2 \to \mathbb{R}\)미지의 functional (함수를 입력으로, 스칼라를 출력으로 하는 사상)이다. \(m\) 의 형태에 어떠한 모수적 가정도 없다.

Ferraty and Vieu (2006) 의 모노그래프가 이 framework의 표준 참조이다.

6.2 모수적 모형과의 비교

모형 가정 추정 대상
선형 \(m(X) = \alpha + \int \beta X\) 함수 \(\beta(t)\)
함수 GAM \(m(X) = \alpha + \int f(X(t), t) \, dt\) 이변량 함수 \(f(x, t)\)
완전 비모수 어떠한 형태도 가능 functional \(m\) 자체

완전 비모수가 가장 자유롭지만, 가장 어려운 추정 문제이다.

6.3 추정: Nadaraya-Watson 풍

새 회귀자 \(x \in L^2\) 에서 \(m(x)\) 를 추정하는 자연스러운 방법:

\[ \widehat{m}(x) = \sum_{i=1}^{N} w_i(x) Y_i, \quad \sum_{i=1}^{N} w_i(x) = 1. \]

가중치 \(w_i(x)\) 는 “\(X_i\)\(x\) 에 가까울수록 큰 가중치” 를 부여한다. 흔한 형태:

\[ w_i(x) = \frac{K(h^{-1} d(x, X_i))}{\sum_{i'=1}^{N} K(h^{-1} d(x, X_{i'}))}. \]

  • \(K\): 비음 감소 커널 함수 (예: 정규 밀도, Epanechnikov)
  • \(d(\cdot, \cdot)\): 함수 사이의 거리 측도
  • \(h\): 대역폭 (bandwidth) — 매끄러움 모수

6.4 핵심 직관

새 곡선 \(x\) 에 대한 \(Y\) 예측은 “\(x\) 와 비슷한 훈련 곡선들의 \(Y\) 값 가중 평균” 이다.

비유: K-Nearest Neighbors 회귀와 같은 정신. 다만 거리가 유클리드가 아니라 함수 거리이고, 이산 가까움이 아니라 커널 가중 평균이다.

6.5 대역폭 \(h\) 의 역할

\(h\) 가 모든 것을 결정한다.

\(h\) 효과
작음 가까운 \(X_i\) 만 가중치 받음 → 작은 편향, 큰 분산
많은 \(X_i\) 가 가중치 받음 → 큰 편향, 작은 분산

이는 비모수 회귀의 표준 편향-분산 트레이드오프의 함수 버전이다. 최적 \(h\) 는 표본 크기·잡음 수준·\(m\) 의 매끄러움에 의존하며, 흔히 CV로 선택한다.

6.6 거리 \(d\) 의 선택

거리 함수 \(d(\cdot, \cdot)\) 의 선택이 또 다른 핵심 요소이다.

선택 1: \(L^2\) 거리

\[ d(x, y) = \|x - y\| = \left(\int (x(t) - y(t))^2 \, dt\right)^{1/2}. \]

가장 자연스러운 선택이지만 항상 최적은 아니다.

선택 2: 도함수 거리 (의미함수, semi-metric)

\[ d(x, y) = \|x'' - y''\| = \left(\int (x''(t) - y''(t))^2 \, dt\right)^{1/2}. \]

곡선이 충분히 매끄러우면 도함수가 더 많은 차별 정보를 담는다.

6.7 의미함수 (semi-metric) 의 본질

도함수 거리의 흥미로운 성질: \(d(x, y) = 0\) 인 두 함수가 같지 않을 수 있다 — \(x\)\(y\) 가 같은 도함수를 가지면 \(x - y\) 가 상수일 수 있다.

이는 일반 거리(metric)의 정의를 위반한다 (positivity 부재). 그러나 통계적으로는 합리적이다 — “함수의 모양은 같지만 평균값만 다른 경우” 를 같은 것으로 본다.

이를 의미함수(semi-metric) 라 한다. Functional regression에서는 의미함수가 자주 더 좋은 성능을 준다 (Ferraty & Vieu, 2006).

6.8 거리 선택의 실용적 가이드

상황 추천 거리
곡선 전체 모양이 정보 \(L^2\) 거리 \(\|x - y\|\)
곡선이 매우 매끄럽고 도함수가 의미적 도함수 거리 \(\|x'' - y''\|\)
평균값이 무관 정규화 후 \(L^2\)
공변 구조가 중요 FPC 점수의 가중 거리

여러 거리를 시도하고 예측 성능으로 비교하는 것이 표준 절차이다.

6.9 장단점

장점:

  • 가장 일반적 — 어떤 형태의 비선형 관계도 표현.
  • 가정이 적음 — 모수적 모형 위반에 robust.
  • 직관적 — kNN 회귀의 자연 일반화.

단점:

  • 차원의 저주 — 함수 공간의 차원이 무한이라 데이터가 sparse.
  • 외삽 위험 — 훈련 데이터에서 멀리 떨어진 \(x\) 에서 신뢰도 낮음.
  • 거리 선택의 자의성 — 최적 거리가 도메인에 의존.
  • 해석 어려움 — \(\widehat{m}\) 은 black box, \(\widehat{\beta}(t)\) 같은 패턴 시각화 불가.

6.10 함수 분류·딥러닝과의 관계

완전 비모수 functional regression은 함수 입력 머신러닝의 토대이다:

  • 함수 SVM, 함수 Random Forest, 함수 신경망 모두 같은 정신 — 함수 거리·표현 + 비모수 학습.
  • 최근 발전: 1D CNN, RNN, Transformer가 곡선 데이터를 직접 입력으로 받음 (deep functional regression).
  • Ferraty & Vieu의 고전적 nonparametric framework 가 통계적 시각, 딥러닝이 알고리즘적 시각을 제공.

7 선형 vs 비선형 선택의 실무 가이드

7.1 선형으로 충분한 경우

신호 의미
잔차에 명백한 비선형 패턴 없음 선형 가정 적합
도메인 지식이 선형성 시사 (예: 흡광도-농도) 선형 채택
해석 가능성이 핵심 선형 추천 (직접 패턴 시각화)
표본 크기 작음 선형 (모수 적음)

7.2 비선형이 필요한 경우

신호 의미
잔차에 비선형 패턴 명백 비선형 시도 필요
도메인이 임계값·포화 시사 비선형 채택
표본 크기 충분 (\(N > 200\)) 비선형 가능
외삽 없음 (예측 범위가 훈련 범위 안) 비모수 가능

7.3 단계별 접근 권장

  1. 선형 모형부터 시도 (pfr(Y ~ lf(X))).
  2. 잔차 분석 — 비선형 패턴 탐지.
  3. 패턴이 있으면 함수 GAM 시도 (pfr(Y ~ af(X))).
  4. GAM도 부족하면 비모수 (Ferraty & Vieu의 NPFDA framework).
  5. 항상 예측 성능을 CV로 비교.

비유: 환자 진료에서 가장 단순한 가설(감기)부터 검사하고, 증상이 맞지 않으면 더 복잡한 가설로 옮기는 것과 같다. 처음부터 가장 복잡한 모형을 쓰면 데이터에 과적합되거나 해석이 어려워진다.


8 R 코드: 함수 GAM 시연

8.1 비선형 데이터 생성

선형 모형으로는 적합되지 않는 데이터를 시뮬레이션한다.

library(refund)
library(ggplot2)

set.seed(42)

n <- 500
grid <- seq(0, 1, length.out = 101)

# 회귀자: 각 시점에서 정규 분포
X <- matrix(rnorm(n * length(grid), mean = 1, sd = 0.5),
            nrow = n, ncol = length(grid))

# 매끄럽게 만들기
for (i in 1:n) {
  X[i, ] <- smooth.spline(grid, X[i, ], spar = 0.7)$y
}

# 비선형 응답: f(x, t) = sin(2 pi t) * x^2
Y_nonlinear <- numeric(n)
for (i in 1:n) {
  fX_t <- sin(2 * pi * grid) * X[i, ]^2
  Y_nonlinear[i] <- sum(fX_t) * (grid[2] - grid[1])
}
Y_nonlinear <- Y_nonlinear + rnorm(n, sd = 0.1)

8.2 선형 vs 함수 GAM 비교

# Method 1: 선형 회귀 (잘못된 모형)
fit_lin <- pfr(Y_nonlinear ~ lf(X, bs = "ps", k = 30))

# Method 2: 함수 GAM (올바른 모형)
fit_gam <- pfr(Y_nonlinear ~ af(X, k = c(20, 20)))

# 적합도 비교 (in-sample)
cat("Linear model: R² =", round(summary(fit_lin)$r.sq, 3), "\n")
cat("GAM model: R² =", round(summary(fit_gam)$r.sq, 3), "\n")

# 예측 성능 (out-of-sample)
n_train <- 400
train_idx <- sample(1:n, n_train)
test_idx <- setdiff(1:n, train_idx)

fit_lin_train <- pfr(Y_nonlinear[train_idx] ~ lf(X[train_idx, ], bs = "ps", k = 30))
fit_gam_train <- pfr(Y_nonlinear[train_idx] ~ af(X[train_idx, ], k = c(20, 20)))

# Test set 예측
pred_lin <- predict(fit_lin_train,
                    newdata = list(X = X[test_idx, ]))
pred_gam <- predict(fit_gam_train,
                    newdata = list(X = X[test_idx, ]))

rmse_lin <- sqrt(mean((Y_nonlinear[test_idx] - pred_lin)^2))
rmse_gam <- sqrt(mean((Y_nonlinear[test_idx] - pred_gam)^2))

cat("Test RMSE (linear):", round(rmse_lin, 4), "\n")
cat("Test RMSE (GAM):", round(rmse_gam, 4), "\n")

예상 결과: 데이터가 비선형이므로 GAM의 RMSE가 선형보다 명백히 작다.

8.3 추정된 \(f(x, t)\) 표면 시각화

plot(fit_gam, scheme = 2,
     main = "Estimated f(x, t) — should resemble sin(2 pi t) * x^2",
     xlab = "x", ylab = "t")

이 표면이 진짜 \(f(x, t) = \sin(2\pi t) \cdot x^2\) 와 비슷한지 확인. 형태가 일치하면 GAM이 비선형 패턴을 정확히 잡았다는 증거.

8.4 비모수 functional regression 시연

refund 에는 직접 구현이 없으므로 fda.usc 패키지의 fregre.np 사용.

library(fda.usc)

# 함수 데이터 객체 생성
X_fdata <- fdata(X, argvals = grid)

# 비모수 functional regression (Nadaraya-Watson 풍)
fit_np <- fregre.np(X_fdata, Y_nonlinear,
                    metric = metric.lp,   # L^p 거리
                    Ker = Ker.norm)       # 정규 커널

cat("NP regression R²:",
    round(1 - sum((Y_nonlinear - predict(fit_np, X_fdata))^2) /
              sum((Y_nonlinear - mean(Y_nonlinear))^2), 3), "\n")

fregre.np 의 핵심 인자:

인자 역할
metric 함수 거리 (\(L^p\), 도함수 거리, 의미함수)
Ker 커널 함수
h 대역폭 (미지정 시 자동)

8.5 거리 선택의 영향

# L^2 거리
fit_l2 <- fregre.np(X_fdata, Y_nonlinear,
                    metric = metric.lp, p = 2, Ker = Ker.norm)

# 1차 도함수 거리
fit_d1 <- fregre.np(X_fdata, Y_nonlinear,
                    metric = semimetric.deriv, nderiv = 1,
                    Ker = Ker.norm)

# 2차 도함수 거리
fit_d2 <- fregre.np(X_fdata, Y_nonlinear,
                    metric = semimetric.deriv, nderiv = 2,
                    Ker = Ker.norm)

# 거리별 R² 비교
for (label in c("L2", "D1", "D2")) {
  fit <- get(paste0("fit_", tolower(label)))
  pred <- predict(fit, X_fdata)
  r2 <- 1 - sum((Y_nonlinear - pred)^2) /
            sum((Y_nonlinear - mean(Y_nonlinear))^2)
  cat(label, "distance: R² =", round(r2, 3), "\n")
}

거리 선택에 따라 \(R^2\) 가 크게 달라질 수 있다. 데이터에 가장 적합한 거리를 CV로 선택하는 것이 표준 절차이다.


9 정리: Chapter 4의 마무리

9.1 §4.7 refund 패키지의 핵심

  1. 통합 인터페이스: pfr() 한 함수로 세 추정 방법 호출.
  2. 헬퍼 함수: lf() (선형), fpc() (FPCA), af() (GAM).
  3. 자동 매끄러움: REML 기반 mixed model framework로 \(\lambda\) 자동 선택.
  4. 시뮬레이션 결과: 매끄러운 \(\beta_1\) 에서 세 방법 비슷, 거친 \(\beta_2\) 에서 거칠기 벌점이 oversmooth.
  5. 실무 권장: 항상 여러 방법 시도, 시각적·정량적 비교.

9.2 §4.8 비선형 함수 회귀의 핵심

  1. 선형 한계: \(\int \beta X\) 모형은 비례 관계만 표현, 임계값·포화 등 부적합.
  2. 함수 GAM: \(Y = \alpha + \int f(X(t), t) \, dt + \varepsilon\), 이변량 매끄러운 함수 \(f\).
  3. 텐서 곱 스플라인: \(f(x, t) = \sum_{i, \ell} f_{i\ell} B_i^*(x) B_\ell(t)\).
  4. refund::af(): 함수 GAM의 통합 R 인터페이스.
  5. 완전 비모수: \(Y = m(X) + \varepsilon\), Nadaraya-Watson 풍 추정.
  6. 거리 선택: \(L^2\) vs 도함수 거리(의미함수) — 데이터 특성에 따라.
  7. 선택 가이드: 선형 → GAM → 비모수 단계별 접근.

9.3 Chapter 4 전체의 종합

§4.1 응용 사례에서 시작해 §4.8 비선형까지의 흐름을 한 눈에:

§4.1 사례 — 가솔린·Tecator·DTI: 곡선 → 스칼라 예측의 가치
    ↓
§4.2 표준 회귀 복습 — LS 추정량, 정규방정식, F-검정
    ↓
§4.3 함수 회귀의 어려움 — 무한차원 다공선성, C_X^{-1} 부재
    ↓
§4.4 기저 전개 — 무한차원을 K차원에 사영
    ↓
§4.5 거칠기 벌점 — λ로 매끄러움 자동 통제
    ↓
§4.6 FPCA 회귀 — 데이터 기반 기저로 다공선성 자동 해결
    ↓
§4.7 refund — 통합 R 인터페이스, 시뮬레이션 비교
    ↓
§4.8 비선형 — 함수 GAM, 비모수 functional regression

핵심 통찰:

  • 함수 회귀는 무한차원 모수의 정칙화 문제.
  • 정칙화 양식(절단·연속, 결정적 기저·데이터 기반)이 추정 방법을 구별.
  • 모든 방법이 한 framework — Ch.3의 적분 연산자 — 위에서 통합.
  • 선형 가정 위반 시 GAM·비모수로 확장 가능.

9.4 다음 챕터 미리보기

  • Ch.5 (함수 반응 모형): 출력도 함수인 회귀. 함수-on-스칼라, 함수-on-함수.
  • Ch.6 (함수 GLM): 비정규 반응(이진·카운트). 다발성 경화증 분류 등.
  • Ch.7 (희소 FDA): 곡선이 불규칙·희소 시점에서만 관측되는 경우. PACE 방법.

이후 모든 챕터가 Ch.4의 framework — 함수 모수 + 적분 연산자 + 정칙화 + 통합 R 인터페이스 — 위에서 전개된다.


10 관련 주제

선행 지식

후속 주제

관련 개념

Subscribe

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