Skills/Python

[학위논문] Python을 이용한 이원배치 분산분석(Two-way ANOVA)

듀공🥕 2024. 2. 1. 23:35

본 시리즈는 제 석사학위논문을 바탕으로 합니다.

 

 

본 연구에서는,

  • 통계 분석 👉🏻 이원배치 분산분석 (Two-way ANOVA) ✔️
  • 사후 검정 👉🏻 Tukey's Post Hoc Test

 

아아...


1. 인구통계학적 특성

본격적으로 분석하기에 앞서 수집된 데이터들의 인구통계학적 특성이다.

실험 참가자들의 특징으로는,

  • 남성보다 여성의 비율이 높음
  • 20대와 30대 참가자 비율이 가장 높음
  • 백인 참가자의 비율이 압도적으로 높음


2. 기술 통계량

수집한 데이터의 기술통계량은 describe() 함수를 통해 확인할 수 있다.

기술통계량

# describe() 함수를 이용하여 기술통계량 파악
# 판다스 실행
import pandas as pd
# 데이터 불러오고 'unionData'로 변수명 지어주기
unionData = pd.read_csv('/Users/choisubin/Desktop/SubinChoi/대학원/졸업논문/unionSurveyData.csv', encoding='UTF8')

# '인공지능 마음 인식' 기술통계량 - 항목별로 나눠서 함수 적용
desEmo = unionData['MeanOfEmotion'].describe()
desInt = unionData['MeanOfIntention'].describe()
desCog = unionData['MeanOfCognition'].describe()

# '인지된 유용성' 기술통계량
desPerUse = unionData['MeanOfPerceivedUsefulness'].describe()

# '행위주체감' 기술통계량
desSoA = unionData['MeanOfSenseOfAgency'].describe()

# '귀인 패턴' 기술 통계량 - 내적귀인과 외적귀인으로 나눠서 함수 적용
desLoC = unionData['MeanOfLocusCausality'].describe()
desPerCon = unionData['MeanOfPersonalControl'].describe()
desStab = unionData['MeanOfStability'].describe()
desExCon = unionData['MeanOfExternalControl'].describe()

# '심리적 친밀감' 기술통계량
desPsyClo = unionData['MeanOfPsychologicalCloseness'].describe()

# '만족도' 기술통계량
desSatis = unionData['MeanOfSatisfaction'].describe()

# '지속 사용 의도' 기술통계량
desCUI = unionData['MeanOfContinuousUsageIntention'].describe()

3. 통계 기법 설명

이원배치 분산분석(Two-way ANOVA)

본 연구에서는 '이원배치 분산분석'이라는 통계 기법을 사용하였다.

  • 분산분석(ANOVA) 👉🏻 '다수의 집단 간 평균을 비교 분석하여 유의한 결과를 도출해내는 것'
  • 이원배치 분산분석(Two-way ANOVA) 👉🏻 독립변인이 2개일 때 사용되며, 이 독립변인에 따라 집단 간 종속변인의 평균을 비교할 때 사용

4. 연구 결과

1) 이용자 참여수준과 결과물 성패에 따른 행위주체감

이원배치 분산분석은 머신러닝용 패키지 statsmodels를 통해 시행 가능하다.

# 패키지 실행
from statsmodels.formula.api import ols
from statsmodels.stats.anova import anova_lm

 

참여수준과 결과물 성패에 대한 행위주체감을 알아보기 위해,

  1.  '행위주체감 ~ 참여수준 * 결과물 성패' 라는 모델을 설정
  2. 모델의 변수명을 설정하여 피팅
  3. 피팅한 모델의 결과 테이블을 출력
# 모델 설정
model3 = 'MeanOfSenseOfAgency ~ Participation * Result'
# 모델 피팅
twoWayAnova3 = ols(model3, data=unionData).fit()
# 결과 테이블 확인
print('Sense of Agency\n', anova_lm(twoWayAnova3))

 

참여수준과 성패에 따른 행위주체감에 대한 결과 테이블이다.

    👨🏻‍🏫 0.05보다 낮은 값이 출력: '유의하다'고 해석

 

아래 참여수준과 성패에 대한 상호작용성 부분이 0.03이므로 유의하다고 볼 수 있다.

Sense of Agency
                          df      sum_sq   mean_sq         F    PR(>F)
Participation           1.0    1.028333  1.028333  0.910030  0.340774
Result                  1.0    0.072423  0.072423  0.064091  0.800293
Participation:Result    1.0    4.994189  4.994189  4.419639  0.036252
Residual              345.0  389.849817  1.129999       NaN       NaN

 

결과에 대한 시각화를 위해 seaborn 라이브러리를 사용하였다.

# 결과 시각화
# y축 범위 설정
plt.ylim(1, 5)
# y축 눈금 설정
plt.yticks(ticks=[1, 2, 3, 4, 5])
# pointplot 그리기
graph3 = sns.pointplot(x='Participation', y='MeanOfSenseOfAgency', hue='Result', data=unionData, markers=['^', 'o'], linestyles=['-', '--'], ci=False)
# y축 라벨 설정
graph3.set_ylabel("Sense of Agency")
plt.show()

 

  • 결과가 성공일 때 👉🏻 참여수준이 높은 집단(M = 2.14, SD = 1.02)보다 낮은 집단(M = 2.49, SD = 1.02)에서 행위주체감 높게 형성
  • 결과가 실패일 때 👉🏻 참여수준이 낮은 집단(M=2.22, SD=1.00)보다 높은 집단(M=2.35, SD=1.22)에서 행위주체감 높게 형성

 

2) 이용자 참여수준과 결과물 성패에 따른 귀인 방식

귀인 방식은 내적귀인인 개인 통제에 대한 상호작용성 부분에서 유의한 결과가 도출되었다.

  • 결과가 성공일 때 👉🏻 참여수준이 높은 집단(M = 2.10, SD = 1.18)보다 낮은 집단(M = 2.48, SD = 1.19)에서 개인 통제 수준이 높게 형성
  • 결과가 실패일 때 👉🏻 참여수준이 낮은 집단(M = 2.00, SD = 1.08)보다 높은 집단(M = 2.78, SD = 1.27)에서 개인 통제 수준이 높게 형성

Personal Control
                          df      sum_sq   mean_sq         F    PR(>F)
Participation           1.0    0.217040  0.217040  0.155345  0.693722
Result                  1.0    1.940438  1.940438  1.388858  0.239410
Participation:Result    1.0    9.306588  9.306588  6.661138  0.010266
Residual              345.0  482.015716  1.397147       NaN       NaN

 

3) 추가 측정 항목

추가로 측정한 항목 중 결과물 성패에 대한 지속 사용 의도와 만족도의 주효과에 대해서 유의한 결과를 확인할 수 있었다.

 

  • 결과물이 실패인 집단(M = 2.40, SD = 1.10)보다 성공인 집단(M = 2.56, SD = 0.99)이 지속 사용 의도가 더 높음
  • 결과물이 실패인 집단(M=2.77, SD=1.25)보다 결과물이 성공인 집단(M=3.08, SD=1.21)이 만족도가 더 높음

Continuous Usage Intention
                          df      sum_sq    mean_sq          F    PR(>F)
Participation           1.0    0.026260   0.026260   0.023412  0.878479
Result                  1.0   11.957937  11.957937  10.661196  0.001204
Participation:Result    1.0    2.760202   2.760202   2.460880  0.117630
Residual              345.0  386.962979   1.121632        NaN       NaN
Satisfaction
                          df      sum_sq   mean_sq         F    PR(>F)
Participation           1.0    0.348268  0.348268  0.230587  0.631393
Result                  1.0    8.529192  8.529192  5.647165  0.018029
Participation:Result    1.0    3.640174  3.640174  2.410154  0.121467
Residual              345.0  521.070476  1.510349       NaN       NaN

 

 

최수빈. "의인화된 인공지능 협업 시스템에서의 이용자 행위주체감과 귀인 방식." 국내석사학위논문 서강대학교 일반대학원, 2024. 서울

 

728x90