강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

SH님의 프로필 이미지
SH

작성한 질문수

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

이원 분산 분석

이원분산분석에서 정규성, 등분산

해결된 질문

작성

·

52

·

수정됨

0

 

from scipy.stats import shapiro

cond_tree_A = df['종자'] == 'A'
cond_tree_B = df['종자'] == 'B'
cond_tree_C = df['종자'] == 'C'
cond_tree_D = df['종자'] == 'D'

cond_fert_1 = df['비료'] == 11
cond_fert_2 = df['비료'] == 12
cond_fert_3 = df['비료'] == 13

print(shapiro(df[cond_tree_A & cond_fert_1]['토마토수']))
print(shapiro(df[cond_tree_A & cond_fert_2]['토마토수']))
print(shapiro(df[cond_tree_A & cond_fert_3]['토마토수']))

print(shapiro(df[cond_tree_B & cond_fert_1]['토마토수']))
print(shapiro(df[cond_tree_B & cond_fert_2]['토마토수']))
print(shapiro(df[cond_tree_B & cond_fert_3]['토마토수']))

print(shapiro(df[cond_tree_C & cond_fert_1]['토마토수']))
print(shapiro(df[cond_tree_C & cond_fert_2]['토마토수']))
print(shapiro(df[cond_tree_C & cond_fert_3]['토마토수']))

print(shapiro(df[cond_tree_D & cond_fert_1]['토마토수']))
print(shapiro(df[cond_tree_D & cond_fert_2]['토마토수']))
print(shapiro(df[cond_tree_D & cond_fert_3]['토마토수']))

 

단일표본검정, 대응표본검정, 독립표본검정, 일원분산분석에선 stats.shapiro() 괄호 안에 준비된 데이터에서 하나의 열만 들어갔는데,

이원분산분석에서는 shapiro() 괄호 안에 df[cond_tree_A & cond_fert_1]['토마토수'] 이런식으로 들어가더라고요..

제가 나름대로 이해해보려 했는데 이게 맞는지 궁금합니다.

 

  1. 종자, 비료 컬럼은 범주형 독립변수이기 때문에 정규성 검정을 할 수 없다.

  2. 따라서 4개의 종자와 3개의 비료로부터 나올 수 있는 경우의 수(12가지) 모두에 해당하는 토마토수에 대해 정규성 검정을 한다.

     

  3. df[cond_tree_A & cond_fert_1]['토마토수'] 는 df에서 종자가 A이고 비료가 11에 해당하는 토마토수만 모아놓은 것이다.

  4. 데이터 프레임에서 조건에 해당하는 특정 열의 데이터만 뽑아내려고 할때 df[조건]['열 이름'] 이런식으로 쓰면 된다.

 

 

 

답변 2

0

퇴근후딴짓님의 프로필 이미지
퇴근후딴짓
지식공유자

1, 2

네, 종자와 비료는 범주형으로 정규성 검정 대상이 아닙니다.

그리고 이원분산분석은 두 범주형 독립변수의 조합에 따른 종속변수(토마토수)의 차이를 검정하고 있어요.

 

3

네 맞습니다.

 

4

네 정확합니다.

  • df[cond_tree_A & cond_fert_1]['토마토수']

    • df[조건] : 조건에 맞는 행 필터링

    • ['토마토수'] : 그 필터링된 행 중 토마토수 열만 선택

 

화이팅 !!!

0

안녕하세요, 인프런 AI 인턴입니다. SH님.

이원분산분석에서 정규성을 검정할 때의 방식에 대해 잘 설명해 주셨습니다. 아래에서 질문의 이해를 돕기 위해 자세히 설명해드리겠습니다.

이원분산분석에서는 종자와 비료라는 두 개의 독립 변수와 종속 변수인 ‘토마토수’의 관계를 봅니다. 여기서 정규성 검정은 종속 변수인 ‘토마토수’가 각 조건에 대해 정규 분포를 따르는지를 확인하는 것이 목적입니다. 이 과정은 이원분산분석의 가정 중 하나를 확인하기 위해 필요합니다.

  1. 종자, 비료 컬럼: 맞습니다. 종자와 비료는 범주형 독립 변수이므로 직접적인 정규성 검정의 대상이 아닙니다. 정규성 검정은 종속 변수의 분포를 분석하는 데 사용됩니다.

  2. 경우의 수: 4개의 종자와 3개의 비료로 조합 가능한 총 12개의 그룹이 있으며, 각 그룹의 ‘토마토수’가 정규 분포를 따르는지를 확인하는 것이 맞습니다.

  3. 부분 데이터 선택: df[cond_tree_A & cond_fert_1]['토마토수']df 데이터프레임에서 cond_tree_A (종자가 A)와 cond_fert_1 (비료가 11)이 모두 참인 행의 ‘토마토수’ 데이터만 추출하는 구조입니다.

  4. 조건 활용 예제: 맞습니다. 원하는 조건을 기반으로 데이터프레임에서 특정 열을 선택할 때 df[조건]['열 이름']의 형태로 데이터를 추출합니다.

이 룰은 데이터프레임을 대상으로 특정 조건을 활용해 부분 데이터를 추출할 때 매우 유용합니다.

관련된 질의를 다룬 유사 질문은 다음 링크를 참고해 보세요:
- 이원분산을 위한 정규성 및 등분산 검정 방법

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

SH님의 프로필 이미지
SH

작성한 질문수

질문하기