본문 바로가기

Python/Basic Data Analysis16

[Python] 회귀분석(Regression Analysis) [회귀식 추정, 회귀모형 검정, 적합도 파악] 안녕하세요~ 우주신 입니다. 저번 상관분석 포스팅에 이어 이번에는 회귀분석(Regression Analysis)에 대해 정리 해보겠습니다. 상관분석은 변수들이 서로 얼마나 밀접하게 직선적인 관계를 가지고 있는지를 분석하는 통계적 기법이며, (바로 이전 글에 자세히 다뤄봤으니 참고) 회귀분석은 한 개 또는 그 이상의 변수들(독립변수)에 대하여 다른 변수(종속변수) 사이의 관계를 수학적인 모형을 이용하여 설명하고 예측하는 분석기법 입니다. 쉽게 말하자면, 상관분석에서는 산점도의 점들의 분포를 통해 일정한 패턴을 확인한 후, 상관계수를 구하여 두 변수 간의 선형 관계를 알 수 있었습니다. 여기서 더 나아가, 이 일정한 패턴을 활용하여 무엇인가를 예측하는 분석을 회귀분석이라고 보시면 됩니다. 회귀분석 하면 괜히.. 2021. 8. 7.
[Python] 상관분석(Correlation Analysis), [산점도, 공분산, 상관계수, 검정] 안녕하세요. 우주신 입니다. 약 3년만에 포스팅을 하네요... 일을 하다보니 포스팅을 꾸준히 못 하고 있습니다..ㅠ 오늘은 블로그에서 가장 조회수가 높은 '[R] 상관분석...' 글을 Python으로 빠르게 변환 해봤습니다. 이번 포스팅과 다음 포스팅에서는 상관분석과 회귀분석에 대해 정리해보겠습니다. 우리는 종종 어떤 두 사건 간의 연관성을 분석해야 할 경우가 많습니다. 둘 또는 그 이상의 변수들이 서로 관련성을 가지고 변화할 때 그 관계를 분석해야 하는데, 가장 잘 알려진 방법 중 하나가 상관분석과 회귀분석 입니다. 예를 들어, GDP와 기대수명 간의 관계, 키와 몸무게 간의 관계를 보자면, 각각 두 변수 간의 선형적 관계를 상관(Correlation)이라고 하며, 이러한 관계에 대한 분석을 상관분석(.. 2021. 3. 5.
[Python] matplotlib 이용하여 누적영역형차트, 원형차트 그리기 안녕하세요. 우주신 입니다. 저번 시간에 이어 matplotlib 이용하여 누적영역형차트, 원형차트 그리는 방법에 대해 포스팅 하겠습니다. 우선, 그래프를 만들 임의의 데이터를 생성하겠습니다. (정말 아무 의미 없는 값을 입력해 데이터 생성했어요;) 1. 누적영역형차트 (Stacked Area Graph) 누적영역형차트는 두 개 이상의 데이터 계열을 서로 누적하는 영역형 차트 입니다. 특히, 제품별로 매출에 기여하는 정도를 시계열로 나열하여 한 눈에 쉽게 볼 수 있어 성과 분석을 위한 기본적인 그래프 중 하나 입니다. plt.stackplot(beernum, price, amount, country)-plt.stackplot() 함수 안에 4개의 리스트인 데이터를 입력했습니다. 첫번째 데이터인 beern.. 2018. 1. 2.
[Python] matplotlib 이용하여 히스토그램, 산점도 그리기 안녕하세요. 우주신 입니다. 이번 시간에는 히스토그램과 산점도 그리는 방법에 대해 배워보겠습니다. 먼저, pandas를 이용하여 웹에서 csv 파일을 불러왔습니다. 상점 번호, 연도, 기간, p1매출액.. 등을 기준으로 데이터프레임을 만들었습니다. 이 중 p1sales의 데이터를 히스토그램과 산점도로 시각화 해보겠습니다. 1. 히스토그램 (Histogram) plt.hist(df['p1sales'])-plt.hist() 함수 안에 df의 열 'p1sales' 데이터를 넣었습니다. Y축에는 빈도수가, X축에는 매출액을 기준으로 히스토그램이 출력됐습니다. X축 매출액의 범위를 조정해보겠습니다. plt.hist(df['p1sales'], list)-list 자리에 X축 범위를 지정할 수 있습니다. list에 .. 2017. 12. 29.
[Python] matplotlib 이용하여 그래프 그리기 안녕하세요. 우주신 입니다. 이번 포스팅에서는 matplotlib 모듈과 그래프를 그리는 가장 기초적인 방법에 대해 알아보겠습니다. 데이터의 단순한 나열보다는 한 눈에 파악할 수 있는 표나 그래프가 더 가치 있다고 생각하기에,데이터의 분석만큼 중요한 부분이 시각화 입니다. 앞으로 대중적으로 쓰이는 모듈 중 하나인 matplotlib을 활용하여 다양한 그래프를 그리는 방법에 대해 끄적거려보겠습니다. 한줄 한줄 차근히 설명해보겠습니다.import matplotlib.pyplot as plt-우선 matplotlib을 import 해야하는데 pyplot을 함께 묶어준 이유는 거의 모든 시각화하는데 있어 pyplot을 이용하기 때문입니다. 흔히 plt를 약자로 사용합니다. import pandas as pd는 .. 2017. 12. 29.
[Python] 이동평균 계산 (pandas.Series.rolling) 안녕하세요. 우주신 입니다. 오늘은 알아두면 매우 유용한 함수 pandas.Series.rolling에 대해 포스팅 하겠습니다.데이터분석을 하다보면 일정 범위에서 규칙적으로 연산(예: 이동평균)을 해야할 일이 많습니다.예를 들어, 날마다 일주일 간의 주가 평균을 알고 싶을 때, 매일 일일이 다 계산하는 것은 매우 비효율적 입니다. 이 때, 유용하게 쓸 수 있는 함수가 .rolling 이라고 보시면 됩니다.예전에 이 함수를 모를 때는 for문을 이용하여 rolling 함수의 기능을 구현 하다보니 코드도 길고 실행하는 데도 시간이 꽤 걸렸던 기억이 있네요;; 우선, 이번 시간에 사용할 금융 데이터를 웹에서 불러오겠습니다.(금융 데이터 불러오기: http://ordo.tistory.com/57) 현대차 종가 .. 2017. 12. 28.
[Python] Missing Data(NA, NaN) 처리 안녕하세요. 우주신 입니다. 데이터 분석에 있어 가장 중요한 과정은 결측값 및 특이값을 얼마나 잘 처리하는지의 유무에 달려 있다고 생각하는데요,오늘은 pandas를 이용하여 NA, NaN 데이터를 처리하는 몇가지 방법을 포스팅 하겠습니다. df.dropna(), df.fillna() 우선, 결측값이나 특이값을 처리하는 3가지 방법이 있습니다. 1. 무시한다2. 제거한다3. 다른 값으로 대체한다 먼저, pandas와 numpy를 이용해 NaN 값이 포함된 데이터프레임을 만들었습니다. 1. 첫번째 방법은 아주 쉬워요. 그냥 무시하시면 됩니다.물론, 추후에 데이터 분석을 하는 데 있어 걸리적거리겠죠.. 2. df.dropna() NaN이 들어간 행 전체를 제거하는 방법에 대해 보겠습니다. 첫번째 줄 df.dr.. 2017. 12. 6.
[Python] 금융(주가) 데이터 불러오기 안녕하세요 우주신 입니다. 오늘은 pandas를 이용하여 웹에서 주가 데이터를 가져오는 방법에 대해 포스팅 하겠습니다. datetime.datetime(), pandas_datareader.DataReader(), pd.date_range(), quandl.get() 우선, 필요한 패키지를 다 다운 받습니다.그 후, pandas_datareader의 DataReader를 이용해 웹에서 주가 데이터를 다운 받겠습니다. 1. pandas_datareader.DataReader(ticker, online_source, start, end) 삼성전자 티커를 넣고 yahoo 웹에서 2010년 1월 1일부터 2016년 12월 31일까지 데이터를 데이터프레임 df에 입력했습니다.여기서 online_source는 ya.. 2017. 12. 5.
[Python] 데이터프레임 병합 (.merge) 안녕하세요. 우주신 입니다. 이번에는 pandas의 merge()를 이용해 데이터프레임끼리 병합하는 방법에 대해 알아보겠습니다. 우선, import pandas as pd를 통해 pandas를 가져왔습니다.지난 포스팅의 데이터프레임 결합에서 이용했던 데이터프레임을 그대로 쓰겠습니다. df1과 df2는 인덱스만 다를 뿐 값이 다 같고, df3는 df1과 달리 3번째 열이 'Color_Num'입니다. 1. pd.merge(데이터프레임, 데이터프레임) 인덱스만 다르고 값이 같은 df1과 df2를 병합 시켜보겠습니다. 위의 출력 결과를 보면, 인덱스와 상관 없이 병합이 되고, 같은 값들은 중복 표기가 되지 않습니다. 2. pd.merge(데이터프레임, 데이터프레임, on = ' ') 이번에는 특정 열을 지정하여.. 2017. 11. 28.
[Python] 데이터프레임 결합 (.concat, .append) 안녕하세요. 우주신 입니다. 오늘은 파이썬에서 pandas 라이브러리의 concat 함수와 append 함수를 이용하여 데이터프레임끼리 합치는 방법을 포스팅하겠습니다. 우선, import pandas as pd 를 통해 pandas를 가져왔습니다.데이터프레임 결합에 이용할 3개의 데이터프레임을 만들었습니다. df1과 df2는 인덱스만 다를 뿐 값이 다 같습니다.df3는 df1과 달리 3번째 열이 'Color_Num' 입니다. 1. pd.concat() concat는 연결의 뜻을 가진 concatenation의 줄임말 입니다.pandas의 concat을 이용해 df1, df2를 결합 했습니다. pd.concat( [데이터프레임, 데이터프레임] ) 밑의 출력된 결과를 보면 같은 열의 이름에 맞춰 세로로 결합.. 2017. 11. 27.
[Python] 데이터프레임 관련 기본 함수(shape, dtypes, axes, T, index, ix[], columns) 안녕하세요. 우주신 입니다. 오늘을 데이터프레임과 관련하여 기본 함수들에 대해 포스팅 해보겠습니다. shape, dtypes, axes, T, index, ix[], columns 우선, pandas를 활용하여 df1 데이터프레임을 만들었습니다. 1. shape: 행과 열의 개수를 튜플로 반환 형식: dataframe명.shape 3행 3열을 튜플로 반환한 것을 확인할 수 있습니다. 2. dtypes: 열을 기준으로 데이터 형태 반환 형식: dataframe명.dtypes저는 모든 데이터를 문자로 만들었기에 object가 반환 됐습니다. 3. axes: 행과 열의 이름을 리스트로 반환 형식: dataframe명.axes행의 이름이 먼저 반환되고 열의 이름이 반환된 것을 확인할 수 있습니다. 4. T: 전.. 2017. 9. 10.
[Python] 데이터프레임 만들기 (pandas 활용) 안녕하세요. 우주신 입니다. 오랜만에 블로그 글을 남깁니다. 이것저것 바빠 활동을 잘하지 못 했네요. 앞으로 더 많은 포스팅 하겠습니다. 오늘은 pandas를 활용하여 데이터프레임을 생성하는 방법을 보겠습니다. 데이터 분석을 한다면 R로 하는 경우가 많았는데, pandas가 등장한 뒤로 파이썬에서도 쉽게 데이터를 다룰 수 있게 되어 많은 사랑을 받고 있어요! 먼저, pandas 모듈을 가져오고, DataFrame 기능을 간단히 df로 정의했습니다. df(data= )의 데이터 입력 자리에 딕셔너리를 활용하여 df1 데이터프레임을 만들어봤습니다. 아주 깔끔하게 데이터프레임이 생성된 것을 확인할 수 있습니다. 자, 이제 열의 순서를 바꿔보겠습니다. 단순히, columns= 옵션을 활용하여 [] 리스트 안에 .. 2017. 9. 6.