2025 내일배움캠프 QAQC_2기

2025 내일배움캠프 QAQC_2기 본캠프 39일차

mingdoremi 2025. 7. 7. 21:07

안녕하세요! 오늘은 본캠프 39일차입니다!

오늘은 프로젝트 2일차입니다!

 

저희가 선택한 모빌리티 데이터에 대해 분석해보았는데,

주요변수들과 Fault_Condition과의 관계를 보면

상관관계도 유의미한 값이 없고 분포를 보았을 때도 별다른 유의미한 값이 없어서 팀원들간에 고민을 하다가 통계분석으로 넘어가기로 했어요!

저는 온도와 Fault_Condition과의 관계와 Fuel_Efficiency와 Fault_Condition과의 관계를 분석해보았습니다!

 

🔹온도와 Fault_Condition 정규성 검정🔹

귀무가설(H₀) : 온도는 정규분포를 따른다

대립가설(H₁) : 온도는 정규분포를 따르지 않는다

#Shapiro-Wilk Test
from scipy.stats import shapiro

stat, p = shapiro(df['Temperature (°C)'])
print(f"Shapiro-Wilk Test: W = {stat:.4f}, p-value = {p:.4f}")
Shapiro-Wilk Test: W = 0.9566, p-value = 0.0000

P-value = 0.000 < 0.05 이므로 귀무가설 기각 대립가설 채택

❗️온도는 정규 분포를 따르지 않는다.
#히스토그램 시각화
import seaborn as sns
import matplotlib.pyplot as plt

sns.histplot(df['Temperature (°C)'], kde=True)
plt.title('Temperature Distribution')
plt.show()

❗️온도는 정규 분포를 따르지 않는다.



🔹온도와 Fault_Condition 가설 설정🔹

귀무가설(H₀) : 온도는 결함 여부에 영향을 미치지 않는다

대립가설(H₁) : 온도는 결함 여부에 영향을 미친다

#Kruskal-Wallis
from scipy.stats import kruskal

# 결함 상태별 Temperature 데이터 그룹화
groups = [df[df['Fault_Condition'] == val]['Temperature (°C)'] for val in sorted(df['Fault_Condition'].unique())]

# Kruskal-Wallis 검정 수행
stat, p = kruskal(*groups)
print(f"Kruskal-Wallis Test: H = {stat:.4f}, p-value = {p:.4f}")
Kruskal-Wallis Test: H = 1.2324, p-value = 0.7453

P-value = 0.7453 > 0.05 이므로 귀무가설 채택

❗️온도는 결함 상태에 따라 차이가 없다고 볼 수 있다.

 

🔹Fuel_Efficiency와 Fault_Condition 정규성 검정🔹

귀무가설(H₀) : Fuel_Efficiency는 정규분포를 따른다

대립가설(H₁) : Fuel_Efficiency는 정규분포를 따르지 않는다

#Shapiro-Wilk Test
from scipy.stats import shapiro

stat, p = shapiro(df['Fuel_Efficiency'])
print(f"Shapiro-Wilk Test for Fuel_Efficiency: \nW = {stat:.4f}, p-value = {p:.4f}")
Shapiro-Wilk Test for Fuel_Efficiency: W = 0.9481, p-value = 0.0000

P-value = 0.000 < 0.05 이므로 귀무가설 기각 대립가설 채택

❗️연비(Fuel_Efficiency)는 정규 분포를 따르지 않는다.

 

🔹Fuel_Efficiency와 Fault_Condition 가설 설정🔹

귀무가설(H₀) : Fuel_Efficiency는 결함 여부에 영향을 미치지 않는다

대립가설(H₁) : Fuel_Efficiency는 결함 여부에 영향을 미친다

#Kruskal-Wallis
from scipy.stats import kruskal

# Fault_Condition별로 Fuel_Efficiency 값을 그룹화
groups = [df[df['Fault_Condition'] == val]['Fuel_Efficiency'] for val in sorted(df['Fault_Condition'].unique())]

# Kruskal-Wallis 검정 수행
stat, p = kruskal(*groups)

print(f"Kruskal-Wallis Test for Fuel_Efficiency by Fault_Condition:\nH = {stat:.4f}, p-value = {p:.4f}")
Kruskal-Wallis Test for Fuel_Efficiency by Fault_Condition:
H = 5.0726, p-value = 0.1666

P-value = 0.1666 > 0.05 이므로 귀무가설 채택

❗️연비(Fuel_Efficiency)는 결함 상태에 따라 차이가 없다고 볼 수 있다.

 

오늘 가설에 따른 정규성 검정과 Kruskal-Wallis Test를 통해서 가설 설정과 분석하는 방법, 분석 값에 따른 결론 도출 내는 것을 복습하면서 조금은 더 친해진 것 같아요!!

 

오늘도 수고하셨습니다!!