기본 콘텐츠로 건너뛰기

라벨이 파이썬인 게시물 표시

[matplotlib]quiver()함수

거듭제곱근(Radicals)

내용 거듭제곱근(Radicals) 파이썬 함수에서 거듭제곱근 문제 수정 거듭제곱근(Radicals) 거듭제곱근(Radicals) 식 1과 같은 형태를 거듭제곱근(Radicals)라고 합니다. \begin{align}\tag{식 1}y&=\sqrt[n]{x}\\&=a^\frac{1}{n}\\ & x \gt 0: y \in \mathbb{R}\\ & x \lt 0: y \in \text{Complex number}\end{align} 식 1의 표현에서 n=2의 경우 n은 생략됩니다. $$\sqrt[4]{16} = 16^\frac{1}{4}=(2^4)^\frac{1}{4}=2$$ pow(16,1/4) 2.0 식 1에서 n이 홀수일 경우 x의 부호는 근호(root) 외부로 이동할 수 있습니다. $$\sqrt[3]{-125}=(-125)^\frac{1}{3}=((-5)^3)^\frac{1}{3}=-5$$ 음수일 경우 부호를 이동시키지 않은 상태에서 pow() 함수를 적용하면 복소수가 반환됩니다. 이는 $\frac{1}{3}$이 무한 소수이기 때문에 발생하는 컴퓨터 연산의 본질적 오류입니다. y=-pow(125,1/3) round(y, 2) -5.0 y=pow(-125,1/3) y (-2.5-4.330127018922192j) 위와 같이 세제곱근은 numpy 패키지의 cbrt() 함수를 적용할 수 있습니다. y=np.cbrt(-125) y -5.0 다음은 n이 짝수이고 x가 음수일 경우입니다. $$\sqrt[4]{-16}=(-16)^\frac{1}{4}$$ pow(-16, 1/4) (1.4142135623730951+1.414213562373095j) 위 문제의 경우 -16은 어떤수의 실수인 지수승으로 계산되지 않기 때문에 평가될 수 없습니다. 즉, 실수의 범위에서 음수의 거듭제곱근은 인덱스(n)가 홀수일 경우 계산될 수 있지만 짝수일 경우는 계산될 수 없습니다. ...

[python] 클래스의 상속(Inheritance)

상속(Inheritance) 상속 은 기존의 클래스를 재이용하기 위해 현재 클래스내에 그 객체(클래스)를 호출하여 적용하는 것입니다. 식 1에 나타낸 것과 같이 클래스1은 클래스2의 속성과 메소드들을 사용할 수 있습니다. class 클래스1(클래스2): 내 용 (식 1) 식 1의 클래스2는 상속의 대상되는 클래스로 부모 클래스, 수퍼 클래스, 또는 기본 클래스(parent, super, or base class) 라고 하며 클래스1은 클래스2를 사용하는 주체로 자식클래스, 파생클래스, 또는 하위 클래스(child, derived, or subclass) 라고 합니다. 자식 클래스는 부모 클래스의 속성이나 메서드를 사용할 수 있습니다. 또한 자식클래스는 클래스2의 속성이나 메서드를 수정하여 사용할 수 있습니다. 이와 같이 상속받는 객체를 수정하여 다시 정의하는 것을 재정의(overriding) 라고 합니다. 다음 클래스 Book 은 속성으로 책 제목과 종류를 받아 그 제목을 출력하는 메서드를 가지고 있습니다. class Book: tax=0.05 def __init__(self, title, kind, price): self.title=title self.kind=kind self.price=price def Intro(self): print(f'이책의 제목은 "{self.title}" 입니다.') def Price(self): return self.price+self.price*Book.tax py=Book('Python', 'IT', 27000) py.Intro() 이책의 제목은 "Python" 입니다. py.Price() 28350.0 다음은 소설에 대한 클래스( Fiction )로서 클래스 Book 을 상속받는 자식 클래스입니다. 그러므...

[python] 속성(Attribute)

속성(class attribute) 내용 클래스 속성 인스턴스 속성 클래스 속성 속성은 그 객체의 특징 또는 상태에 접근할 수 있는 장치이며 클래스 내에서 특별한 형식 없이 값을 할당하는 것으로 생성됩니다. 다음에작성한 클래스 simpleStatistic 의 subject가 속성이 됩니다. class simpleStatistic: """데이터의 합계, 평균, 중간값, 최빈값, 그리고 표준편차를 계산합니다.""" subject="math" def __init__(self, obj): self.obj=obj def sum(self): total=0 for i in self.obj: total +=i self.total=total return(self.total) def mean(self): tot=self.sum() self.mu=tot/len(self.obj) return(self.mu) def median(self): value=sorted(self.obj) n=int(len(value)/2) if n % 2 ==0: med=(value[n-1]+value[n])/2 else: med=value[n] self.med=med return(self.med) def mode(self): re={} for i in self.obj: re[i]=self.obj.count(i) v=list(re.values()) k=list(re.keys()) self.mod...

[data analyis] 확률과 주요통계량: 모멘트와 기대값 예제

예 1) 다음의 확률밀도함수(pdf)를 갖는 확률연속변수의 기대값은? $$f(x)=\begin{cases}c(x^3+x^2+1)& 0\lt x \lt 10\\ 0&\text{otherwise} \end{cases}$$ 위 함수에서 범위 (0, 10)에서의 적분값은 1이 되어야 합니다. 이 조건을 적용하여 상수 c가 계산될 수 있습니다. 적분 계산은 파이썬 라이브러리 sympy.integrate() 함수를 적용합니다. 또한 그 적분의 결과에서 표현되는 미지수 c는 sympy.solve() 함수를 사용하여 결정할 수 있습니다. c, x=symbols("c, x") f=c*(x**3+x**2+1) F=f.integrate((x, 0, 10)) print(F) 8530*c/3 C=solve(Eq(F, 1), c);C [3/8530] 위 결과를 c로 치환한 새로운 함수를 사용하여 기대값을 계산합니다. f=f.subs(c, C[0]) print(f) 3*x**3/8530 + 3*x**2/8530 + 3/8530 위 결과인 확률함수에 대한 기대값의 계산은 식 1과 같습니다. $$\tag{식 1}E(x) = \int^{10}_0 x\left(\frac{3}{8530}x^3+\frac{3}{8530}x+\frac{3}{8530} \right)$$ E=integrate(x*f, (x, 0, 10)) print(E) 6765/853 round(float(E), 3) 7.931 확률변수가 변수 x에 대한 함수 g(x)를 정의 할 수 있는 경우 기대값은 식 2와 같이 그 함수에 대한 확률 함수 f(x)와의 곱으로 계산할 수 있습니다. $$\tag{식 2}E(g(x))=\begin{cases}\sum_{x\in S}g(x)f(x)& x:\text{이산변수},\; S: \text{표본공간}\\ \int^\infty_{-\infty}g(x)f(x)\, dx& x:\text{연속변수}\end{cases}$...

[data analysis] 이원분산분석(two-way ANOVA)

이원분산분석(two-way ANOVA) 관련된 내용 분산분석 (Analysis of variance)의 개요 일원분산분석(One-way ANOVA) 사후분석(Post-hoc test) 이원분산분석(two-way ANOVA) 일원분산분석(one-way anova)의 경우 명목형인 설명변수(요인)의 각 효과와 연속형 반응변수의 관계를 추정하는 방법입니다. 요인이 2개 이상일 경우 고려해야 할 변동이 증가합니다. 이러한 다요인 분산분석에서 2개의 요인을 포함하는 자료의 분석을 이원분산분석(two-way anova) 라고 하며 데이터 구조는 표 1과 같습니다. 표 1 이원분산분석의 데이터 구조 요인1(α) 요인2(β) 합 평균 처리1 처리2 … 처리k 1 y 11 y 12 … y 1k T 1. y 1. 2 y 21 y 22 … y 2k T 2. y 2. ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ n y n1 y n2 … y nk T n. y n. 합 T .1 T .2 … T .k T 평균 y .1 y .2 … y .k y 표 1은 다음과 같이 구성되어있습니다. 요인(α, β, 설명변수): 2 반응변수(y) 수준(처리): 인자 1의 n(α), 인자 2의 k(β) 표 1의 각 값은 식 1과 같이 나타낼 수 있습니다. y ijl = μ + α i + β j + α i β j + e ijl (식 1) i: 요인 1의 인덱스, 1, 2, ..., n j: 요인 2의 인덱스, 1, 2, ..., k l: i, j에 대응하는 반응변수의 인덱스 위 모형은 n개 수준의 α와 k개 수준의 β에 의한 효과인 주효과(main effect) 와 두 요인에 의한 교호 효과(interaction effect) 는 αβ, 그리고 각 관찰치와의 오차항으로 구성됩니다. 식 1의 모형은 식 2와 같이...

[data analysis] 일원분산분석(One-way ANOVA)

일원분산분석(One-way ANOVA) 관련된 내용 분산분석 (Analysis of variance)의 개요 일원분산분석(one-way ANOVA) 사후분석(Post-hoc test) 이원분산분석(two-way ANOVA) 분산분석의 귀무가설은 다음과 같습니다. H0 : µ 1 = µ 2 = · · · = µ n 분산분석을 위해 다음을 가정합니다. 각 모집단은 정규분포를 따릅니다. 모든 모집단의 분산은 동일합니다. 관측치들은 독립적이어야 합니다. 위의 정규성 가정은 각 그룹에 대응하는 모집단을 검정하는 것은 어렵기 때문에 모델의 잔차에 대한 검정으로 대신합니다. 또한 독립성은 자료의 수집단계의 정보에 의해 판단되는 것으로 분석 중에 그 검정은 쉽지 않습니다. 표 1에서 나타낸 것과 같이 one-way ANOVA는 각 factor에 포함되는 수준 즉 처리(treatment, 요인수준)가 없습니다. 그러므로 일원분산분석에서는 요인과 treatment가 같으며 각 요인에 포함된 값들(반응변수)을 그룹화합니다. 이 구조에서 각 그룹내의 변동과 각 요인들 사이의 변동을 비교합니다. 표 1 일원분산분석을 위한 자료구조 요인(처리) 1 2 … t 반응(값) x 11 x 12 … x 1t x 21 x 22 … x 2t ⋮ ⋮ ⋮ ⋮ x n1 x n2 … x nt 평균 X 1 X 2 … X .t 총평균 X .. 표 1로부터 각 값들은 식 1과 같이 일반화한 모형으로 나타낼 수 있습니다. x ij  = μ j + e ij (식 1) x ij : 각 값 μ j : 그룹 j의 평균 e ij : x ij 에 대응하는 오차 i:1, 2,…, n(그룹내 값의 수) j:1, 2, …, t(그룹의 수) 이 모형에서 각 변수는 독립적이고 정규분포에 부합한다고 가정했으므로 오차항(e) 역시 평균이 0이고 일정한 분산을 가진 정규분...

[data analysis] 사후분석(Post-hoc test)

사후분석(Post-hoc test) 관련된 내용 분산분석의 개요 일원분산분석(one-way ANOVA) 사후분석(Post-hoc test) 이원분산분석(two-way ANOVA) 통계 분석은 데이터의 정규성, 등분산성, 그리고 독립성등의 기본가정의 충족 여부에 결과의 합리성을 확보할 수 있습니다. 또한 분산분석의 경우 다중 그룹의 비교이므로 각 그룹간의 효과를 분석할 필요가 존재합니다. 이러한 분석은 분산분석 모형 구축과는 별도로 진행하므로 사후분석이라 합니다. 사후분석에서 가정의 적합성을 검정하기 위해 적용할 수 있는 방법이나 함수는 다음과 같습니다. 정규성 : 반응변수는 정규분포를 따릅니다. scipy.stats.probplot(data) stats.shapiro() , scipy.stats.ansderson(x, dist="norm") 이상치 검정: IQR을 기준으로 판단 할 수 있음 등분산성 scipy.stats.bartlett(smaples..) , scipy.stats.levene() 정규성 분석 결과에 대한 신뢰는 데이터가 통계적 테스트의 기본 가정을 만족시키는 정도에 달려 있습니다. 일원 분산 분석에서 각 그룹의 모집단은 정규 분포를 따르고 동일한 분산을 가정합니다. 그러나 모집단의 정규성을 검정하는 것은 어려울 수 있습니다. 대신에 모델에 의한 잔차의 정규성 검정으로 대신합니다. Q-Q 플롯을 사용하여 정규성 가정을 시각적으로 평가할 수 있습니다. 예1) 일정기간의 코스피(kos), 코스탁(kq), 다우존스 주가지수(dj) 그리고 원-달러(WonDol)의 일일 변화량에 대한 분산분석에 대한 사후분석을 진행합니다. 다음의 코드에 의해 호출할 수 있으며 각 자료의 Open과 Close 사이의 일일 변화율을 계산한 자료를 독립변수와 의존변수( 일원 분산분석을 위한 자료구조 참조 )로 구분합니다. st=pd.Timestamp(2024,1, 1) et=pd.Timestamp...

[Linear Algebra] 전치행렬(Transposed matrix)

전치 행렬(Transposed matrix) m×n 형태의 행렬 A의 행과 열을 교환한 행렬을 A의 전치 행렬이라 하며 A T 로 나타냅니다. 그 전치 행렬의 형태는 n×m 입니다. 행렬 A와 전치 행렬 사이에 식 1의 관계가 성립합니다. A i,j = A T j,i (식 1) 전치 행렬은 numpy array 객체의 속성 .T 또는 함수 transpose() 를 사용하여 생성할 수 있습니다. A=np.array([[2, 4, 9], [3, 6, 7]]) print(A) [[2 4 9] [3 6 7]] print(np.transpose(A)) [[2 3] [4 6] [9 7]] print(A.T) [[2 3] [4 6] [9 7]] 식 2와 같이 전치 행렬을 다시 전치시키면 원시행렬(original matrix)이 됩니다. (A T ) T = A (식 2) print(A.T.T==A) [[ True True True] [ True True True]] 두 행렬의 행렬곱의 전치 행렬은 식 3과 같이 계산됩니다. (A·B) T = B T ·A T (식 3) 다음 코드에서 임의의 행렬 객체를 생성하기 위해 numpy.random 모듈의 randint() 함수를 사용하였습니다. 생성된 랜덤수의 재현성을 위해 numpy.random.seed() 함수를 사용하였습니다. np.random.seed(0) B=np.random.randint(-10, 10, (3,3)) print(B) [[ 2 5 -10] [ -7 -7 -3] [ -1 9 8]] # A·B AB=A@B # BT·AT BtAt=np.dot(B.T, A.T) print(np.equal(AB.T, BtAt)) [[ True True] [ True True] [ True True]]

[linear algebra] 벡터와 행렬(vector & Matrix)

벡터와 행렬(vector & Matrix) 벡터(vector) 행렬(Matrix) 파이썬에서 벡터, 행렬 등은 numpy.array() 함수를 사용하여 생성합니다. 또한 각 객체는 차원(dimension) 을 갖습니다. 벡터(vector) A = (3,1), B = (2,3)는 두 개 축 위에 표시되는 좌표(점)로 나타낼 수 있습니다. 각 점은 어떤 기준에 대한 크기만을 가집니다. 예를 들어 원점 O(0,0)를 기준으로 A 또는 B의 거리는 식 1과 같이 계산할 수 있습니다. \begin{align}\Vert \overline{OA}\Vert &=\sqrt{(3-0)^2+(1-0)^2}=\sqrt{10}\\ \Vert \overline{OB}\Vert &=\sqrt{(2-0)^2+(3-0)^2}=\sqrt{13}\end{align} (식 1) 식 1의 $\overline{OA}$는 점 O와 점 A 사이의 거리를 계산한 것입니다. 이 거리를 점 O를 시작하여 A 까지의 거리로 표현한다면 이동 방향이 고려된 것입니다. 이와 같이 거리 즉, 이동 크기에 방향을 함께 고려한 량을 벡터(Vector) 라고 하고 식 2와 같이 화살표를 첨가하여 나타냅니다. 일반적으로 출발점이 원점(O)인 경우 출발점을 생략하며 벡터 표시인 화살표 없이 단순히 알파벳 소문자로 표시합니다. 벡터의 관점에서 보면 식 1은 벡터 a와 벡터 b의 길이(크기)를 계산한 것으로 놈(Norm) 이라고 합니다. 벡터는 행과 열을 구분할 수 없습니다. 일반적으로 식 2와 같이 한 행으로 표시하지만 많은 경우 세로로 정렬됨을 의미 합니다. 이러한 표시를 열벡터 라고 하지만 실제로는 행과 열로 구성된 행렬입니다. 또한 행렬(Matrix) 의 경우는 대문자 알파벳으로 나타내며 벡터, 행렬을 구성하는 각각의 수를 요소(element)라고 합니다. \begin{align}&\overrightarrow{oa}=\vec{a}=\begin{bmatr...

[Linear Algebra] 외적(Outer product)

외적(Outer product) 3차원 공간에서 임의의 두 벡터들과 수직인 벡터는 외적(outer product, cross product) 에 의해 산출됩니다. 3차원의 두 벡터 a, b의 외적은 식 1와 같이 산출합니다. 두 벡터의 외적은 " × " 기호로 나타냅니다. a = [a 1   a 2   a 3 ] b = [b 1   b 2   b 3 ] (식 1) a×b = [a 2 b 3 − a 3 b 2   a 3 b 1 − a 1 b 3   a 1 b 2 − a 2 b 1 ] 식 1과 같이 벡터들의 외적은 벡터입니다. 이 식의 계산은 식 2와 같이 소행렬식과 여인수 를 사용하여 계산할 수 있습니다. \begin{align}\begin{bmatrix}a_1& a_2& a_3\\ b_1& b_2& b_3\end{bmatrix}&=\begin{bmatrix} \begin{vmatrix} a_2& a_3\\ b_2& b_3\end{vmatrix} & \begin{vmatrix}a_3& a_1\\ b_3& b_1 \end{vmatrix} & \begin{vmatrix} a_1& a_2\\ b_1& b_2\end{vmatrix}\end{bmatrix}\\&=\begin{bmatrix} a_2b_3-a_3b_2& a_3b_1-a_1b_3& a_1b_2-a_2b_1 \end{bmatrix}\end{align} (식 2) 벡터의 외적은 numpy.cross() 함수를 사용하여 계산합니다. 예 1) 두 벡터 a, b의 외적을 계산합니다. a = [2  1  -1]  b = [-3  4  1] a=np.array([2,1, -1]) b=np.array([-3, 4, 1]) print(np.cross(a, b)) [ 5 1 11] 위 결과 벡터는 그림 1에서 나타낸 것과 같이 벡터 a, b에 ...

[Linear Algebra] 내적(inner product)

내적(Inner product) a, b 두 벡터의 내적(inner product, dot product) 은 식 1과 같이 정의합니다. \begin{align}a&=\begin{bmatrix} a_1\\a_2\end{bmatrix}\; b=\begin{bmatrix} b_1\\b_2\end{bmatrix}\\ a\cdot b& = a_1\times b_1 + a_2\times b_2\end{align} (식 1) 식 1의 결과와 같이 두 벡터의 내적은 스칼라입니다. 같은 인덱스를 가진 성분들사이의 곱들의 총합으로 식 2와 같이 나타낼 수 있습니다. 행렬은 두 개 이상의 벡터들로 구성된 객체로 두 행렬 사이에 내적을 계산할 수 있습니다. 행렬들 사이에 이루어지는 내적을 행렬곱(matrix product) 라고 하지만 구분없이 닷곱, 내적곱이라고 명명합니다. \begin{align}\text{dot prodcut}:&\;\begin{bmatrix} a_1& a_2\end{bmatrix}\begin{bmatrix} b_1\\b_2\end{bmatrix}= a_1 b_1 + a_2 b_2\\\text{matrix product}:&\; \begin{bmatrix} a_{11}& a_{12}\\a_{21}& a_{22}\end{bmatrix}\begin{bmatrix} b_{11}& b_{12}\\b_{21}& b_{22}\end{bmatrix}=\begin{bmatrix} a_{11}b_{11}+a_{12}b_{21} & a_{11}b_{12}+a_{12}b_{22} \\a_{21}b_{11}+a_{22}b_{21} & a_{21}b_{12}+a_{22}b_{22} \end{bmatrix}\end{align} (식 2) 식 2의 두 행렬의 내적 연산은 앞 객체의 행과 뒤 객체의 열의 사이에서 연산이 이루어집니다. 행렬의 행...

[data analysis] Breusch-Pegan 검정

Breusch-Pegan 검정 Breusch-Pegan 검정은 회귀모델에서 발생하는 잔차의 이분산성을 검정합니다. 귀무가설과 대립가설은 다음과 같습니다. ( 회귀분석 에 대한 지식이 필요합니다. ) H0: 등분산입니다.(Homoscedasticity) H1: 이분산이 존재합니다.(Heteroscedasiticity) 이 방법은 다음 과정으로 실현됩니다. 회귀모델 생성 모델의 잔차 제곱을 계산 반응변수로서 잔차 제곱을 사용하여 새로운 회귀모델을 생성 nR 2 new 를 통계량으로 χ 2 검정 실시(자유도는 설명변수의 수) n: 데이터 크기, R 2 new : 잔차 제곱을 반응변수로 설정한 회귀모델의 결정계수 이 검정은 statsmodels.stats.diagnostic.het_breuschpagan(잔차, 설명변수) 함수를 사용합니다. 이 함수는 라그랑쥬 승수 통계량(Lagrange multiplier statistic)과 p-value, f-통계량과 p-value를 반환합니다. ( 회귀분석 참조 )

[data analysis] Levene Test

Levene Test 관련된 내용 Bartlett 검정 Fligner 검정 Levene Test Breusch-Pegan 검정 Levene 테스트는 k 샘플(그룹)들의 등분산성을 검정하기 위해 사용합니다. 일부 통계 테스트(예: 분산 분석)에서는 분산이 그룹 또는 샘플 간에 동일하다고 가정하며 회귀분석에서는 다양한 회귀모델들로 계산되는 오차 분포의 분산이 동일하다고 가정합니다. Levene 테스트를 사용하여 이러한 가정을 확인할 수 있습니다. Levene 검정은 Bartlett 검정의 대안으로 자료의 정규성이 불확실한 경우 선호됩니다. 그러나 데이터가 실제로 정규 분포 또는 거의 정규 분포에서 나왔다는 강력한 증거가 있다면 Bartlett의 검정이 더 나은 성능을 보입니다. Levene 검정의 귀무가설과 대립가설은 일반적으로 다음과 같이 기술할 수 있습니다. H0: σ 1 = σ 2 = … = σ k H1: 최소한 한 그룹의 분산이 다름 Levene 검정 통계량(W)은 식 1와 같이 정의됩니다. \begin{align} W&=\frac{N-k}{k-1}\frac{\sum^k_{i=1}n_i(Z_{i.}-Z_{..})^2}{\sum^k_{i=1}\sum^{n_i}_{j=1}(Z_{ij}-Z_{i.})^2}\\ Z_i & =\frac{1}{n_i}\sum^{n_i}_{j=1}Z_{ij}\\ Z_{..} & =\frac{1}{N}\sum^k_{i=1}\sum^{n_i}_{j=1}Z_{ij}\\ & k: \,\text{그룹의 수} \\ & n_i: \,\text{i번째 그룹에 속하는 샘플의 수} \\ & N: \,\text{총 샘플 수} \\ & Z_{ij}:\, \text{i번째 그룹의 j번째 관측값}\, y_{ij}\text{과}\, \hat{y_i}\text{의} L_1 \text{norm입니다.}\end{align} (식 1) Z ij 는 식 2와 같이 계...

[data analysis] Fligner 검정

Fligner 검정 관련된 내용 Bartlett 검정 Fligner 검정 Levene Test Breusch-Pegan 검정 데이터의 정규성을 파악할 수 없는 경우 비모수 방법인 Fligner 검정으로 등분산성을 검정할 수 있습니다. Fligner-Killeen 중앙값 검정은 정규성에서 벗어나는 자료들에 대해 분산의 동질성에 대한 검정입니다(Conover et al.(1981), [CON1]). 즉, 데이터의 순위를 이용하여 검정하는 것으로 검정통계량은 식 1과 같이 정의됩니다. \begin{align}FK &= \frac{\sum^k_{j=1} n_j(\bar{a_j}-\bar{a})}{s^2} \\& k: \,\text{비교할 그룹(변수)의 수} \\& \bar{a_j} : \,\text{j 그룹의 표준점수의 평균} \\& \bar{a}: \,\text{모든 표준점수의 평균} \\& s^2: \,\text{모든 표준점수의 분산} \end{align} (식 1) 식 1의 FK 검정통계량은 자유도 k-1의 χ 2 분포를 따릅니다. 즉, 표준정규분포에 부합하는 각 변수들의 제곱에 대한 분포를 따른다면 분산은 같습니다. 그러므로 이 분석의 귀무가설과 대립가설은 다음과 같습니다. 귀무가설(H0): 집단들의 분산이 같다. 대립가설(Ha): 최소한 두 집단간의 분산이 다르다. stats.fligner() 함수를 사용합니다. 예 1) 일정기간의 코스피지수, 코스탁지수, 다우존스지수, 원-달러 환율의 일일 종가의 변화율 자료들의 Fligner 등분산성 검정을 실시합니다. kos kq dj WonDol 1 0.016 0.008 0.006 0.002 2 -0.007 -0.004 0.014 -0.000 3 0.021 0.008 0.007 0.000 4 0.040 -0.001 0.002 0.006 5 -0.001 -0.01...