목록Coding (81)
exestudiary
최소제곱 추정 방법 개체에서 발생하는 잔차에 제곱을 취하여 합을 구하는 방식 큰 절대값 잔차가 발생하지 않도록 회귀직선을 움직임. 한 개의 특이점이 회귀직선의 결정에 막중한 영향력을 가짐. 후버의 M-추정 최소제곱 추정은 함수으로 정의할 떄를 최소화그런데 이 추정치가 안정적이지 못한 이유는 함수가 z²에 비례하는 형태이기 때문 따라서 다음의 변형을 고려한다.|z| 이를 반영한 후버의 M-추정량은 로 얻어진다.여기서 σ를 모르기 때문에 (다음 페이지의) MAD로 추정해 사용한다. MAD (median of absolute deviations)를 가정하고 σ에 대한 로버스트 추정량으로 IQR / 1.35 를 사용한다.MAD는 또 다른 로버스트 추정량으로라 정의한다. 목적함수 l ₀ (z) vs. ..
ACF(자기상관 함수 - 왼쪽) 플롯은 시계열 데이터의 현재 값과 과거 값 사이의 상관 관계를 시간 지연에 따라 보여준다.PACF(부분 자기상관 함수 - 오른쪽)플롯은 시간 지연 간의 상관 관계를 보여준다. 이는 다른 지연의 영향을 배제한 후의 상관 관계를 나타낸다. ACF 그래프는 라그(lag) 증가함에 따라 상관계수가 천천히 감소하는 패턴을 보여준다.일반적으로 이런 패턴은 데이터에 계절성이나 추세와 같은 비정상적인 성분이 포함되어 있을 수 있음을 나타낸다.그러나 이 경우, ADF 테스트를 통해 데이터가 정상 시계열임을 확인했기에 ACF 그래프에서 나타나는 느린 감소나 주기적 패턴에도 불구하고, 우리는 이 데이터를 정상적인 시계열로 간주하고 ARIMA 모델링에 사용할 것이다.이로 인해 비정상 시계열..
정상성시계열 데이터의 통계적 속성이 시간에 따라 변하지 않음을 의미하는데, 데이터의 평균과 분산이 일정함을 의미한다. adfuller() 함수를 통해 시계열 데이터의 정상성을 검증하기 위한 Augmented Dicker-Fuller 테스트를 수행한다.from statsmodels.tsa.stattools import adfuller# ADF 테스트adf_result = adfuller(train_data['평균기온'])print(f'ADF 통계값: {adf_result[0]}')print(f'p-value: {adf_result[1]}') ADF 테스트ADF 테스트는 '단위근'이라는 특정 유형의 비정상성을 확인한다. 이 테스트에서 계산되는 ADF 통계치는 데이터에 단위근이 없다는 대립 가설에 대한 증거를..
평균 절대 오차 (Mean Absolute Error, MAE) MAE는 회귀 문제에서 모델의 정확도를 평가하는데 사용되는 방법 중 하나이다. MAE는 실제값과 예측값 간의 차이의 절대값의 평균을 의미한다. 이는 모델의 예측이 얼마나 정확한지를 나타내는 지표로, 값이 낮을수록 더 정확한 예측을 의미한다. 장점모든 오차의 절대값을 평균을 계산하므로, 예측하고자 하는 단위가 동일하다. (예: MAE가 5라면 모델이 평균적으로 실제값과 5정도 차이남을 나타낸다.)다른 평가 지표에 비해 이상치에 덜 민감하다. 단점모든 오차를 동일하게 취급하므로, 특정 오차에 가중치를 주고싶을 경우 부적절한 평가방법일 수 있다.
ARIMA - 자기회귀 누적 이동 평균 (Autoregressive Integrated Moving Average)의 약자- 시계열 데이터의 과거 값과 오류를 사용하여 미래 값을 예측- 이 모델은 자기회귀(AR), 차분(I), 이동평균(MA) 세 가지의 구성 요소로 이루어져 있음. 자기회귀(AR)'자기회귀'는 과거의 값들이 미래 값에 어떤 영향을 미치는지를 설명한다.예를 들어, 지난 주의 판매량이 이번 주의 판매량에 영향을 미치는 경우, 이는 자기 회귀 관계에 해당한다.AR 부분에서는 'p'라는 파라미터를 사용하는데, 이는 과거 데이터 포인트 중 얼마나 많은 것을 고려할 것인지를 결정한다. 차분(I)'차분'은 비정상적인 시계열 데이터를 정상적인 상태로 만들기 위해 사용된다.비정상 시계열은 평균, 분산 등..
배열의 정의같은 종류의 많은 자료를 하나의 이름으로 저장하는 연속된 기억장소 1차원 배열 예시//선언//double avg[1000];int age[5]; //선언과 동시에 초기화//int d[6] = { 31, 28, 31, 30, 31, 30 };int sum[100] = { 0 }; // 첫 원소에는 0으로, 부족한 초깃값은 무조건 0으로 초기화//int a[] = {1, 2, 3, 4, 5} 여기서 주의해야할 점이 있다.int sum[100] = {1} 만약 위와 같이 입력이 된다면 어떻게 될까? {1}이라면 첫 원소는 1로, 부족한 값은 0으로 초기화한다. 또, int a[ ] 만 입력해도 오류가 뜨기에 조심해야한다.반드시 int a[] = {숫자, 숫자, 숫자, 숫자 ...} 의 형식으로 ..
# 파일 불러오기 ==== Exam = read.table("/Users/user/OneDrive - 경북대학교/학과/2-1/탐색적자료분석 및 실험/실습파일/exam1.txt", head = T) head(Exam$score) # 줄기와 잎그림 확인 ==== stem(Exam$score) # 줄기 수 줄이기와 늘이기 ==== # 이유는 여러가지 가능성을 열어두고 탐색하기 위함. ## 줄기 수 줄이기 ==== stem(Exam$score, scale = 0.5) # (0,1), (2,3).... 한 줄에 다 들어감. # 이렇게하면 이전에 했던 줄기 그림이 쌍봉분포인데 비해 이것의 줄기 그림은 단봉분포의 형태를 취한다. 이것은 너무 단순하여 이 자료의 주요 특성을 잃은 것으로 볼 수도 있다. 즉 2개의 봉우..
while문은 조건식의 값이 참이면 문장을 반복 수행하고 거짓이면 반복을 중단한다. while문 기본형식 while(조건식) 반복할 문장; 조건식은 참, 거짓으로 계산되는 수식으로 관계 연산자나 논리 연산자를 사용한 수식이 일반적이다. 예시 # pragma warning(disable : 4996) # pragma warning(disable : 6031) # include # include int main() { int i, sum = 0; i = 1; while (i 10) break; sum += i; mult *= i; i++; } 무조건 한 번은 반복하기 do~while문 do { 반복할 문장; } while (조건식); do는 무조건 뒤에 {}(중괄호)가 필요하다. i = 1; do{ prin..
반복문 기본형식 for (i = 1; i
case별로 특정 코드 실행하기 switch (식) { case 상수값1; 코드1; break; case 상수값2; 코드2; break; case 상수값3; 코드3; break; default: 코드n; } (식) 계산 결괏값이 정수형인 것만 가능하며, 'case'뒤에는 상수만 한 개 올 수 있음.(상수만 있는 식은 가능) 문자 상수 'A'의 ASCII코드는 01000001이며, 논리값 참, 거짓은 정수 1, 0에 해당한다. 이처럼 문자 상수는 문자를 표현하는 코드 값이 정수이므로 '식' 결과가 문자형인 것도 사용 가능하며, '식' 결과가 논리값인 식 또한 가능하다. 'case'값 역시 문자 상수나 논리값에 해당하는 정수를 사용하여 case 'A'; , case'+'; , case 1;, case 0; ..
