완벽한 다중 공선 성의 예는 무엇입니까?


12

설계 행렬 측면에서 완벽한 공선 성의 예는 무엇입니까 X?

나는 예를 들어 싶습니다 때문에 추정 할 수없는 반전되지 않습니다.(X'X)β^=(XX)1XY(XX)


Colinearity에 대한 권장 게시물을 살펴보고 이해하기에 충분하다고 생각했지만 데이터를 사용하는 간단한 예는 명확성을 추가합니다.
TsTeaTime

2
"X와 Y의 관점에서"는 무엇을 의미합니까? 공선 성은 X 변수 사이에 존재하며 Y는 그와 관련이 없습니다.
gung-Monica Monica 복원

1
나는 와 관련하여 좀 더 구체적으로 질문을 조정했다X
TsTeaTime

1
의 multicollineariry으로 의 특이성에 쇼 : 당신은이 질문에 읽어도 할 수 있습니다 stats.stackexchange.com/q/70899/3277을 . X ' XXXX
ttnphns

답변:


10

다음은 방정식과 관련된 3 개의 변수 , 및 가있는 예입니다.yx1x2

y=x1+x2+ε

여기서εN(0,1)

특정 데이터는

         y x1 x2
1 4.520866  1  2
2 6.849811  2  4
3 6.539804  3  6

따라서 는 의 배수 이므로 명백한 공선 성을 갖습니다.x2x1

우리는 모델을 다음과 같이 쓸 수 있습니다

Y=Xβ+ε

어디:

Y=[4.526.856.54]

X=[112124136]

그래서 우리는

XX=[112124136][111123246]=[61116112131163146]

이제 우리는 의 결정자를 계산합니다 :XX

detXX=6|21313146|11|11311646|+16|11211631|=0

R에서는 다음과 같이 표시 할 수 있습니다.

> x1 <- c(1,2,3)

x2여러 개 만들기x1

> x2 <- x1*2

Y의 선형 조합 만들고 x1, x2약간의 임의성

> y <- x1 + x2 + rnorm(3,0,1)

관찰하다

> summary(m0 <- lm(y~x1+x2))

x2계수 값을 추정하지 못함 :

Coefficients: (1 not defined because of singularities)
            Estimate Std. Error t value Pr(>|t|)
(Intercept)   3.9512     1.6457   2.401    0.251
x1            1.0095     0.7618   1.325    0.412
x2                NA         NA      NA       NA

Residual standard error: 0.02583 on 1 degrees of freedom
Multiple R-squared:      1,     Adjusted R-squared:  0.9999 
F-statistic: 2.981e+04 on 1 and 1 DF,  p-value: 0.003687

모델 행렬 는 다음과 같습니다.X

> (X <- model.matrix(m0))

(Intercept) x1 x2
1           1  1  2
2           1  2  4
3           1  3  6

그래서 것입니다XX

> (XXdash <- X %*% t(X))
   1  2  3
1  6 11 16
2 11 21 31
3 16 31 46

다음과 같이 뒤집을 수 없습니다.

> solve(XXdash)
Error in solve.default(XXdash) : 
  Lapack routine dgesv: system is exactly singular: U[3,3] = 0

또는:

det (XXdash) [1] 0


21

다음은 완벽한 다중 공선 성을 생성하는 상당히 일반적인 몇 가지 시나리오, 즉 디자인 매트릭스의 열이 선형으로 종속되는 상황입니다. 선형 대수에서 이것은 0과 같은 설계 행렬의 열 (계수가 모두 0이 아님)의 열의 선형 조합이 있음을 의미합니다. 이 함정이 그렇게 자주 파업 하는지 설명하는 데 도움 이 되는 몇 가지 실용적인 예를 포함 시켰 습니다.

  1. 인터셉트 용어가 있는지 여부에 관계없이 하나의 변수는 다른 변수의 배수입니다 . 아마도 다른 단위를 사용하여 동일한 변수를 두 번 기록했거나 (예 : "센티미터 길이"가 "길이 미터"보다 정확히 100 배 더 큼) 또는 분모가 고정 될 때 변수를 원시 숫자로 한 번, 비율 또는 백분율로 한 번 기록했습니다 (예 : "페트리 접시 식민지 영역"및 "페트리 접시 식민지 백분율"은 해당 영역의 경우 서로 정확하게 배수 임) 각 페트리 접시는 동일합니다). 여기서 와 가 변수 (디자인 행렬의 열)이고 가 스칼라 상수 이기 때문에 공선 성 이 있습니다 . w x a 1 ( w ) a ( x )wi=axiwxa1(w)a(x)0과 같은 변수의 선형 조합입니다.

  2. 절편 항이 있으며 한 변수가 상수에 따라 다른 변수와 다릅니다 . 이는 변수를 중심에두고 ( ) 회귀 분석에 원시 와 중심 를 모두 포함하면 발생 합니다. 변수가 상수에 따라 다른 단위 시스템에서 측정되는 경우에도 발생합니다 (예 : 가 "켈빈 온도"이고 가 "° C 온도"인 경우 . 절편 항이 항상 변수 ( 디자인 행렬에서 의 열로 표시됨) 로 간주하면 상수 대해wi=xix¯xwwxwi=xi+273.1511nwi=xi+kk있음 수단 직선의 조합 , 및 0 인 설계 행렬의 열.1(w)1(x)k(1n)wx1

  3. 절편 항이 있으며 한 변수가 다른 변수의 아핀 변환에 의해 주어집니다 . 즉 , 변수 와 는 와 관련 이 있습니다. 여기서 와 는 상수입니다. 예를 들어, 변수를 표준화하고 회귀 분석에 원시 및 표준화 된 변수를 모두 포함 하는 경우 이러한 상황이 발생합니다 . 또한 단위 시스템은 공통 0을 공유하지 않지만 와 관련되어 있기 때문에 를 "° F 단위의 온도"및 를 "° C 단위의 온도 "로 기록하는 경우에도 발생합니다wxwi=axi+babzi=xix¯sxxzwxwi=1.8xi+32. 또는 비즈니스 상황에서 각 주문에 대해 고정 비용 (예 : 배송 포함)와 판매 단위당 비용 가 있다고 가정합니다 . 만약 가 주문 비용 이고 가 주문 된 유닛의 수라면 입니다. 관심있는 선형 조합은 입니다. 인 경우 , (3)은 (2)를 특별한 경우로 포함하고; 인 경우 , (3)은 (1)을 특수한 경우로 포함합니다.b$a$wiixiwi=axi+b1(w)a(x)b(1n)=0a=1b=0

  4. 가로 채기 용어가 있고 여러 변수의 합계가 고정되어 있습니다 (예 : 유명한 "더미 변수 트랩") : 예를 들어 "만족 한 고객 비율", "만족하지 않은 고객 비율"및 "고객 만족도를 만족시키지 못하는 비율" "세 가지 변수는 반올림 오차를 제외하고"항상 100으로 합산됩니다. 이러한 변수 중 하나 또는 가로 채기 항은 공선 성을 방지하기 위해 회귀 분석에서 제외해야합니다. "더미 변수 트랩"은 범주 형 변수의 모든 가능한 수준에 대해 표시기 변수 (보다 일반적으로 덜 유용하지만 덜 유용함)를 사용할 때 발생합니다. 예를 들어, 꽃병이 빨강, 녹색 또는 파랑 색 구성표로 생산된다고 가정하십시오. 범주 형 변수 "를 기록한 경우redgreen그리고 "yes"와 "no"에 대해 blue저장되는 이진 변수 일 것입니다 ) 각 꽃병에 대해 변수 중 하나만 변수가 됩니다. 절편 항에 대한 1의 벡터가 있으므로 선형 조합 . 여기서의 일반적인 해결 방법은 절편을 삭제하거나 기준선 또는 기준 레벨이되는 표시기 중 하나를 삭제 (예 : 나가기 )하는 것입니다. 이 경우에 대한 회귀 계수는 다른 설명 변수를 일정하게 유지하면서 빨간색 꽃병에서 녹색 꽃병으로 전환하는 것과 관련된 평균 응답의 변화를 나타냅니다.10red + green + blue = 11(red) + 1(green) + 1(blue) - 1(1) = 0redgreen

  5. 인터셉트 항이 있는지 여부에 관계없이 변수의 하위 집합이 적어도 두 개 이상 있습니다 . (4)의 꽃병이 세 가지 크기로 생성되고 크기에 대한 범주 변수가 세 가지 추가 지표 변수로 저장되었다고 가정하십시오. . 우리는 할 것 large + medium + small = 1입니다. 그런 다음 1(large) + 1(medium) + 1(small) - 1(red) - 1(green) - 1(blue) = 0절편 항이없는 경우에도 선형 조합 이 있습니다. 예를 들어, 설명 변수 가 모든 및 , 와 같이 설명 변수 가있는 경우 두 하위 집합은 동일한 합을 공유 할 필요가 없습니다. 입니다.u,v,w,xui+vi=k1xi+yi=k2k2(u)+k2(v)k1(w)k1(x)=0

  6. 하나의 변수는 여러 다른 변수의 선형 조합으로 정의됩니다 . 예를 들어 각 사각형 의 길이 , 너비 및 둘레 를 기록하면 이므로 선형 조합은 입니다. 인터셉트 기간을 가진 예 : 통신 판매 사업은 두 개의 제품 라인을 가지고 가정, 우리는 순서 기록 구성 단가에 첫 번째 제품의 및 단위 비용으로 두 번째의 로, 고정 배송료 . 주문 비용도 포함하면lwppi=2li+2wi1(p)2(l)2(w)=0iui$avi$b$c$x설명 변수로 를 입력 한 다음 및 . 이것은 (3)의 명백한 일반화입니다. 그것은 또한 우리에게 (4)에 대한 다른 생각의 방법을 제공합니다 : 일단 우리가 합이 고정 된 변수의 부분 집합 중 하나를 모두 알게되면, 나머지는 그것들의 보수이므로 그것들과 그들의 합의 선형 조합으로 표현 될 수 있습니다 . 고객의 50 %가 만족하고 20 %가 불만족 스럽다는 것을 알고 있다면 100 %-50 %-20 % = 30 %는 만족 스럽거나 불만족스럽지 않아야합니다. 꽃병이 빨간색 ( ) 이 아니며 녹색 ( ) 인 경우 파란색 ( ) 이 아님을 알 수 있습니다.xi=aui+bvi+c1(x)a(u)b(v)c(1n)=0red=0green=1blue = 1(1) - 1(red) - 1(green) = 1 - 0 - 1 = 0

  7. 절편 항이 있는지 여부에 관계없이 하나의 변수는 상수이고 0 입니다. 관측 연구에서 표본이 충분한 (임의의) 변이를 나타내지 않으면 변수가 일정합니다. 예를 들어 매우 일반적인 모달 값이있는 경우 샘플에 캡처되지 않은 모집단에 편차가있을 수 있습니다. 샘플 크기가 너무 작아서 모드와 다른 값을 포함하지 않았거나 측정 결과가 모드에서 작은 변화를 감지하기에는 불충분하게 정확합니다. 대안 적으로, 특히 하위 집단을 연구하는 경우 변동이없는 이론적 인 이유가있을 수 있습니다. 로스 앤젤레스의 새로운 빌드 속성의 연구에서, 그것은 모든 데이터 포인트가 있는지 놀라게 될 것입니다 AgeOfProperty = 0State = California! 실험 연구에서 실험 제어중인 독립 변수를 측정했을 수 있습니다. 설명 변수 중 하나가 상수이고 0이면 선형 조합 (다른 변수에 대해 계수 0을 가짐 )은 입니다.x1(x)0

  8. 절편 항이 있고 하나 이상의 변수가 일정합니다 . 가 일정하여 각 이면 선형 조합 입니다.xxi=k01(x)k(1n)=0

  9. 절편 항이 있는지 여부에 관계없이 두 개 이상의 변수는 일정 합니다. 각 및 인 경우 선형 조합 .wi=k10xi=k20k2(w)k1(x)=0

  10. 설계 행렬의 열 수 가 행 수를 초과합니다.kn : 변수간에 개념적인 관계가없는 경우에도 때 설계 행렬의 열이 선형 적으로 종속적이어야 합니다. 단순히 가질 수 없다 선형 치수의 개수와 공간 독립 벡터들보다 낮은 예를 들어, 종이 시트 (2 차원 평면 상에 두 개의 독립적 인 경로를 그릴 수있는 반면 :k>nkkR2) 페이지에 그려진 추가 벡터는 해당 범위 내에 있어야하므로 벡터의 선형 조합이어야합니다. 절편 항은 1의 열을 설계 행렬에 기여하므로 열 중 하나로 계산됩니다 . (이 시나리오는 종종 "large , small "문제 라고도합니다. 관련 CV 질문도 참조하십시오 .)kpn

R 코드를 사용한 데이터 예제

각 예제는 디자인 행렬 , 행렬 (이것은 항상 정사각형이며 대칭 임) 및 입니다. 가 단수 인 경우 (0 결정자이므로 수 없음) 추정 할 수 없습니다 . 것을 조건 아닌 단수는 그 조건에 해당 그 열이 선형 적으로 독립적 인 그래서 전체 순위가 : 이 수학 SE 질문 참조 , 또는 이것의 교제를 .XXXdet(XX)XXβ^=(XX)1XyXXX

(1) 하나의 열이 다른 열의 배수

# x2 = 2 * x1
# Note no intercept term (column of 1s) is needed
X <- matrix(c(2, 4, 1, 2, 3, 6, 2, 4), ncol = 2, byrow=TRUE)

X
#     [,1] [,2]
#[1,]    2    4
#[2,]    1    2
#[3,]    3    6
#[4,]    2    4


t(X) %*% X
#     [,1] [,2]
#[1,]   18   36
#[2,]   36   72

round(det(t(X) %*% X), digits = 9)
#0

(2) 절편 항과 한 변수는 상수에 따라 다른 변수와 다릅니다

# x1 represents intercept term
# x3 = x2 + 2
X <- matrix(c(1, 2, 4, 1, 1, 3, 1, 3, 5, 1, 0, 2), ncol = 3, byrow=TRUE)

X
#     [,1] [,2] [,3]
#[1,]    1    2    4
#[2,]    1    1    3
#[3,]    1    3    5
#[4,]    1    0    2


t(X) %*% X
#     [,1] [,2] [,3]
#[1,]    4    6   14
#[2,]    6   14   26
#[3,]   14   26   54

round(det(t(X) %*% X), digits = 9)
#0

# NB if we drop the intercept, cols now linearly independent
# x2 = x1 + 2 with no intercept column
X <- matrix(c(2, 4, 1, 3, 3, 5, 0, 2), ncol = 2, byrow=TRUE)

X
#     [,1] [,2]
#[1,]    2    4
#[2,]    1    3
#[3,]    3    5
#[4,]    0    2


t(X) %*% X
#     [,1] [,2]
#[1,]   14   26
#[2,]   26   54
# Can you see how this matrix is related to the previous one, and why?

round(det(t(X) %*% X), digits = 9)
#80
# Non-zero determinant so X'X is invertible

(3) 절편과 한 변수는 다른 변수의 아핀 변환입니다

# x1 represents intercept term
# x3 = 2*x2 - 3
X <- matrix(c(1, 2, 1, 1, 1, -1, 1, 3, 3, 1, 0, -3), ncol = 3, byrow=TRUE)

X
#     [,1] [,2] [,3]
#[1,]    1    2    1
#[2,]    1    1   -1
#[3,]    1    3    3
#[4,]    1    0   -3


t(X) %*% X
#     [,1] [,2] [,3]
#[1,]    4    6    0
#[2,]    6   14   10
#[3,]    0   10   20

round(det(t(X) %*% X), digits = 9)
#0

# NB if we drop the intercept, cols now linearly independent
# x2 = 2*x1 - 3 with no intercept column
X <- matrix(c(2, 1, 1, -1, 3, 3, 0, -3), ncol = 2, byrow=TRUE)

X
#     [,1] [,2]
#[1,]    2    1
#[2,]    1   -1
#[3,]    3    3
#[4,]    0   -3


t(X) %*% X
#     [,1] [,2]
#[1,]   14   10
#[2,]   10   20
# Can you see how this matrix is related to the previous one, and why?

round(det(t(X) %*% X), digits = 9)
#180
# Non-zero determinant so X'X is invertible

(4) 여러 변수의 절편 항과 합계가 고정되어 있습니다.

# x1 represents intercept term
# x2 + x3 = 10
X <- matrix(c(1, 2, 8, 1, 1, 9, 1, 3, 7, 1, 0, 10), ncol = 3, byrow=TRUE)

X
#     [,1] [,2] [,3]
#[1,]    1    2    8
#[2,]    1    1    9
#[3,]    1    3    7
#[4,]    1    0   10


t(X) %*% X
#     [,1] [,2] [,3]
#[1,]    4    6   34
#[2,]    6   14   46
#[3,]   34   46  294

round(det(t(X) %*% X), digits = 9)
#0

# NB if we drop the intercept, then columns now linearly independent
# x1 + x2 = 10 with no intercept column
X <- matrix(c(2, 8, 1, 9, 3, 7, 0, 10), ncol = 2, byrow=TRUE)

X
#     [,1] [,2]
#[1,]    2    8
#[2,]    1    9
#[3,]    3    7
#[4,]    0   10

t(X) %*% X
#     [,1] [,2]
#[1,]   14   46
#[2,]   46  294
# Can you see how this matrix is related to the previous one, and why?

round(det(t(X) %*% X), digits = 9)
#2000
# Non-zero determinant so X'X is invertible

(4a) 더미 변수 트랩이있는 절편

# x1 represents intercept term
# x2 + x3 + x4 = 1
X <- matrix(c(1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0), ncol = 4, byrow=TRUE)

X
#     [,1] [,2] [,3] [,4]
#[1,]    1    0    0    1
#[2,]    1    1    0    0
#[3,]    1    0    1    0
#[4,]    1    1    0    0
#[5,]    1    0    1    0

t(X) %*% X
#     [,1] [,2] [,3] [,4]
#[1,]    5    2    2    1
#[2,]    2    2    0    0
#[3,]    2    0    2    0
#[4,]    1    0    0    1
# This matrix has a very natural interpretation - can you work it out?

round(det(t(X) %*% X), digits = 9)
#0

# NB if we drop the intercept, then columns now linearly independent
# x1 + x2 + x3 = 1 with no intercept column
X <- matrix(c(0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0), ncol = 3, byrow=TRUE)  

X
#     [,1] [,2] [,3]
#[1,]    0    0    1
#[2,]    1    0    0
#[3,]    0    1    0
#[4,]    1    0    0
#[5,]    0    1    0

t(X) %*% X
#     [,1] [,2] [,3]
#[1,]    2    0    0
#[2,]    0    2    0
#[3,]    0    0    1
# Can you see how this matrix is related to the previous one?

round(det(t(X) %*% X), digits = 9)
#4
# Non-zero determinant so X'X is invertible

(5) 고정 합계를 가진 변수의 두 가지 하위 집합

# No intercept term needed
# x1 + x2 = 1
# x3 + x4 = 1
X <- matrix(c(0,1,0,1,1,0,0,1,0,1,1,0,1,0,0,1,1,0,1,0,0,1,1,0), ncol = 4, byrow=TRUE)

X
#     [,1] [,2] [,3] [,4]
#[1,]    0    1    0    1
#[2,]    1    0    0    1
#[3,]    0    1    1    0
#[4,]    1    0    0    1
#[5,]    1    0    1    0
#[6,]    0    1    1    0

t(X) %*% X
#     [,1] [,2] [,3] [,4]
#[1,]    3    0    1    2
#[2,]    0    3    2    1
#[3,]    1    2    3    0
#[4,]    2    1    0    3
# This matrix has a very natural interpretation - can you work it out?

round(det(t(X) %*% X), digits = 9)
#0

(6) 하나의 변수는 다른 변수의 선형 조합입니다

# No intercept term
# x3 = x1 + 2*x2
X <- matrix(c(1,1,3,0,2,4,2,1,4,3,1,5,1,2,5), ncol = 3, byrow=TRUE)

X
#     [,1] [,2] [,3]
#[1,]    1    1    3
#[2,]    0    2    4
#[3,]    2    1    4
#[4,]    3    1    5
#[5,]    1    2    5

t(X) %*% X
#     [,1] [,2] [,3]
#[1,]   15    8   31
#[2,]    8   11   30
#[3,]   31   30   91

round(det(t(X) %*% X), digits = 9)
#0

(7) 하나의 변수는 상수이고 0

# No intercept term
# x3 = 0
X <- matrix(c(1,1,0,0,2,0,2,1,0,3,1,0,1,2,0), ncol = 3, byrow=TRUE)

X
#     [,1] [,2] [,3]
#[1,]    1    1    0
#[2,]    0    2    0
#[3,]    2    1    0
#[4,]    3    1    0
#[5,]    1    2    0

t(X) %*% X
#     [,1] [,2] [,3]
#[1,]   15    8    0
#[2,]    8   11    0
#[3,]    0    0    0

round(det(t(X) %*% X), digits = 9)
#0

(8) 절편 항과 하나의 상수 변수

# x1 is intercept term, x3 = 5
X <- matrix(c(1,1,5,1,2,5,1,1,5,1,1,5,1,2,5), ncol = 3, byrow=TRUE)

X
#     [,1] [,2] [,3]
#[1,]    1    1    5
#[2,]    1    2    5
#[3,]    1    1    5
#[4,]    1    1    5
#[5,]    1    2    5

t(X) %*% X
#     [,1] [,2] [,3]
#[1,]    5    7   25
#[2,]    7   11   35
#[3,]   25   35  125

round(det(t(X) %*% X), digits = 9)
#0

(9) 두 개의 상수 변수

# No intercept term, x2 = 2, x3 = 5
X <- matrix(c(1,2,5,2,2,5,1,2,5,1,2,5,2,2,5), ncol = 3, byrow=TRUE)

X
#     [,1] [,2] [,3]
#[1,]    1    2    5
#[2,]    2    2    5
#[3,]    1    2    5
#[4,]    1    2    5
#[5,]    2    2    5

t(X) %*% X
#     [,1] [,2] [,3]
#[1,]   11   14   35
#[2,]   14   20   50
#[3,]   35   50  125

round(det(t(X) %*% X), digits = 9)
#0

(10)k>n

# Design matrix has 4 columns but only 3 rows
X <- matrix(c(1,1,1,1,1,2,4,8,1,3,9,27), ncol = 4, byrow=TRUE)

X
#     [,1] [,2] [,3] [,4]
#[1,]    1    1    1    1
#[2,]    1    2    4    8
#[3,]    1    3    9   27

t(X) %*% X
#     [,1] [,2] [,3] [,4]
#[1,]    3    6   14   36
#[2,]    6   14   36   98
#[3,]   14   36   98  276
#[4,]   36   98  276  794

round(det(t(X) %*% X), digits = 9)
#0

4

직감에 도움이되는 몇 가지 간단한 예 :

  1. x1 높이는 센티미터입니다. 높이는 미터입니다. 그때: x2
    • x1=100x2 이며 설계 행렬 에는 선형 독립 열이 없습니다.X
  2. x1=1 (즉, 회귀에 상수 포함), 는 화씨 온도이고 은 섭씨 온도입니다. 그때: x2x3
    • x2=95x3+32x1 이며 설계 행렬 에는 선형 독립 열이 없습니다.X
  3. 모든 사람은 5 세에 학교를 시작합니다. (즉, 모든 관측치에서 일정한 값 1), 는 ,x 2 x 3x1=1x2x3 은 나이이며 아무도 없습니다. 학교를 떠났습니다. 그때:
    • x2=x35x1X

하나의 데이터 열이 다른 데이터의 선형 함수가되는 여러 가지 방법이 있습니다. 그들 중 일부는 명백하지만 (예 : 미터 대 센티미터) 다른 것들은 더 미묘 할 수 있습니다 (예 : 어린 아이들을위한 나이와 수년간의 교육).

x1Xx21


1
학교와 나이의 예는 매우 훌륭하지만, 모든 사람들이 아직 학교에있는 동안에 만 관계가 유지된다는 점을 지적 할 가치가 있습니다! 이것의 논리적 인 확장은 당신이 나이, 학교 수업, 수년간의 직업을 가지고있을 때이며 졸업 이외의 관계를 계속 유지할 수 있습니다. (실제로 이러한 다중 공선 성은 거의 완벽하지 않은 경향이 있습니다. 다른 나라에서 왔기 때문에 다른 나이에 학교를 시작한 어린이와 같은 예외는 항상 있습니다. 그러나 종종 심각합니다.)
Silverfish

@Silverfish 좋은 포인트! 방금 편집 / 수정을했습니다.
Matthew Gunn
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.