κ°μ₯ κ°κΉμ΄ μ΄μμ΄ κ°μ₯ μ’μ μμΈ‘ λ³μλΌλ κ°μ νμ λ°μ΄ν° μΈνΈκ° μμ΅λλ€. μλ°©ν₯ κ·ΈλλμΈνΈμ μλ²½ν μ
κ°μ΄ κ±°μμλ κ²½μ°κ° μλ€κ³ κ°μ νκ³ μ΄μκ³Ό μΆμΈλ₯Ό κΈ°λ°μΌλ‘ μ½κ² μμΈ‘ν μ μμ΅λλ€.
Rμ ν΄λΉ λ°μ΄ν° λ§€νΈλ¦μ€ (μ΄λμ λλ―Έ μ) :
miss.mat <- matrix (c(5:11, 6:10, NA,12, 7:13, 8:14, 9:12, NA, 14:15, 10:16),ncol=7, byrow = TRUE)
miss.mat
[,1] [,2] [,3] [,4] [,5] [,6] [,7]
[1,] 5 6 7 8 9 10 11
[2,] 6 7 8 9 10 NA 12
[3,] 7 8 9 10 11 12 13
[4,] 8 9 10 11 12 13 14
[5,] 9 10 11 12 NA 14 15
[6,] 10 11 12 13 14 15 16
μ°Έκ³ : (1) κ²° μΈ‘κ° μ μμ±μ μμμ μΈ κ²μΌλ‘ κ°μ λλ©° μ΄λμμλ λ°μν μ μμ΅λλ€.
(2) λͺ¨λ λ°μ΄ν° ν¬μΈνΈλ λ¨μΌ λ³μμ κ°μ΄μ§λ§ ν΄λΉ κ°μ neighbors
μΈμ ν ν λ° μ΄μ μν₯μλ°λ κ²μΌλ‘ κ°μ ν©λλ€. λ°λΌμ νλ ¬μ μμΉκ° μ€μ νλ©° λ€λ₯Έ λ³μλ‘ κ°μ£Ό λ μ μμ΅λλ€.
μΌλΆ μν©μμ λλ ν¬λ§μ κ°μ§ μμλ μΌλΆ κ°μΉ (μ : μ€μ μΌ μ μμ)μ μ¬λ°λ₯Έ νΈκ²¬ (μ : λλ―Έ λ°μ΄ν°μμ μ΄λ¬ν μ€λ₯λ₯Ό μμ± ν μ μμ)μ μμΈ‘ν μ μμ΅λλ€.
> mat2 <- matrix (c(4:10, 5, 16, 7, 11, 9:11, 6:12, 7:13, 8:14, 9:13, 4,15, 10:11, 2, 13:16),ncol=7, byrow = TRUE)
> mat2
[,1] [,2] [,3] [,4] [,5] [,6] [,7]
[1,] 4 5 6 7 8 9 10
[2,] 5 16 7 11 9 10 11
[3,] 6 7 8 9 10 11 12
[4,] 7 8 9 10 11 12 13
[5,] 8 9 10 11 12 13 14
[6,] 9 10 11 12 13 4 15
[7,] 10 11 2 13 14 15 16
μμ μλ μμ μΌ λΏμ΄λ©° (μκ°μ μΌλ‘ λλ΅ ν μ μμ) μ€μ μλ λ νΌλ μ€λ¬μΈ μ μμ΅λλ€. κ·Έλ¬ν λΆμμ μννλ κ°λ ₯ν λ°©λ²μ΄ μλμ§ μ°Ύκ³ μμ΅λλ€. μ΄κ²μ΄ κ°λ₯ν΄μΌνλ€κ³ μκ°ν©λλ€. μ΄ μ νμ λΆμμ μννλ λ° μ ν©ν λ°©λ²μ 무μμ λκΉ? μ΄ μ νμ λΆμμ μννλ R νλ‘κ·Έλ¨ / ν¨ν€μ§ μ μ?
λ΅λ³
μ΄ μ§λ¬Έμ νμ§ν λ νΉμ΄ μΉλ₯Ό μλ³νκ³ μμ νκΈ° μν΄ κ°μ₯ κ°κΉμ΄ μ΄μ μ κ°λ ₯ νκ² μ¬μ©νλ λ°©λ²μ 묻μ΅λλ€ . μ κ·Έλ κ²νμ§ μμ΅λκΉ?
μ μ°¨λ κ°λ ₯ν λ‘컬 μ€λ¬΄μ€λ₯Ό κ³μ°νκ³ μμ°¨λ₯Ό νκ°νκ³ λ무 ν° κ°μ μ κ±°νλ κ²μ λλ€. μ΄ κΈ°λ₯μ λͺ¨λ μꡬ μ¬νμ μ§μ μΆ©μ‘± μν€λ©° λ‘컬 μ΄μμ ν¬κΈ°μ νΉμ΄ μΉλ₯Ό μλ³νκΈ°μν μκ³ κ°μ λ³κ²½ν μ μμΌλ―λ‘ λ€λ₯Έ μμ© νλ‘κ·Έλ¨μ λ§κ² μ‘°μ ν μμμλ§νΌ μ μ°ν©λλ€.
(μ μ°μ±μ΄ μ€μν μ΄μ λ 무μμ λκΉ? κ·Έλ¬ν μ μ°¨λ νΉμ μ§μν λ νλμ βμΈλΆμ μΈβκ²μΌλ‘ μλ³ ν κ°λ₯μ±μ΄ λκΈ° λλ¬Έμ κ·Έλ¬ν μ μ°¨λ λͺ¨λ λ§€λλ½κ² κ°μ£Ό λ μ μμ΅λλ€ . μΈλΆ μ¬νμ μ μ§νλ κ²κ³Ό λ‘컬 νΉμ΄ μΉλ₯Ό νμ§νμ§ λͺ»νλ μ¬μ΄μ νΈλ μ΄λ μ€νλ₯Ό μ½κ° μ μ΄ν΄μΌν©λλ€.)
μ΄ μ μ°¨μ λ λ€λ₯Έ μ₯μ μ μ¬κ°νμ νλ ¬ νλ ¬μ΄ νμνμ§ μλ€λ κ²μ λλ€. μ€μ λ‘ μ΄λ¬ν λ°μ΄ν°μ μ ν©ν λ‘컬 μ€λ¬΄μ€λ₯Ό μ¬μ©νμ¬ λΆκ·μΉ λ°μ΄ν° μλ μ μ© ν μ μμ΅λλ€ .
R
, λ° λͺ¨λ κΈ°λ₯μ κ°μΆ ν΅κ³ ν¨ν€μ§λΏλ§ μλλΌμ κ°μ κ°λ ₯ν λ‘컬 μ€λ¬΄λκ° λ΄μ₯λμ΄ μμ΅λλ€ loess
. λ€μ μμ λμ΄λ₯Ό μ¬μ©νμ¬ μ²λ¦¬λμμ΅λλ€. μ΄ νλ ¬μλ κ°μ νκ³Ό κ°μ μ΄ μ΄ μμΌλ©° μ½ νλͺ©μ΄ μμ΅λλ€. μ΄κ²μ μ¬λ¬ κ°μ κ·Ήν κ·Ήλ¨λΏλ§ μλλΌ κ΅¬λ³ ν μμλ μ 체 μ§μ ( βμ£Όλ¦β)μ κ°λ 볡μ‘ν κΈ°λ₯μ λνλ
λλ€. βoutlyingβμΌλ‘ κ°μ£Όλλ λΉμ¨μ μ΄μμ μ½κ° μ΄κ³Ό νμ¬ νμ€ νΈμ°¨κ° μλ³Έ λ°μ΄ν°μ νμ€ νΈμ°¨μ μ λΆκ³Όν κ°μ°μμ μ€μ°¨κ° μΆκ°λμμ΅λλ€ . μ΄ ν©μ± λ°μ΄ν° μΈνΈλ μ€μ λ°μ΄ν°μ μ¬λ¬ κ°μ§ κΉλ€λ‘μ΄ κΈ°λ₯μ μ 곡ν©λλ€.
49
4000
5%
1/20
(λΉ κ²μ μ μ R
λ§€νΈλ¦μ€ νμ μμ§ μ€νΈλ¦½μΌλ‘μ κ·Έλ € κ·μΉ). μμ°¨λ₯Ό μ μΈν λͺ¨λ μ΄λ―Έμ§λ μ½κ°μ μ°¨μ΄κ°μλ κ°μ νμνλ λ° λμμ΄λ©λλ€. μ΄κ²μ΄ μμΌλ©΄ κ±°μ λͺ¨λ μ§μ νΉμ΄ μΉκ° 보μ΄μ§ μμ κ²μ
λλ€!
βImputedβ(κ³ μ )μ βRealβ(μλμ μ€μΌλμ§ μμ) μ΄λ―Έμ§λ₯Ό λΉκ΅νμ¬ μ΄μμΉ (outlier)λ₯Ό μ κ±°νλ©΄ μμ λ°μνλ μ£Όλ¦μ μΌλΆκ° μ λΆλ μλ μ μ μ μμ΅λλ€. λ‘ , λΌμ΄νΈ μμ)λ βμμ°¨βνλ‘― μ€νΈλΌμ΄ν κ°λλ‘ λͺ λ°±νλ€.
(0,79)(49,30)
βμμ¬ λ¬Όβκ·Έλ¦Όμ μΌλ£©μ λͺ λ°±ν κ³ λ¦½ λ μ§μ νΉμ΄ μΉλ₯Ό λνλ λλ€. μ΄ κ·Έλ¦Όμλ κΈ°λ³Έ λ°μ΄ν°μ κΈ°μΈ ν λ€λ₯Έ ꡬ쑰 (μ : λκ°μ μ€λ¬΄λ¬)λ νμλ©λλ€. μ§λ¦¬ ν΅κ³μ λ°©λ²μ ν΅ν΄ λ°μ΄ν°μ κ³΅κ° λͺ¨λΈμ μ¬μ©νμ¬μ΄ μ μ°¨λ₯Ό κ°μ ν μ μμ§λ§,μ΄λ₯Ό μ€λͺ νκ³ μ€λͺ νλ©΄ μ¬κΈ°μ λ무 λ©μ΄ μ§ μ μμ΅λλ€.
BTW,μ΄ μ½λλ μ°Ύμλ³΄κ³ μ λμ μ΄μμΉ. μ΄κ²μ μ μ°¨μ μ€ν¨κ° μλλλ€. νΉμ΄ μΉκ° μ κ· λΆν¬λ‘ λΆν¬ λμκΈ° λλ¬Έμ κ·Έ μ€ μ λ°μ ν¬κΈ°κ° μ΄μμΈ κΈ°λ³Έ κ°κ³Ό λΉκ΅νμ¬ ν¬κΈ° κ° 0μμ κ°κΉ κ±°λ λ무 μμμ νλ©΄μμ κ°μ§ ν μμλ λ³νκ° μμμ΅λλ€.
102200
3
600
#
# Create data.
#
set.seed(17)
rows <- 2:80; cols <- 2:50
y <- outer(rows, cols,
function(x,y) 100 * exp((abs(x-y)/50)^(0.9)) * sin(x/10) * cos(y/20))
y.real <- y
#
# Contaminate with iid noise.
#
n.out <- 200
cat(round(100 * n.out / (length(rows)*length(cols)), 2), "% errors\n", sep="")
i.out <- sample.int(length(rows)*length(cols), n.out)
y[i.out] <- y[i.out] + rnorm(n.out, sd=0.05 * sd(y))
#
# Process the data into a data frame for loess.
#
d <- expand.grid(i=1:length(rows), j=1:length(cols))
d$y <- as.vector(y)
#
# Compute the robust local smooth.
# (Adjusting `span` changes the neighborhood size.)
#
fit <- with(d, loess(y ~ i + j, span=min(1/2, 125/(length(rows)*length(cols)))))
#
# Display what happened.
#
require(raster)
show <- function(y, nrows, ncols, hillshade=TRUE, ...) {
x <- raster(y, xmn=0, xmx=ncols, ymn=0, ymx=nrows)
crs(x) <- "+proj=lcc +ellps=WGS84"
if (hillshade) {
slope <- terrain(x, opt='slope')
aspect <- terrain(x, opt='aspect')
hill <- hillShade(slope, aspect, 10, 60)
plot(hill, col=grey(0:100/100), legend=FALSE, ...)
alpha <- 0.5; add <- TRUE
} else {
alpha <- 1; add <- FALSE
}
plot(x, col=rainbow(127, alpha=alpha), add=add, ...)
}
par(mfrow=c(1,4))
show(y, length(rows), length(cols), main="Data")
y.res <- matrix(residuals(fit), nrow=length(rows))
show(y.res, length(rows), length(cols), hillshade=FALSE, main="Residuals")
#hist(y.res, main="Histogram of Residuals", ylab="", xlab="Value")
# Increase the `8` to find fewer local outliers; decrease it to find more.
sigma <- 8 * diff(quantile(y.res, c(1/4, 3/4)))
mu <- median(y.res)
outlier <- abs(y.res - mu) > sigma
cat(sum(outlier), "outliers found.\n")
# Fix up the data (impute the values at the outlying locations).
y.imp <- matrix(predict(fit), nrow=length(rows))
y.imp[outlier] <- y[outlier] - y.res[outlier]
show(y.imp, length(rows), length(cols), main="Imputed")
show(y.real, length(rows), length(cols), main="Real")
λ΅λ³
μ΄ κΈ°μ¬λ₯Ό μ΄ν΄ 보λ κ²μ΄ μ’μ΅λλ€ [0]. ν΄κ²°νλ €λ λ¬Έμ λ μ μκ° μ μν λ°©λ²μ΄ NN μ λ ₯λ³΄λ€ μ½κ° λ μ κ΅νλ€λ μ μ μ μΈνκ³ λ κ·νμ μ€λͺ μ μ λ§λ κ² κ°μ΅λλ€ (μμμ κ³Ό λΉμ·ν κ²μ μ¬μ©νλλΌλ).
( , by λ°μ΄ν° νλ ¬μ΄ νμ€ν λμλ€κ³ κ°μ ν©λλ€ . λΆμμ μ μ²λ¦¬ λ¨κ³μμ κ° μ΄μ΄ λ―ΈμΉ μ¬λμΌλ‘ λλ )
XXn
p
μ΄ λ°©λ²μ μμ΄λμ΄λ λν¬ νλνλ (κ° λ° λλ½ (μ΄λ PCA μ±λΆμ μΆμ νμ λ μμ€ ν¨μλ₯Ό μ¬μ©νμ¬ μνλλ€) νΉμ΄μ μ μ‘΄μ¬ κ°λ₯μ±μ μ ννλ λ°©μμΌλ‘ λ°μ΄ν° λ§€νΈλ¦μ€μ κ²¬κ³ ν PCA λΆν΄ EM μ ν λμΉ λ°©λ²μ μ¬μ©νμ¬ μνλ©λλ€. μλμμ μ€λͺ νλ κ²μ²λΌ λ°μ΄ν° μΈνΈμ PCA λΆν΄κ° λ°μνλ©΄ λλ½ λ μμλ₯Ό μ±μ°κ³ μ΄λ¬ν μΆμ μΉμ λν λΆνμ€μ±μ νκ°νλ κ²μ λ§€μ° κ°λ¨ν©λλ€.
kκ° λ°λ³΅μ 첫 λ²μ§Έ λ¨κ³λ λ°μ΄ν° λμΉ λ¨κ³μ λλ€. μ΄κ²μ EM μκ³ λ¦¬μ¦μμμ κ°μ΄ μνλ©λλ€. λλ½ λ μ μ μμ ν κ°μΌλ‘ μ±μμ§λλ€ (μ΄λ E- λ¨κ³).
2 λ¨κ³ λ°λ³΅ μ μ°¨μ λ λ²μ§Έ λΆλΆμμλ μ΄μ λ¨κ³μμ μ»μ μ¦κ° λ°μ΄ν°μ (κ°ν) PCAλ₯Ό λ§ μΆ₯λ λ€. μ΄λ μ μ€ννΈλΌ λΆν΄ λ₯Ό (μ€μ¬μ μΆμ μΉ), by μ§κ΅ νλ ¬ λ° by λκ°μ νλ ¬ ( μ robustified, PCA κΈ°λ° M λ¨κ³μ μΌμ’ μ΄λ€).
XXttβRp
p
k
LL
k
k
DD
kβ€p
λ Όλ¬Έμ μμ½νλ©΄ λ€μκ³Ό κ°μ΄ μ μνλ μΌλ°μ μΈ μκ³ λ¦¬μ¦μ΄ μμ΅λλ€.
-
μ€μ νμμμ€ . λλ½ λ μμκ° μ΄κΈ° μΆμ κ°μΌλ‘ μ±μμ§ λ μΆμ κ° μ ꡬνμμμ€. λλ½ λ κ° μ μ λν΄ μ΄λ¬ν μ΄κΈ° μΆμ κ°μ (μλ λ°μ΄ν° νλ ¬) μ λλ½λμ§ μμ μμμ ν λ¨μ λ° μ΄ λ¨μ νκ· μ νκ· μ λλ€ .
l=0WW0
XX
-
κ·Έλ° λ€μ μλ ΄ λ λκΉμ§ μννμμμ€.
γ . μμ κ°λ ₯ν PCAλ₯Ό μννκ³ μΆμ κ°μ μ»μ΅λλ€
WWl(ttl,LLl,DDl)
λΉ. μΈνΈ
l=l+1μ¨. μ¬μ©
YYl=LLlβ1(WWlβ1βttlβ1)(LLlβ1)β²λ. μ λλ½ λ μμλ₯Ό λͺ¨λΈ (EM μκ³ λ¦¬μ¦μ E λ¨κ³μμμ κ°μ΄) λ° ν΄λΉ νλͺ©μ μν΄ λλ½λμ§ μμ μμ .
WWlWWlβΌN(ttlβ1,LLlβ1DDlβ1(LLlβ1)β²)
YYl
κ° μΌλΆ μκ³ κ°λ³΄λ€ μμ λκΉμ§ (a-> c)λ₯Ό λ°λ³΅νμμμ€ . μ΅μ’ λ°λ³΅μμ μ»μ μΆμ λ λ§€κ° λ³μμ 벑ν°λ λ©λλ€. ( t
||WWlβ1βWWl||F(tt,LL,DD)
μμ΄λμ΄λ κ° λ°λ³΅μμ λ°μ΄ν° λͺ¨λΈ μ΄ μ μ λ λ©μ΄μ§κ³ μλ€λ κ²μ λλ€. μμ§ν μ΄κΈ° μΆμ μΉ λ° κ°λ ₯ν M λ¨κ³λ νΉμ΄ μΉκ° μ ν©μΉμ μν₯μ λ―ΈμΉμ§ μλλ‘ν©λλ€.
(ttlβ1,LLlβ1DDlβ1)μ΄ μ κ·Ό λ°©μμ λν λμΉμ νμ§μ νμΈνκΈ°μν λ€μν μ§λ¨ λꡬλ₯Ό μ 곡ν©λλ€. μλ₯Ό λ€μ΄, μμ λ€μ€ λλ‘μ°λ₯Ό μμ± ν μ μμ§λ§ μ΄λ²μλ λ°μ΄ν°μ λλ½λμ§ μμ μμμ λν΄ -λ§€νΈλ¦μ€λ₯Ό μμ±νκ³ μμ± λ (λ°μ μ) λ°μ΄ν°μ λΆν¬κ° λλ½λμ§ μμ κ° μ μ κ΄μ°° λ κ°κ³Ό μΌλ§λ μΌμΉνλμ§ νμΈνμμμ€.
N(ttlβ1,LLDD(LL)β²)μ΄ μ κ·Όλ²μ λν κΈ°μ±ν R ꡬνμ λν΄μλ μ λͺ¨λ₯΄μ§λ§ νμ κ΅¬μ± μμ (μ£Όλ‘ κ°λ ₯ν PCA μκ³ λ¦¬μ¦)μμ μ½κ² μμ± ν μ μμΌλ©° Rλ‘ μ ꡬνλ©λλ€ .rrcov ν¨ν€μ§λ₯Ό μ°Έμ‘°νμμμ€ (λ Όλ¬Έμ μ΄ μ£Όμ μ λν μ‘°μ©ν μ 보).
- Serneels S. and Verdonck, T. (2008). νΉμ΄ μΉ λ° λλ½ λ μμκ° ν¬ν¨ λ λ°μ΄ν°μ μ£Όμ κ΅¬μ± μμ λΆμ κ³μ° ν΅κ³ λ° λ°μ΄ν° λΆμ vol : 52 νΈ : 3 νμ΄μ§ : 1712-1727.