목록PYTHON/데이터분석 (42)
도찐개찐
import numpy as np import pandas as pd import matplotlib.pyplot as plt import matplotlib as mpl import seaborn as sns from sklearn.datasets import load_boston from sklearn.datasets import fetch_california_housing from statsmodels.formula.api import ols fontpath = '/home/bigdata/py39/lib/python3.9/site-packages/matplotlib/mpl-data/fonts/ttf/NanumGothic.ttf' fname = mpl.font_manager.FontProperties..
회귀분석 상관분석은 변수들이 얼마나 밀접한 관계를 가지고 있는지 분석하는 통계적 기법 한편, 회귀분석은 (상관분석 + 예측)하는 통계적 기법 수량형 값을 예측하는데 주로 사용되는 통계적 모형 즉, 두 변수간의 선형(직선)관계를 식으로 표현하고 독립변수 $x$가 주어지면 종속변수$y$의 값이 얼마인지 추정 독립변수와 종속변수 사이의 관계를 선형방정식으로 나타낸 것을 회귀방정식이라 함 $ \hat y = ax + b + \epsilon $ $a$ : 기울기 $b$ : 절편 $\epsilon$ : 오차, 잡음(noise) 회귀직선을 그릴때는 최소제곱법 이라는 수학적 기법을 이용하는데, 이는 두 변수의 선형관계를 계량화 한 것임 $$ a = \frac{\sum(x_i - \bar x)(y_i - \bar y)}..
상관분석 두 변수 x, y가 있을때 두 변수가 서로 어떤 관계에 있는지 분석하는 과정 보통 2개의 등간/비율 척도 변수를 분석할때 우선적으로 산점도를 그려 변수간의 관계를 시각화 한 후 상관계수를 계산 변수들 관계 예 키x가 클수록 몸무게y도 증가하는가? 교육을 많이 받으면 수입도 증가하는가? 광고를 많이 하면 판매량이 증가하는가? 운동을 많이 하면 몸무게는 감소하는가? 담배를 줄이면 심혈관 질병 발생비율은 낮아지는가? 두 변수 정의 : 독립변수, 종속변수 독립변수 : 종속변수를 추정하거나 예측하는데 토대를 제공 (원인/설명 변수) 종속변수 : 예측되거나 추정되는 변수, 독립변수의 특정값에 대한 결과를 의미 (결과/반응 변수) 독립변수와 종속변수는 인과관계를 가질 가능성이 높음 (원인-결과 관계) 즉, ..
다중 그래프 그리기 subplot(행, 열, 번호) import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns x = [1,2,3,4] y = [2,3,5,10] 수평 다중 그래프 plt.subplot(1, 2, 1) # 1행 2열 영역중 1행 1열 영역 plt.plot(x, y, 'r') plt.subplot(1, 2, 2) # 1행 2열 영역중 1행 2열 영역 plt.plot(x, y, 'b--') plt.tight_layout() 수직 다중 그래프 plt.subplot(2, 1, 1) # 2행 1열 영역중 1행 1열 영역 plt.plot(x, y, 'r--') plt.subplot(2, 1, ..
교차표 범주형 데이터 분석시 사용하는 분석도구 crosstab(인덱스, 컬럼, 행이름, 컬럼이름, 총합여부, 정규화여부) import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns data = pd.DataFrame({'id': ['id1', 'id1', 'id1', 'id2', 'id2', 'id3'], 'col1': ['a', 'a', 'a', 'b', 'b', 'b'], 'col2': ['d', 'd', 'd', 'c', 'c', 'd']}) print(data.id) 0 id1 1 id1 2 id1 3 id2 4 id2 5 id3 Name: id, dtype: object # 교차표 생성 1..
import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns 박스플롯 box-and-whisker plot (상자수염 그래프) 데이터의 대략적인 분포와 개별적인 이상치들을 동시에 보여줄 수 있으며 서로 다른 데이터 뭉치를 쉽게 비교할 수 있도록 도와주는 시각화 기법 통계학자 존 튜키(John Tukey)가 1977년 저서 "탐색적 데이터 분석(Exploratory Data Analysis)"에서 처음 제시 범위 막대에서는 수염의 양 끝이 최대값과 최소값을 나타내고, 상자는 사분위수범위를 나타내며, 상자 안에 중앙값을 표현하는 방식으로 "5가지 요약 수치" 를 표현 boxplot(값, 옵션) kings..
import numpy as np import pandas as pd import matplotlib.pyplot as plt import matplotlib as mpl import seaborn as sns 산점도 scatter graph n개의 짝으로 이루어진 자료(컬럼이 2개 이상)를 x, y 평면에 점으로 나타낸 그래프 자료의 분포정도를 파악하는데 사용 주로 상관/회귀분석에 사용 scatter(x축, y축, 옵션) # 약물 투여에 따른 환자 반응 age = [23, 30, 40, 45, 60] drugA = [16, 20, 27, 40, 60] drugB = [15, 18, 25, 31, 40] plt.scatter(age, drugA, color='b') plt.show() 회귀계수를 이용한 ..
선그래프 시간의 따른 데이터의 변화를 시각화하는데 유용하게 사용 지난 10년 간 경유 가격의 평균값 지난 두 달간 몸무게 변화 시계열 데이터를 시각화하는데 주로 사용 plot(x, y, 옵션) import numpy as np import pandas as pd import matplotlib.pyplot as plt import matplotlib as mpl import seaborn as sns 항공기 이용승객 데이터 airs = pd.read_csv('../data/airpassengers.csv') plt.figure(figsize=(25,8)) plt.plot(airs.Month[:60], airs.Passengers[:60]) plt.xticks(rotation=90, fontsize=15)..