|
# 필요한 각종 패키지를 불러오고 import numpy as np import pandas as pd import statsmodels.api as sm import statsmodels.formula.api as smf # pandas 패키지의 read_csv()를 이용해 cars.csv를 읽어 df라는 data.frame으로 저장합니다. df=pd.read_csv('~/R/data/cars.csv') # statsmodels.api패키지의 OLS()함수로 y-절편없는 회귀분석을 합니다. model=sm.OLS(np.sqrt(df['dist']),df['speed']).fit() # statsmodels.formula.api로 R같이 수식을 쓸 수 있습니다. model2=smf.ols('np.sqrt(dist)~speed-1',data=df).fit() # 결과를 보면 제 R 책 95쪽에 sqrt-변환을 한 y-절편이 없는 모형하고 동일하네요 (copy-paste해서 결과가 삐뚤삐뚤한데 패키지에서는 줄 잘 맞습니다). model.summary() # model2.summary()도 동일합니다. OLS Regression Results ============================================================================== Dep. Variable: np.sqrt(dist) R-squared: 0.969 Model: OLS Adj. R-squared: 0.968 Method: Least Squares F-statistic: 1528. Date: Sat, 10 Nov 2018 Prob (F-statistic): 1.33e-38 Time: 11:44:48 Log-Likelihood: -78.181 No. Observations: 50 AIC: 158.4 Df Residuals: 49 BIC: 160.3 Df Model: 1 Covariance Type: nonrobust ============================================================================== coef std err t P>|t| [0.025 0.975] ------------------------------------------------------------------------------ speed 0.3967 0.010 39.088 0.000 0.376 0.417 ============================================================================== Omnibus: 2.127 Durbin-Watson: 1.772 Prob(Omnibus): 0.345 Jarque-Bera (JB): 1.703 Skew: 0.452 Prob(JB): 0.427 Kurtosis: 2.973 Cond. No. 1.00 ============================================================================== |
|
첫댓글 안재형 박사님께서 올려주시는 부분들이
언젠가 SAS 보다는 Python 이나 R로 변경되는 날의 초석이 되겠지요.
열심히 응원합니다.
syntax가 R을 아는사람들이 더 편할것 같으네요, SAS보다는. 우선 조용히 눈팅만 하겠습니다.