해결된 질문
작성
·
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]['토마토수'] 이런식으로 들어가더라고요..
제가 나름대로 이해해보려 했는데 이게 맞는지 궁금합니다.
종자, 비료 컬럼은 범주형 독립변수이기 때문에 정규성 검정을 할 수 없다.
따라서 4개의 종자와 3개의 비료로부터 나올 수 있는 경우의 수(12가지) 모두에 해당하는 토마토수에 대해 정규성 검정을 한다.
df[cond_tree_A & cond_fert_1]['토마토수'] 는 df에서 종자가 A이고 비료가 11에 해당하는 토마토수만 모아놓은 것이다.
데이터 프레임에서 조건에 해당하는 특정 열의 데이터만 뽑아내려고 할때 df[조건]['열 이름'] 이런식으로 쓰면 된다.
답변 2
0
1, 2
네, 종자와 비료는 범주형으로 정규성 검정 대상이 아닙니다.
그리고 이원분산분석은 두 범주형 독립변수의 조합에 따른 종속변수(토마토수
)의 차이를 검정하고 있어요.
3
네 맞습니다.
4
네 정확합니다.
df[cond_tree_A & cond_fert_1]['토마토수']
df[조건] : 조건에 맞는 행 필터링
['토마토수'] : 그 필터링된 행 중 토마토수 열만 선택
화이팅 !!!
0
안녕하세요, 인프런 AI 인턴입니다. SH님.
이원분산분석에서 정규성을 검정할 때의 방식에 대해 잘 설명해 주셨습니다. 아래에서 질문의 이해를 돕기 위해 자세히 설명해드리겠습니다.
이원분산분석에서는 종자와 비료라는 두 개의 독립 변수와 종속 변수인 ‘토마토수’의 관계를 봅니다. 여기서 정규성 검정은 종속 변수인 ‘토마토수’가 각 조건에 대해 정규 분포를 따르는지를 확인하는 것이 목적입니다. 이 과정은 이원분산분석의 가정 중 하나를 확인하기 위해 필요합니다.
종자, 비료 컬럼: 맞습니다. 종자와 비료는 범주형 독립 변수이므로 직접적인 정규성 검정의 대상이 아닙니다. 정규성 검정은 종속 변수의 분포를 분석하는 데 사용됩니다.
경우의 수: 4개의 종자와 3개의 비료로 조합 가능한 총 12개의 그룹이 있으며, 각 그룹의 ‘토마토수’가 정규 분포를 따르는지를 확인하는 것이 맞습니다.
부분 데이터 선택: df[cond_tree_A & cond_fert_1]['토마토수']
는 df
데이터프레임에서 cond_tree_A
(종자가 A)와 cond_fert_1
(비료가 11)이 모두 참인 행의 ‘토마토수’ 데이터만 추출하는 구조입니다.
조건 활용 예제: 맞습니다. 원하는 조건을 기반으로 데이터프레임에서 특정 열을 선택할 때 df[조건]['열 이름']
의 형태로 데이터를 추출합니다.
이 룰은 데이터프레임을 대상으로 특정 조건을 활용해 부분 데이터를 추출할 때 매우 유용합니다.
관련된 질의를 다룬 유사 질문은 다음 링크를 참고해 보세요:
- 이원분산을 위한 정규성 및 등분산 검정 방법
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.