Today's Goals
1. 코테 연습은 매일매일 - 코드카타 SQL & 파이썬
2. 통계학 개인과제
QCC한테 제대로 당해따 으악
1. 코드카타
파이썬
[정렬의 기준을 정해주는 방법, sorted() 함수의 key 설정]
# 간단한 답
def solution(strings, n):
return sorted(strings, key= lambda x : (x[n], x))
- 위의 key에서 x는 strings 배열 안의 하나의 요소를 의미함
- x단어의 n번째 알파벳 순서로 정렬하고, 동일 값이라면 x단어를 오름차순으로 정렬한다는 의미
- key는 sorted 함수 안에서 정렬의 기준을 정해주는 매개변수로, 2개 이상의 조건을 튜플형태로 감싸 넣어줌
- 예시 사용법은 아래 블로그 참고
https://velog.io/@rockwellvinca/python-sorted-sort-key-%EC%82%AC%EC%9A%A9%EB%B2%95
[python] sorted(), sort(), key 사용법
정렬과 관련한 문제를 해결하다가 sort에 대한 key의 기준에 대해서 정리하게 되었다.sorted와 sort는 근본적으로 매우 유사하다.하지만 사용방법에서의 약간의 차이가 있다.바로 알아보도록 하자.
velog.io
[Python] 정렬 (sort & sorted, reverse, key)
🔍 Sorting HOW TO 단어 정렬 문제(백준의 1181)를 풀다가 확실히 정렬에 대해 정리할 필요가 있겠다는 생각이 들어 작성해 본다. 공식 문서를 참고하였고, sort와 sorted 그리고 reverse와 key에 대해서 정
sxbxn.tistory.com
- 해당 문제를 처음 풀었던 답은 다음과 같았음
# 처음 답안
def solution(strings, n):
strings.sort()
answer = []
n_character = []
for i in strings :
n_character.append(i[n])
n_character.sort()
for i in n_character :
for j in strings :
if i == j[n] and j not in answer :
answer.append(j)
return answer
- strings.sort()를 먼저 해준 이유 : 오름차순 정렬을 먼저 해주지 않으면, 기존 strings 리스트에 단어가 정렬되어 있던 순서대로 최종 answer에 단어가 담기므로, n번째 알파벳이 같은 단어는 전체 단어를 기준으로 오름차순 정렬하라는 조건을 만족하지 못할 수 있음
- 미리 단어를 오름차순 정렬하여 최종 조건에 맞도록 설정해주는 것
- j not in 조건 이유 : 최종적으로 answer 리스트에 단어가 추가될 때, 한번에 n번째 알파벳과 i가 같은 경우의 단어가 모두 불러와지는데, i가 중복값인 경우 해당 단어를 모두 불러오는 것이 두번 반복되어 answer에 중복 단어가 생김
- j not in 조건을 넣어주어 answer 리스트에 단어 j가 이미 있는지 체크하는 것임
2. 통계학 개인과제
[t검정의 양측검정과 단측검정]
- 양측검정은 평균이 같지 않음만을 확인하는 것이고 단측검정은 특정 방향으로 치우침이 있는(한 집단 평균이 다른 집단보다 크거나 작은) 것을 확인하는 것
- 단측검정에서는 양측검정에서 얻은 p값을 절반으로 나누어 해석해야 함
- 양측검정의 경우, t통계량이 양쪽의 극단적인 값을 나타낼 때 귀무가설을 기각, 즉, 양 극단이 귀무가설의 기각역임
- 단측검정은 차이가 특정한 방향으로 발생한다고 가정한 것이므로, 특정 방향에 t통계량이 있는 경우에 귀무가설을 기각, 즉, 그래프의 한쪽 극단만 기각역임
- 단측검정에서는 p값이 한쪽 극단 값만 고려되므로 양측검정보다 작은 값이고, 따라서 귀무가설을 기각하기 쉬워짐
- 단측검정에서 첫번째 집단의 평균이 두번째보다 큰 경우는 우측검정, 두번째보다 작은 경우는 좌측검정으로 생각하면 됨(t통계량 = (첫번째 집단 평균 - 두번째 집단 평균) / 표본오차 > 양수, 음수로 생각 가능)
- 양측검정, 단측검정(우측검정, 좌측검정)에 따라 달라지는 가설 설정에 대한 내용은 아래 블로그
https://rfriend.tistory.com/754
[Python] 두 집단 간 평균 차이를 검정하는 t-test
이번 포스팅에서는 Python을 사용해서 두 집단 간 평균이 같은지 아니면 다른지를 검정하는 t-test 를 해보겠습니다. 연속형 확률분포인 t-분포 (Student's t-distribution) 에 대해서는 https://rfriend.tistory.co
rfriend.tistory.com
- t검정 코드 관련 자료는 아래 블로그
https://blog.naver.com/breezehome50/222324249905
[파이썬, 데이터 분석] t-test 평균 검정
t-test 평균 검정 python을 이용한 t-test 수행방법에 대해 알아보도록 하겠습니다. t-test는 크게 1. 일표...
blog.naver.com
[t검정에서의 t통계량]
- t통계량 = (첫번째 집단 평균 - 두번째 집단 평균) / 표본오차
- t통계량은 표본 평균들 간의 차이를 표준오차로 나눈 값, 즉, 표본 평균들 간의 차이가 표준오차에 비해 얼마나 큰지 나타냄
- 값이 크면 표준오차에 비해 표본 평균 간의 차이가 큰 것이므로, 두 집단 간의 유의미한 차이가 있을 가능성이 높음(귀무가설 기각 근거)
- 값이 작으면 평균 차이가 표준 오차에 비해 작은 것이므로, 두 집단 간의 차이는 우연일 가능성이 높음(귀무가설 채택 근거)
- t통계량이 클수록 p값은 작아지고, 양수인 경우 첫번째 집단 평균이 두번째 집단 평균보다 큼
[카이검정의 종류 3가지]
- 적합성 검정 : 관찰값이 예측값의 분포를 따르는지 확인
- 독립성 검정 : 두 변수간의 관련이 있는지 확인
- 동질성 검정 : 여러 그룹의 분포가 동일한지 확인
https://wikidocs.net/227335
https://wikidocs.net/258588
10_04. 카이제곱검정 실행하기 - scipy.stats 이용
* 카이제곱 검정은 두 가지 주요 용도로 사용됩니다: * 적합성 검정(Goodness of Fit Test): 데이터가 기대되는 분포에 적합한지 여부를 확인합니다. * 독립성 …
wikidocs.net
5.2.3.1. Chisquare test
## 카이제곱 검정 파이썬에서 카이제곱 검정을 하는 방법은 scipy.stas를 이용하면 된다. stats.chi2_contingency()함수를 이용하여 분석을 한다.…
wikidocs.net
[파이썬 카이검정 코드 기본 사용법]
- 적합성검정 : chisq_stat, p_value = stats.chisquare(f_obs=observed(관찰빈도수), f_exp=expected(기대빈도수))
- 독립성 검정 : chisq_stat(카이제곱 통계량), p_value, dof(자유도), expected(기대빈도수) = stats.chi2_contingency(data(피벗형태))
- 동질성 검정 : chisq_stat(카이제곱 통계량), p_value, dof(자유도), expected(기대빈도수) = stats.chi2_contingency(data)
[클릭수는 이산형 변수인데 어떻게 카이검정에 사용되는가]
- 클릭수 자체는 이산형 변수이지만 카이검정에서 클릭을 한 것(1)과 클릭을 하지 않은 것(0)이라는 범주형 변수로 변환할 수 있으며, 각 변수의 빈도수를 표현한 것이 클릭수가 됨(카입검정은 범주형 데이터의 빈도를 비교하는 것)
- 헤드라인별 평균 클릭수와 같은 연속형 변수 혹은 순수한 이산형 비교하고자 한다면, ANOVA(분산분석)과 같은 다른 방법을 사용해야 함
[난수 생성에 사용되는 기본 코드 사용법]
02_05. scipy를 이용하여 난수 만들기 – 분포함수.rvs 메소드 이용
scipy 라이브러리에서 난수를 생성하는 함수는 주로 scipy.stats 모듈에서 제공됩니다. 다양한 확률 분포에서 난수를 생성할 수 있는 기능을 제공합니다. 몇 가지 주요 함…
wikidocs.net
- np.random.seed(42) : 난수 생성기의 초기 상태를 설정하는 역할(재현성 확보)
- 암호화 키 생성이나 게임 내 동작 시뮬레이션과 같은 매번 다른 난수를 요구하는 상황이 아닐 때 사용 권장(실험 결과 재현이 필요할 때, 샘플링에 대한 반복 검증이 필요할 때 등)
- 이항분포 : binomial_data = binom.rvs(n(시행횟수)=10, p(성공확률)=0.5, size(난수개수)=1000)
- 균등분포 : uniform_data = uniform.rvs(loc(분포시작값)=0, scale(분포범위)=10, size(난수개수)=1000)
- 표준정규분포 : normal_data = norm.rvs(size=1000)
[부트스트랩]
- 추출된 표본을 마치 모집단처럼 생각하여, 그로부터 복원 추출하는 방법론(추출한 샘플을 다시 중복해서 추출 가능)
- n개의 데이터로부터 n개를 샘플링하여 각 부트스트랩 샘플로부터 원하는 통계량을 계산함
- 위 계산을 k번 반복하여 얻어진 통계량의 분포를 기반으로 신뢰구간을 구함
'데이터 부트캠프 - Today I Learned' 카테고리의 다른 글
[스파르타 내일배움캠프 / 데이터 분석 트랙] WIL(Weekly I Learned)_8주차 (0) | 2025.01.19 |
---|---|
[스파르타 내일배움캠프 / 데이터 분석 트랙] TIL(Today I Learned)_8주차_25.01.17 (0) | 2025.01.17 |
[스파르타 내일배움캠프 / 데이터 분석 트랙] TIL(Today I Learned)_8주차_25.01.15 (0) | 2025.01.15 |
[스파르타 내일배움캠프 / 데이터 분석 트랙] TIL(Today I Learned)_8주차_25.01.14 (0) | 2025.01.14 |
[스파르타 내일배움캠프 / 데이터 분석 트랙] TIL(Today I Learned)_7주차_25.01.09 (0) | 2025.01.09 |