본문 바로가기

전체 글

(42)
이원 분산 분석(Two-way ANOVA) "어떤 광고를 하고, 어떤 프로모션을 진행했을 때 매출이 가장 잘 나올까?"라는 주제로 실습 데이터를 직접 만들어 분석해 보죠.1. 분석 시나리오: 광고 매체 & 프로모션 전략독립변수 1 (광고 매체): SNS, TV, 유튜브 (3개 집단)독립변수 2 (프로모션 유형): 1(할인 쿠폰), 2(사은품 증정) 종속변수: 매출액 (단위: 백만 원)가설 설정 (h0 & h1)광고 매체(주효과): 광고 매체에 따른 평균 매출액 차이는 없다.프로모션(주효과): 프로모션 유형에 따른 평균 매출액 차이는 없다.상호작용 효과: 광고 매체와 프로모션 유형 간에는 상호작용 효과가 없다. (즉, 광고에 따라 프로모션 효과가 달라지지 않는다.)2. 실습 데이터 생성외부 데이터 없이 바로 실행 가능하도록 코드를 구성했습니다.Py..
일원분산분석( one-way ANOVA ) with python 1. 분석 시나리오 설정다음과 같은 상황을 가정해 보겠습니다.상황: 한 이커머스 기업에서 4가지의 새로운 UI 디자인(A, B, C, D)을 개발했습니다.데이터: 각 디자인을 경험한 고객 40명을 무작위로 추출하여 만족도 점수(1~5점)를 측정했습니다.목표: 디자인 방식에 따라 고객 만족도 평균에 유의미한 차이가 있는지 검정합니다. (유의수준 0.05)가설 설정귀무가설(H0): 네 가지 UI 디자인에 따른 고객 만족도 평균은 모두 같다.대립가설(H1): 적어도 한 그룹의 만족도 평균은 나머지 그룹들과 다르다.2. 데이터 준비 및 기초 확인먼저 구글 코랩에서 데이터를 생성하고 구조를 확인합니다.Python import pandas as pd# 4개 그룹의 고객 만족도 데이터 생성df = pd.DataFra..
분산분석 ANOVA 두 집단의 평균을 비교할 때는 t-검정을 쓰지만, 집단이 3개 이상이 되면 분산분석이 필요합니다.왜 t-검정을 여러 번 안 쓰고 ANOVA를 쓰는지, 그리고 분석 프로세스는 어떻게 되는지 상세히 알아봅시다 왜 t-검정 대신 ANOVA를 쓸까?"A-B, B-C, A-C 이렇게 t-검정을 세 번 하면 안 되나요?"라는 의문이 생길 수 있습니다. 하지만 검정을 반복할수록 1종 오류(실제로는 차이가 없는데 차이가 있다고 결론 내릴 확률)가 커지는 문제가 발생합니다. 이를 방지하기 위해 전체 집단을 한 번에 비교하는 ANOVA를 사용합니다. 분산분석의 종류 일원 분산 분석(One-way ANOVA): 영향을 주는 요인(독립변수)이 1개일 때. (예: 약 종류에 따른 통증 완화 정도)이원 분산 분석(Two-way ..
카이제곱 검정 통계 분석에서 빈도(Frequency) 데이터를 다룰 때 가장 많이 사용되는 카이제곱 검정(Chi-square test)에 대해 알아보겠습니다.단순히 계산 공식만 외우는 것이 아니라, "왜 이 검정을 하는지"와 "파이썬으로 어떻게 구현하는지"를 중심으로 알아보겠습니다.카이제곱 검정이란?한마디로 정의하자면 "내가 예상한 빈도와 실제로 관찰된 빈도가 얼마나 다른가?"를 수치로 나타낸 것입니다.관찰도수(O): 실제로 눈앞에 나타난 데이터 (현실)기대도수(E): 이론적으로 나와야 하는 데이터 (이상향)이 두 값의 차이가 작으면 "우연이네?"라고 넘어가고, 차이가 너무 크면 "이건 우연이 아니라 뭔가 이유가 있구나!"라고 판단하며 귀무가설을 기각하게 됩니다.1. 적합도 검정 (Goodness of Fit Test..
무료로 배포하기 ( 사이드 프로젝트 배포하기 - 프론트편 ) - vercel 프로젝트 배포를 해야해서 복잡한 백앤드는 뒤로 하고, 프론트를 우선적으로 배포하기로 했습니다 vercel을 사용하면 손쉽게 배포할 수 있어요https://vercel.com/ Vercel: Build and deploy the best web experiences with the AI Cloud – VercelVercel gives developers the frameworks, workflows, and infrastructure to build a faster, more personalized web.vercel.com 저는 이전에 vercel로 많이 배포를 해서 git이 연동되어있는데, 연동이 안되어 있다면 연동해주시면 됩니다. https://velog.io/@zzangsubin/vercel-ver..
좋아요 구현, Exclusive Lock에 대해서 알아보자. 오늘 포스팅에서 체험해 볼 내용은 'Exclusive Lock (X-Lock, 배타적 잠금)' 에 관한 내용입니다 좋아요 기능을 구현하기에 앞서, Lock에 대해서 좀 더 깊이 공부할 필요가 있다고 느꼈고, 직접 가상의 테이블을 생성해서 테스트해보기로 했습니다. 그 과정을 공유해보도록 하겠습니다. 테스트 환경은 Docker, Mysql로 하였습니다. Docker에서 Mysql을 pull해주시고, DB를 생성해주세요.저는 joney-board-mysql 이라는 이름으로 db를 띄웟습니다. docker exec -it [컨테이너 이름 또는 번호] bashmysql -u root -p비밀번호 입력테스트를 위해 스키마 생성 후, 테이블을 하나 생성해줄게요.create database test_db; use te..
[Spring Batch] JobParameters와 Scope Spring Batch에서 단순히 로직을 짜는 것만큼이나 중요한 것이 바로 "외부에서 값을 어떻게 주입받고, 어떻게 관리할 것인가?" 입니다. 이 메커니즘을 제대로 이해하지 못하면, 매번 코드를 수정해서 배포해야 하는 끔찍한 상황이 벌어집니다.오늘은 배치의 입력값을 다루는 JobParameters와, 배치의 생명주기를 관리하는 JobScope/StepScope에 대해 완벽하게 정리해 봅니다. 오늘은 배치의 입력값을 다루는 JobParameters와, 배치의 생명주기를 관리하는 JobScope/StepScope에 대해 완벽하게 정리해 봅시다. 1. JobParameters: 배치의 입력값JobParameters는 배치 작업 실행 시 외부에서 주입하는 파라미터입니다. 단순한 Java Main Argumen..
[Spring Batch] Tasklet vs Chunk 간단 정리 Spring Batch를 다루다 보면 Step을 구성하는 두 가지 큰 갈래길, Tasklet과 Chunk를 마주하게 됩니다. "그냥 대충 쓰면 되는 거 아냐?"라고 생각했다면 오산! 이 둘은 용도가 명확히 다릅니다. 1. Tasklet 모델: "단순하고 명료하게"Tasklet은 말 그대로 '하나의 작업(Task)'을 처리하는 데 집중합니다. 복잡한 읽기/쓰기 과정 없이, "이거 실행하고 끝내!" 할 때 딱입니다.언제 쓸까?: 임시 파일 삭제, DB 프로시저 호출, 슬랙 알림 발송 등특징: execute 메서드 하나로 모든 로직이 끝납니다.📝 코드 예제: 오래된 로그 정리하기Tasklet 인터페이스를 구현하여, 7일 지난 로그 파일을 지우는 작업을 만들어 봅시다.@Slf4j@Componentpublic ..