데이터 분석(18)
-
[통계분석] 08. 관측 데이터를 잘 설명할 수 있는 잠재 공간을 발견하는 법? - PCA
이번 글은 주성분 분석(Principal Component Analysis)에 대한 설명입니다. 주성분 분석은 차원을 축소하는 기법 중 하나로 잠재 공간을 만들어내거나 다중공선성이 발견했을 때 해결할 수도 있고, 데이터 압축, 노이즈 제거, 영상 인식 등 다양하게 사용됩니다. 순서 1. 차원 축소? 2. 주성분 분석 3. 주성분 분석 실습 1. 차원 축소 관측 데이터를 잘 설명할 수 있는 잠재 공간은 어떻게 발견할 수 있을까요? 데이터의 모든 Feature(독립 변수)들이 종속 변수를 잘 설명할 수 있을까요? "차원의 저주" 라는 말 들어보셨나요? 차원의 저주는 차원이 늘어날수록 설명력이 낮아진다는 것으로 독립 변수들이 많으면 모델링에 필요한 학습 집합의 크기가 커지고 노이즈의 특징들까지 포함되어 모델을..
2020.12.09 -
[SQL] 01. SQL과 데이터 분석 (intro)
이번 글은 "데이터 분석을 위한 SQL 레시피" 도서와 생활코딩 동영상 강의를 참고하여 정리한 글입니다. "데이터 분석을 위한 SQL 레시피"는 데이터 처리부터 매출, 유저 파악, 리포팅 등 각종 데이터 분석과 활용에 관한 내용을 담고 있는 책입니다. 이 책은 단순하게 빅데이터와 관련된 SQL만 다루는 것이 아닌 데이터 분석자가 해야 할 일을 전반적으로 다루고, 다양한 지표를 추출하기 위한 SQL 내용도 포함되어 있습니다. "생활코딩"은 이고잉님이라는 익명의 프로그래머가 운영하는 비영리 코딩 교육 사이트입니다. 순서 1. SQL과 NoSQL? 2. 업무 데이터와 로그 데이터 2.1 업무 데이터 2.2 로그 데이터 2.3 데이터 적절하게 활용하기 1. SQL과 NoSQL SQL(Structured Quer..
2020.12.04 -
[시계열 분석] 01. 시계열 데이터 어떻게 예측하는가?
이번 글은 시계열 데이터를 분석하는 방법에 대해 알아보겠습니다. 시계열 데이터? 시계열 데이터는 주식가격, 실업률, 기후 데이터처럼 관측치가 시간적 순서를 가진 데이터를 말합니다. 시계열 변동요인 시계열 변동요인에는 4가지 요인들이 있습니다. 추세요인: 장기간&점진적으로 상승하거나 하강 순환요인: 수년간의 간격으로 주기적인 패턴 파악 계절요인: 단기적이고 주기적인 패턴을 갖고 반복적인 경향 불규칙요인: 명확히 설명할 수 없는 요인에 의한 우연변동 시계열 자료분석 순서 시계열 데이터를 분석할 때 순서는 다음과 같습니다. 시계열 데이터 구조 파악 시계열 데이터의 구조와 특성을 토대로 미래 값 예측 ARIMA 모형은 정상성 데이터로만 미래의 값 예측 가능 정상성의 기준 모든 시점에 대해 일정한 평균을 가짐. ..
2020.10.30 -
[비정형 데이터] 09. 신호데이터의 추세 제거하기
신호 데이터에서 주기나 피크를 분석할 때는 추세를 제거해야하는 경우도 있습니다. 추세가 있으면 피크가 아님에도 높은 값에 위치하거나 낮은 값에 위치하는 값을 피크라고 판단할 수도 있기 때문입니다. 추세는 pracma 패키지의 detrend함수를 통해 제거할 수 있습니다. detrend(data, tt=추세제거 방법, bp=c(몇 개로 잘라서 볼 것인가)) tt=linear: 선형의 추세 제거 tt=constant: 구간을 나누어 그 구간의 평균점을 찾고 해당 평균점을 빼면서 추세 제거 t = 0:20 x = 3*sin(t)+t # 증가하는 추세를 만들기 위해 t를 더함 y = pracma::detrend(x,tt='linear',bp=c()) # 1차원의 추세만 제거 가능(다차원 추세 안됨) plot(t..
2020.05.04 -
[비정형 데이터] 08. 신호 데이터의 이상치 제거하기
신호 데이터는 누가 선을 건드려서 전기에 스파이크가 나는 현상과 같이 원하지 않는 데이터들이 존재할 수 있습니다. 이때 이상치를제거해야 합니다. 이상치는 전자기기 통신과정에서 발생한 이상값인지 무시해도 되는 값인지에 관해서는 경험 지식과 실험에 의해 결정이 됩니다. 추세에서 벗어나는 이상치를 제거하는 방법에 대해 알아보겠습니다. Hampel filter: 현재 시점 주변 데이터들의 중앙값 대비 얼마나 이상한가를 판단하는 함수 hampel(data, k=window수, t=표준편차 값 범위) 정해진 window구간 내 중앙값을 구함 각 샘플에 대한 중앙값의 절대 오차를 구함 절대 오차의 표준편차를 구함 현재 값의 절대 오차가 위 표준편차를 넘으면 중앙값으로 대체 x = sin(2*pi*(0:99)/100)..
2020.05.04 -
[비정형 데이터] 07. 신호 데이터 스무딩하기
신호 데이터는 중요한 패턴에 대한 신호만 추출하고 싶은데 잔피크들이 너무 많을 때 스무딩을 이용하여 해결할 수 있습니다. 스무딩하는 방법에 대해 알아보겠습니다. Savitzky-Golay Filtering: data를 구간화해서 다차원함수에 적용하는 filtering 방법 pracma 패키지의 savgol(data, 필터링 구간, 다항함수의 차수)함수 # 정현파 생성 ts = sin(2*pi*(1:1000)/200) t1 = ts+rnorm(1000)/10 # 직접 그려보고 window값을 정해야함 t2 = savgol(t1,51) # pracma package t3 = savgol(t1,101) t4 = savgol(t1,5) par(mfrow=c(2,2)) plot(1:1000,t1,col="grey..
2020.05.04