ó
áp7]c           @  s3  d  Z  d d l m Z d d l m Z d d l Z d d l Z d d l m	 Z	 d d l
 j Z d d l m Z d d	 d
 d d d d d d d d g Z d „  Z d d „ Z d „  Z e d k r/e d ƒ e d ƒ xY e D]Q Z e e ƒ e e ƒ \ Z Z Z Z Z e e e ƒ Z e e j e ƒ e ƒ qÙ We d ƒ x€ e D]x Z e e ƒ e e ƒ \ Z Z Z Z Z g  e D] Z e e e k ^ qqZ e	 j e Œ  Z e e j e ƒ e d  ƒ q?We d ƒ e d ƒ x] e D]Q Z e e ƒ e e ƒ \ Z Z Z Z Z e e e ƒ Z e e j e ƒ e ƒ q×Wn  d S(   s   calculating anova and verifying with NIST test data

compares my implementations, stats.f_oneway and anova using statsmodels.OLS
iÿÿÿÿ(   t   print_function(   t   lmapN(   t   statsi   (   t
   data2dummys
   SiRstv.dats
   SmLs01.dats
   SmLs02.dats
   SmLs03.dats   AtmWtAg.dats
   SmLs04.dats
   SmLs05.dats
   SmLs06.dats
   SmLs07.dats
   SmLs08.dats
   SmLs09.datc         C  sƒ  t  j j t  j j d |  ƒ ƒ } t | d ƒ  } | j ƒ  j d ƒ } Wd  QXg  | d D] } | j ƒ  ^ qY } g  | d d !D] } | r | j ƒ  ^ q } t j | d d ƒ} | j	 \ } }	 | j
 t ƒ } t j | ƒ }
 t | d d	 ƒ } t | d
 d	 ƒ } t | d d	 ƒ } t | d d ƒ } t | d d ƒ } t j j | | | ƒ } | |	 t j | | | | g ƒ | |
 f S(   Ns   ./datat   rs   
i<   i(   i0   t   skiprowsi    iÿÿÿÿi   i   iüÿÿÿi   iýÿÿÿ(   t   ost   patht   abspatht   joint   opent   readt   splitt   npt   loadtxtt   Tt   astypet   intt   uniquet   floatR   t   ft   sft   array(   t   filenamet   fnamet   fdt   contentt   linet   datat	   certifiedt   dataft   yt   xt   catyR   t   R2t   resstdt   dfbnt   dfwnt   prob(    (    sQ   lib/python2.7/site-packages/statsmodels/sandbox/regression/anova_nistcertified.pyt   getnist   s     !#,i    c         C  sˆ  |  d  d  … t  j f } | d  d  … t  j f | j ƒ  } t | d  d  … d  d … f | d  d  … d  d … f ƒ \ } } } } t  j | j | ƒ }	 t  j | | j ƒ  d | j ƒ }
 | j d } | j d } | d } | | } |
 t | ƒ } |	 t | ƒ } | | } t j	 j
 | | | ƒ } |
 |	 |
 } t  j | ƒ } d „  } t | | | | | f ƒ \ } } } } | | | | f S(   Ni   i   i    c         S  s%   t  j |  ƒ d k r |  d S|  Sd  S(   Ni   i    (   i   i   (   i    i    (   R   t   shape(   t   z(    (    sQ   lib/python2.7/site-packages/statsmodels/sandbox/regression/anova_nistcertified.pyt   _fix2scalarI   s     (   R   t   newaxist   meant   groupsstats_dummyt   dotR   R(   R   R   R   R   t   sqrtR   (   R   R    t   seqt   yrvst   xrvst   meangt   vargt
   xdevmeangrt   countgt   sswnt   ssbnt   nobst   ncatR$   R%   t   msbt   mswR   R&   R"   R#   R*   (    (    sQ   lib/python2.7/site-packages/statsmodels/sandbox/regression/anova_nistcertified.pyt   anova_oneway0   s$    #G#


	'c         C  sX   t  j t | ƒ d t ƒ} t  j |  | ƒ j ƒ  } | j | j | j t	 j
 | j ƒ f S(   Nt   prepend(   t   smt   add_constantR   t   Falset   OLSt   fitt   fvaluet   f_pvaluet   rsquaredR   R/   t	   mse_resid(   R   R    t   Xt   res(    (    sQ   lib/python2.7/site-packages/statsmodels/sandbox/regression/anova_nistcertified.pyt	   anova_olsP   s    t   __main__s   
 using new ANOVA anova_oneways   f, prob, R2, resstds   
 using stats ANOVA f_onewayi   s   
 using statsmodels.OLS(    t   __doc__t
   __future__R    t   statsmodels.compat.pythonR   R   t   numpyR   t   scipyR   t   statsmodels.apit   apiR?   t   try_ols_anovaR   t
   filenameliR'   R=   RJ   t   __name__t   printt   fnR   R    t   certR   R!   RI   R   t   iit   xlistt   f_oneway(    (    (    sQ   lib/python2.7/site-packages/statsmodels/sandbox/regression/anova_nistcertified.pyt   <module>   sF   			 	




#


