본문 바로가기

자료처리50

MATLAB 주성분 분석 매트랩은 전문적인 통계 도구는 아니지만 못하는 것이 없는 만능 소프트웨어입니다. 아래와 같은 주성분 분석 코드를 사용해서 점수그림 등이 표출되도록 했습니다. 아래 코드에서 폴더명만 수정하면 바로 PCA를 수행할 수 있습니다.% https://kr.mathworks.com/help/stats/pca.html 매트랩 주성분 분석 사이트% 2024-06-28 작성 with ChatGPT% CSV 파일 읽기filename = 'C:\Users\skill\Desktop\data.csv'; % 파일명 설정tbl = readtable(filename); % 데이터를 테이블 형식으로 읽기% 시료명을 제외한 숫자 데이터만 추출data = tbl{:, 2:end}; % 첫 번째 열(시료명)을 제외한 모든 데이터d.. 2024. 7. 1.
SPSS 통계 소프트웨어 주성분 분석 SPSS를 생략하면 섭섭할 것 같아서 추가합니다.  입력자료 준비전체 65개 시료(산불 재, 토양, 나무 껍질)의 16종 PAHs 농도(ng/g) 자료(다변량 통계 자료)를 사용했습니다. 16종 중에서 불검출 비율이 높은 물질을 제외하고 10개의 PAHs 농도만 추렸습니다. 그리고 10개 농도를 합하여 시료별 총 농도를 계산하고, 개별 물질의 비율을 산정했습니다. 이 자료가 아래 스프레드시트에 보이는 자료입니다. 행별로 숫자를 합치면 1이 됩니다. 이와 같이, 시료별로 표준화된 프로필을 작성해서 PCA에 사용합니다. 이렇게 해야 시료별 오염 특성에 따라 점수그림(score plot)에서 그룹화 되는 시료들을 해석하기 편합니다. 단위가 다른 경우에는 별도의 표준화 없이 그대로 입력자료로 사용하면 됩니다. .. 2024. 7. 1.
STATA 통계 소프트웨어 주성분 분석 교내 포탈 사이트에서 버전 16 (최신 버전은 18) 다운로드 가능합니다. STATA는 SPSS와 SAS의 중간 느낌입니다. 명령문을 이용해서 파일을 불러오거나 통계처리를 수행할 수 있고, 메뉴를 이용할 수도 있습니다. 아래 그림은 PCA 입력자료(CSV 형식)를 불러온 화면입니다.   SPSS처럼 메뉴를 통해서 PCA를 수행할 수 있습니다. PCA 결과가 바로 나옵니다.  그래프는 별도로 그릴 수 있습니다.   새 창으로 그래프가 나오는데(MATLAB과 비슷), 생각보다 깔끔합니다.   한글 메뉴에 익숙하지 않아서 영문으로 변경하고, 명령문만으로 PCA를 돌렸습니다. 바로 같은 결과가 나옵니다.  SPSS 사용 경험이 있는 학생은 아주 쉽게 STATA도 사용할 수 있을 것 같습니다. 2024. 7. 1.
jamovi 통계 소프트웨어 주성분 분석 이번에는 JASP와 비슷하게 R에 기반만 jamovi로 주성분 분석을 해보겠습니다. jamovi는 웹브라우저에서 구동되는 클라우드 버전과 PC 설치 버전이 있습니다. jamovi - open statistical software for the desktop and cloud 아래는 클라우드 버전 화면입니다. PC 버전과 거의 같습니다.왼쪽 스프레드 시트로 입력자료를 불러오고, 상단 메뉴의 통계 기법을 선택하여 여러 옵션을 클릭하면 오른쪽 작업창에 거의 실시간으로 통계결과가 표출됩니다. 그러나 통계 메뉴가 너무 단촐합니다.  우측 상단에 보이는 모듈 추가 메뉴를 클릭해서  snowCluster 모듈을 추가했습니다. 저자가 한국인이네요. 여러 통계기법이 추가되었습니다. 그러나 여전히 다양한 기계학습 차원에서.. 2024. 7. 1.
JASP 통계 소프트웨어 주성분 분석 JASP는 R에 기반한 무료 통계 소프트웨어입니다. 자료 입력 화면입니다. SPSS와 거의 동일하게 쉽게 자료를 스프레스시트 형식으로 표출합니다.  주성분 분석 메뉴도 SPSS와 같이 요인분석 아래에 있습니다. 아래 구체적인 메뉴를 보면 회전 방식을 선택할 수 있습니다. 다른 통계 소프트웨어(SAS, MATLAB, R 기본 패키지 등)에는 PCA의 경우, 회전 옵션이 없습니다. 이미 주성분들이 서로 직교하기 때문입니다. 그러나 SPSS로 주성분 분석을 할 때는 보통 직교회전의 Varimax를 선택합니다. JASP에서도 SPSS와 동일한 옵션을 제공합니다.  JASP의 단점은 점수(score)를 따로 저장하는 옵션이 없다는 것입니다. 당장 논문에 필요한 점수그림(score plot)을 그릴 수 없는 상황입.. 2024. 7. 1.
SAS Studio 통계 소프트웨어 주성분 분석 SPSS와 R의 중간 정도 수준(코드 + GUI)으로 통계처리를 하고 싶다면 SAS를 사용하는 것이 적당합니다. 아래 링크에서 무료로 가입(SAS Profile 클릭)해서 온라인으로 SAS를 사용할 수 있습니다. SAS OnDemand for Academics SAS Profile을 만든 후에 Sign In을 하면 아래 화면이 나옵니다. Launch를 클릭하면 SAS가 실행됩니다. 실행화면 상단입니다. 우측에 SAS 프로그래머를 선택하면 코드 위주로 통계처리를 하는 것이고(R, 파이썬과 유사), 시각적 프로그래머를 선택하면 드래그 앤 드롭을 사용해서 코드를 몰라도 통계처리를 할 수 있습니다.   PCA 입력자료를 온라인에 저장하고, 입력 파일을 제대로 인식했는지 확인할 수 있습니다. SAS 프로그래머를 .. 2024. 6. 30.
주요 통계 소프트웨어 주성분 분석(PCA) 방법 소개 다양한 통계 소프트웨어를 이용해서 PCA 방법을 정리했고, 앞으로 이어지는 글을 통해서 결과를 제시할 예정입니다. 주성분 분석(PCA)은 2000년대 초반부터 국내 잔류성유기오염물질(POPs) 연구에 널리 사용되기 시작했습니다. 다이옥신과 PCBs 등은 많은 동질체(congener)가 있기 때문에 시료별 오염특성을 파악하고 비교하기 위해서는 다변량 통계기법을 사용해야 합니다. PAHs도 마찬가지입니다. 예를 들어, 시료 하나만 분석해도 10~20개 성분(변수) 자료가 산출되므로, 이런 많은 변수를 2~3개 주성분으로 축약하여 더 쉽게 오염특성을 평가할 수 있습니다.  제가 처음 PCA를 접한 것은 석사 과정(1999~2000) 중이었습니다. 당시 포항공대에서 산업공학을 전공하시던 분을 모시고 PCA 강의.. 2024. 6. 28.
결정계수와 상관계수 구별 여전히 결정계수와 상관계수를 정확하게 구별하지 않고 논문이나 보고서를 작성하는 학생들이 있습니다.  결정계수: coefficient of determination, R2 (회귀식, 회귀모델 설명력)상관계수: correlation coefficient, r (양의 상관성, 음의 상관성, Pearson/Spearman 상관분석 결과)측정값과 예측값의 산포도 위에 회귀식과 결정계수 R2를 제시했다면, 상관성이 크다고 하는 것보다는 결정계수가 크다(모델의 설명력이 XX%이다)고 기술하는 것이 적절합니다. 같은 자료에 대해서 상관계수 r 값을 제시했다면, 측정값과 예측값의 상관성이 크다고 할 수 있습니다.  ChatGPT로 정리한 내용입니다. 2024. 6. 22.
R로 작성한 전국 미세먼지 지도 에어코리아 1년 측정자료 중에서 도시대기측정망 자료만으로 연평균 미세먼지(PM2.5) 농도 지도를 그렸습니다(오른쪽 그림은 IDW로 보간한 그림입니다). 미세먼지 농도는 경기도와 충청도에서 높고, 울산과 부산 등은 상대적으로 낮은 수준입니다. 미세먼지 절대 농도는 부울경이 낮지만 미세먼지로 인한 초과 사망률과 산업단지 주변 암 발생율 등을 고려하면 부울경 미세먼지 독성이 상대적으로 높은 것으로 추정됩니다.   아래는 겨울(1, 2, 12월)과 여름(6, 7, 8) 농도 지도입니다. 겨울에 울산에서는 파란색만 보이지만, 여름에는 빨간색과 노란색도 보입니다. 절대 농도는 여름에 낮지만, 울산에서는 여름에 다른 지역에 비해 미세먼지 농도가 높은 것을 의미합니다. 여름철 주풍(남서풍)으로 인해 산업단지에서 배출.. 2024. 6. 1.
Openair 오존 8시간 평균 농도 계산 오존의 대기환경기준은 8시간 평균 60 ppb, 1시간 평균 100 ppb 이하입니다. 에어코리아에서 제공하는 자료는 1시간 평균(오후 2시 농도는 오후 1시부터 2시까지 5분 간격으로 측정한 값을 평균한 값이며, 오후 2시 당시 농도가 아님)이므로 이 자료에서 100 ppb를 넘는지 바로 확인할 수 있습니다.  8시간 평균 농도는 연구자가 직접 계산해야 합니다. Openair에서 아래 코드를 이용하면 8시간 평균 농도가 새 열(컬럼)에 생성됩니다. The openair book - 26  Utility functions (bookdown.org) mydata  울산 모 측정소 2019년 자료로 오존 그래프를 그렸습니다.  위 그래프 코드는 다음과 같습니다.ggplot(data = mydata, aes(.. 2024. 5. 18.