14-06 분산 (var)
DataFrame.std(axis=None, skipna=None, level=None, ddof=1, numeric_only=None, kwargs)
개요
var 메서드는 행/열에 대한 불편향분산를 구하는 메서드입니다.
※ 모분산이 아니라 불편향분산을 구하는 메서드입니다. 불편향 메서드란 분모에 n이 아닌 n-1나누는 기대값을 적용해 편향을 제거한 분산입니다.
※ ※ 후술할 ddof=0 일 경우 자유도가 n이므로 모분산으로 계산이 가능합니다
여기에 이미 첨부 필요
사용법
기본 사용법
※ 자세한 내용은 아래 예시를 참고 바랍니다.
df.var(axis=None, skipna=None, level=None, ddof=1, numeric_only=None, kwargs)
axis : 불편향분산을 구할 축을 지정합니다.
skipna : 결측치를 무시할지 여부입니다.
level : Multi Index의 경우 대상 레벨을 지정할 수 있습니다.
ddof : 불편향분산 계산의 분모가되는 자유도를 지정합니다. 산식은 n - ddof값으로 기본값은 n-1입니다.
numeric_only : 숫자, 소수, bool로 구성된 열만 대상으로할지 여부입니다.
kwargs : 함수의 경우에 추가적으로 적용할 키워드입니다.
예시
먼저 기본적인 사용법 예시를 위해 4x4짜리 Multi Index 객체를 생성하겠습니다.
[N,T,F]=[np.NaN,True,False]
idx = [['IDX1','IDX1','IDX2','IDX2'],['row1','row2','row3','row4']]
col = ['col1','col2','col3','col4']
data = [[1,5,7,13],[5,2,19,1],[13,6,4,12],[8,N,0,8]]
df = pd.DataFrame(data,idx,col)
print(df)
>>
col1 col2 col3 col4
IDX1 row1 1 5.0 7 13
row2 5 2.0 19 1
IDX2 row3 13 6.0 4 12
row4 8 NaN 0 8
기본적인 사용법
인수입력 없이 var메서드를 사용할 경우 각 열의 요소들의 불편향분산을 계산합니다.
col1 25.583333
col2 4.333333
col3 67.000000
col4 29.666667
dtype: float64
skipna인수의 사용
skipna=False인 경우 결측값이 포함된 경우 NaN을 출력합니다.
col1 25.583333
col2 NaN
col3 67.000000
col4 29.666667
dtype: float64
axis인수의 사용
axis 인수를 통해 계산의 대상이 될 축을 지정할 수 있습니다.
IDX1 row1 25.000000
row2 69.583333
IDX2 row3 19.583333
row4 21.333333
dtype: float64
level인수의 사용
Multi Index의 경우 level 인수를 이용해 레벨을 지정할 수 있습니다.
col1 col2 col3 col4
IDX1 8.0 4.5 72.0 72.0
IDX2 12.5 NaN 8.0 8.0
ddof인수의 사용
ddof인수란 불편향분산 계산에 사용되는 분모인 n-ddof 값을 말합니다.
이는 자유도 라고 하며 모분산과 불편향분산에서 반드시 발생하는 괴리율을 줄이기 위해 사용됩니다.
자유도란 통계적 추정을 할 때 표본자료 중 모집단에 대한 정보를 주는 독립적인 자료의 수를 말합니다.
불편향분산은 정규분포를 그리는 모 표준분산에 비해서 더 좁은 분산값을 갖기 때문에 n이 아닌 n-1로 나누어줍니다.
※ 보다 자세히 설명하자면 추정량에 대한 증명시 표본분산을 구할 때 n-1로 나누면 정확히 σ²가 나오며
이는 n보다 n-1이 더 값의 정확도가 높음을 의미합니다. 자세한것은 추가로 공부하시는걸 추천드립니다.
자유도에 따라 변하는 값을 보겠습니다. 열당 값은 4개로 즉, n이 4이기 때문에 4부터는 값/0이기때문에 값의 지정이 불가해집니다.
col1 25.583333
col2 4.333333
col3 67.000000
col4 29.666667
dtype: float64
col1 38.375000
col2 8.666667
col3 100.500000
col4 44.500000
dtype: float64
col1 76.75
col2 NaN
col3 201.00
col4 89.00
dtype: float64
col1 NaN
col2 NaN
col3 NaN
col4 NaN
dtype: float64
'파이썬완전정복-Pandas DataFrame > 14. 통계(기초)' 카테고리의 다른 글
Pandas DataFrame 14-08 누적 최대/최소 (cummax / cummin) (0) | 2022.02.07 |
---|---|
Pandas DataFrame 14-07 평균절대편차 (mad) (0) | 2022.02.07 |
Pandas DataFrame 14-05 표준편차 (std) (0) | 2022.02.07 |
Pandas DataFrame 14-04 최빈값 (mode) (0) | 2022.02.07 |
Pandas DataFrame 14-03 중앙값 (median) (0) | 2022.02.07 |