평균에서 얼마나 떨어져 있는지 나타내는 통계적 척도 분산의 제곱근을 취하여 계산
데이터의 변동성을 측정하며 값이 클수록 데이터가 평균으로부터 더 넓게 퍼져있다.
분산은 (225 + 25 + 25 + 225) / 4 = 125입니다. 표준편차는 분산의 제곱근이므로 분산에 루트(root)를 씌워 약 11.18입니다.
# 데이터 분석에서 자주 사용되는 라이브러리 import pandas as pd # 다양한 계산을 빠르게 수행하게 돕는 라이브러리 import numpy as np # 시각화 라이브러리 import matplotlib.pyplot as plt # 시각화 라이브러리2 import seaborn as sns
☑️ 데이터의 중심을 확인하는 방법! ## 위치 추정 ## # 이 data는 아래에서도 계속 사용 됩니다 data = [85, 90, 78, 92, 88, 76, 95, 89, 84, 91] mean = np.mean(data) median = np.median(data) print(f"평균: {mean}, 중앙값: {median}")
## 범위 #### 범위(R) = 최대값 - 최소값 (변이 추정) variance = np.var(data) std_dev = np.std(data) data_range = np.max(data) - np.min(data) print(f"분산: {variance}, 표준편차: {std_dev}, 범위: {data_range}")
데이터 분포 탐색 plt.hist(data, bins=5) plt.title('histogram') plt.show() plt.boxplot(data) plt.title('boxplot') plt.show()


## 이진 데이터와 범주 데이터 탐색 # 막대 그래프랑 히스토그램은 다르다 둘다 막대로 그려지는건 동일 막대는(범주형), 히스토그램은(수치형) # 두 가지는 다른 시각화 방식이다. satisfaction = ['satisfaction', 'satisfaction', 'dissatisfaction', 'satisfaction', 'dissatisfaction', 'satisfaction', 'satisfaction', 'dissatisfaction', 'satisfaction', 'dissatisfaction'] satisfaction_counts = pd.Series(satisfaction).value_counts() satisfaction_counts.plot(kind='bar') plt.title('satisfaction distribution') plt.show()

상관 관계 # 음의방향 -1 / 양의 방향 +1 (강력한 상관관계) / -0.5나 0.5를 가지면 중간정도 상관관계를 가짐 / 0에 가까울 수록 상관관계가 없다. study_hours = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1] #공부시간 exam_scores = [95, 90, 85, 80, 75, 70, 65, 60, 55, 50] #시험점수 correlation = np.corrcoef(study_hours, exam_scores)[0, 1] # 상관계수 계산 / x와 y의 관계 print(f"공부 시간과 시험 점수 간의 상관계수: {correlation}") plt.scatter(study_hours, exam_scores) # 산점도 그리기 plt.show()

data = {'TV': [230.1, 44.5, 17.2, 151.5, 180.8], # 다변량 분석은 여러 변수 간의 관계를 분석하는 방법 'Radio': [37.8, 39.3, 45.9, 41.3, 10.8], 'Newspaper': [69.2, 45.1, 69.3, 58.5, 58.4], 'Sales': [22.1, 10.4, 9.3, 18.5, 12.9]} df = pd.DataFrame(data) sns.pairplot(df) plt.show()
df.corr() # 한번에 계산

sns.heatmap(df.corr())

data = [78, 82, 85, 88, 90, 92, 94, 96, 98, 100] mean = np.mean(data) print(mean)
data = [78, 82, 85, 88, 90, 92, 94, 96, 98, 100] median = np.median(data) print(median)
variance = np.var(data) # 분산 std_dev = np.std(data) # 표준편차 data_range = np.max(data) - np.min(data) # 범위 print(f"분산: {variance}, 표준편차: {std_dev}, 범위: {data_range}")
ss = [78, 82, 85, 88, 90, 92, 94, 96, 98, 100] # 수학점수 ee = [70, 75, 80, 85, 85, 90, 90, 95, 95, 100] # 영어점수 correlation = np.corrcoef(ss, ee)[0, 1] # 상관계수 계산 / x와 y의 관계 print(f"공부 시간과 시험 점수 간의 상관계수: {correlation}") plt.scatter(study_hours, exam_scores) # 산점도 그리기 plt.show()