저는 Python 3x에서 Henze-Zirkler의 다 변수 정규성 테스트를 적용하고 Jupyter 노트북에서 파이썬으로 그렇게 할 수 있는지 궁금합니다.rpy2가있는 Jupyter 노트북에서 Henze-Zirkler의 다 변수 정규성 테스트를 적용하는 방법
나는 VAR 모델을 데이터와 맞추었고 그때 나는이 적합 VAR 모델의 잔차가 정상적으로 분포되어 있는지 테스트하고 싶다.
Jupiter 노트북에서 파이썬을 사용하면 어떻게 될까요?
저는 Python 3x에서 Henze-Zirkler의 다 변수 정규성 테스트를 적용하고 Jupyter 노트북에서 파이썬으로 그렇게 할 수 있는지 궁금합니다.rpy2가있는 Jupyter 노트북에서 Henze-Zirkler의 다 변수 정규성 테스트를 적용하는 방법
나는 VAR 모델을 데이터와 맞추었고 그때 나는이 적합 VAR 모델의 잔차가 정상적으로 분포되어 있는지 테스트하고 싶다.
Jupiter 노트북에서 파이썬을 사용하면 어떻게 될까요?
나중에이 방법을 발견 한 이후로 이것은 또 다른 대답입니다. R의 라이브러리를 Python으로 가져 오지 않으려는 경우. 하나는 R의 출력을 파이썬으로 호출 할 수 있습니다. 즉하나는 다음과 같이 파이썬을 통해 R 기능을 활성화시킬 수 있습니다 :
import rpy2.robjects as robjects
from rpy2.robjects import r
from rpy2.robjects.numpy2ri import numpy2ri
from rpy2.robjects.packages import importr
import numpy as np
이
# Create data
resi = pd.DataFrame(np.random.random((108, 2)), columns=['Number1','Number2'])
말 집용 파이썬에서 Dataframe 것을 가정 그리고
#Converting the dataframe from python to R
# firt take the values of the dataframe to numpy
resi1=np.array(resi, dtype=float)
# Taking the variable from Python to R
r_resi = numpy2ri(resi1)
# Creating this variable in R (from python)
r.assign("resi", r_resi)
# Calling libraries in R
r('library("MVN")')
# Calling a function in R (from python)
r("res <- hzTest(resi, qqplot = F)")
# Retrieving information from R to Python
r_result = r("res")
# Printing the output in python
print(r_result)
이 뜻을 따를 코드입니다 출력을 생성하십시오 :
Henze-Zirkler's Multivariate Normality Test
---------------------------------------------
data : resi
HZ : 2.841424
p-value : 1.032563e-06
Result : Data are not multivariate normal.
---------------------------------------------
가 이미이 테스트를 수행 R의 패키지이며, 그런 다음 jupyter로 이동 MVN
이
당신이해야 할 첫 번째 일은 here
에 설명 된대로 파이썬으로 MVN을 가져 오는 것입니다라고 노트북 등
# Fit VAR(1) Model
results = Model.fit(1)
results.summary()
스토어로 집용
로 잔차를 데이터로 VAR (1) 모형을 적합그런 다음
# Call function from R
import os
os.environ['R_USER'] = '...\Lib\site-packages\rpy2'
import rpy2.robjects as robjects
from rpy2.robjects import pandas2ri
pandas2ri.activate()
from rpy2.robjects.packages import importr
MVN = importr("MVN", lib_loc = "C:/.../R/win-library/3.3")
MVN을 가져온 후 당신은 너무
MVNresult =MVN.hzTest(resi, qqplot = 0)
당신이
type(MVNresult)
에 누르면 당신이이
것을 발견 할 것이다 정규성 테스트를 간단하게 할 수 있습니다rpy2.robjects.methods.RS4
따라서,이 경우에 당신이 세부 사항이 당신에게 관찰을 보여줍니다 이후
tuple(MVNresult.slotnames())
그런
설명이 link에게 매우 강력한를 찾을 수
('HZ', 'p.value', 'dname', 'dataframe')
그럼 당신은 얻을 수 있습니다 그 값은
np.array(MVNresult.slots[tuple(MVNresult.slotnames())[i]])[0]
경우에 따라서
HZ', 'p-value',...
P 값 즉 i=1
'로서 0, 1, 2, 3
용 스탠드 i
후 0.05 잔차 (집용)이다 15,
5 % 신뢰 수준에서 다변량 정규 아니다.