Ë
    £�DjsZ  ã                   óî   — d dl mZ d dlmZ d dlZd dlmZ d dlZd dlZd dl	Z
d dlZddlmZ ddlmZmZ  G d„ d	«      Zd
„ ZddddddddœZd„ Z	 	 dd„Zdd„Zdd„Zd„ Z	 	 	 dd„Zd d„Z	 	 	 d!d„Zd"d„Zy)#é    )ÚFUTURE_STACK)ÚlzipN)Úreduceé   )ÚSimpleTable)Ú	fmt_latexÚfmt_txtc                   ót   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Z	 	 dd„Zdd„Z	dd„Z
d	„ Zdd„Z	 	 dd„Zd„ Zd„ Zdd„Zy
)ÚSummaryc                 óJ   — g | _         g | _        g | _        d | _        d| _        y )NF)ÚtablesÚsettingsÚ	extra_txtÚtitleÚ_merge_latex©Úselfs    ú^C:\Crop_Prediction\Backend\crop-ai-system\venv\Lib\site-packages\statsmodels/iolib/summary2.pyÚ__init__zSummary.__init__   s&   € ØˆŒØˆŒØˆŒØˆŒ
Ø!ˆÕó    c                 ó"   — | j                  «       S ©N)Úas_textr   s    r   Ú__str__zSummary.__str__   s   € Ø�|‰|‹~Ðr   c                 óX   — t        t        | «      «      dz   | j                  «       z   dz   S )Nz
"""
z
""")ÚstrÚtyper   r   s    r   Ú__repr__zSummary.__repr__   s%   € Ü”4˜“:‹ Ñ*¨T¯\©\«^Ñ;¸gÑEÐEr   c                 ó"   — | j                  «       S )z$Display as HTML in IPython notebook.)Úas_htmlr   s    r   Ú_repr_html_zSummary._repr_html_   s   € à�|‰|‹~Ðr   c                 ó"   — | j                  «       S )z9Display as LaTeX when converting IPython notebook to PDF.)Úas_latexr   s    r   Ú_repr_latex_zSummary._repr_latex_"   s   € à�}‰}‹Ðr   c                 ó~   — ||||dœ}| j                   j                  |«       | j                  j                  |«       y)a­  
        Add the contents of a DataFrame to summary table

        Parameters
        ----------
        df : DataFrame
        header : bool
            Reproduce the DataFrame column labels in summary table
        index : bool
            Reproduce the DataFrame row labels in summary table
        float_format : str
            Formatting to float data columns
        align : str
            Data alignment (l/c/r)
        ©ÚindexÚheaderÚfloat_formatÚalignN)r   Úappendr   )r   Údfr'   r(   r)   r*   r   s          r   Úadd_dfzSummary.add_df&   s:   € ð$ #¨fØ$0¸5ñBˆà�‰×Ñ˜2ÔØ�‰×Ñ˜XÕ&r   c                 óZ   — t        j                  |«      }| j                  |dd||¬«       y)a  Add the contents of a Numpy array to summary table

        Parameters
        ----------
        array : numpy array (2D)
        float_format : str
            Formatting to array if type is float
        align : str
            Data alignment (l/c/r)
        Fr&   N)ÚpdÚ	DataFramer-   )r   Úarrayr*   r)   Útables        r   Ú	add_arrayzSummary.add_array=   s.   € ô —‘˜UÓ#ˆØ�‰�E ¨uØ!-°Uð 	õ 	<r   c                 ó  — |j                  «       D �cg c]  }t        ||«      ‘Œ }}|j                  «       D �cg c]  }t        ||«      ‘Œ }}t        j                  t        ||«      «      }|j                  d   |z  dk7  rE||j                  d   |z  z
  }	t        j                  |t        j                  |	ddggz  «      g«      }t        j                  ||«      }t        d„ |«      }| j                  ||¬«       yc c}w c c}w )aÅ  Add the contents of a Dict to summary table

        Parameters
        ----------
        d : dict
            Keys and values are automatically coerced to strings with str().
            Users are encouraged to format them before using add_dict.
        ncols : int
            Number of columns of the output table
        align : str
            Data alignment (l/c/r)
        float_format : str
            Formatting to float data columns
        r   Ú c                 ó0   — t        j                  | |g«      S r   )ÚnpÚhstack©ÚxÚys     r   ú<lambda>z"Summary.add_dict.<locals>.<lambda>f   s   € ¤2§9¡9¨a°¨VÓ#4€ r   ©r*   N)ÚkeysÚ
_formatterÚvaluesr7   r1   r   ÚshapeÚvstackÚsplitr   r3   )
r   ÚdÚncolsr*   r)   r:   r>   ÚvalsÚdataÚpads
             r   Úadd_dictzSummary.add_dictM   sá   € ð  67·V±V³XÖ>°”
˜1˜lÕ+Ð>ˆÐ>Ø56·X±X³ZÖ@°”
˜1˜lÕ+Ð@ˆÐ@Ü�x‰xœ˜T 4Ó(Ó)ˆà�:‰:�a‰=˜5Ñ  AÒ%Ø˜4Ÿ:™: a™=¨5Ñ0Ñ1ˆCÜ—9‘9˜d¤B§H¡H¨S°R¸°H°:Ñ-=Ó$>Ð?Ó@ˆDä�x‰x˜˜eÓ$ˆÜÑ4°dÓ;ˆØ�‰�t 5ˆÕ)ùò ?ùÚ@s
   “C?ºDc                 ó:   — | j                   j                  |«       y)z”Append a note to the bottom of the summary table. In ASCII tables,
        the note will be wrapped to table width. Notes are not indented.
        N)r   r+   )r   Ústrings     r   Úadd_textzSummary.add_texti   s   € ð 	�‰×Ñ˜fÕ%r   Nc                 ó¾   — t        |t        «      r|| _        y|�<|j                  j                  j
                  }|t        v r	t        |   }d|z   | _        yd| _        y)a  Insert a title on top of the summary table. If a string is provided
        in the title argument, that string is printed. If no title string is
        provided but a results instance is provided, statsmodels attempts
        to construct a useful title automatically.
        Nz	Results: r5   )Ú
isinstancer   r   ÚmodelÚ	__class__Ú__name__Ú_model_types)r   r   ÚresultsrO   s       r   Ú	add_titlezSummary.add_titleo   sU   € ô �eœSÔ!ØˆD�JàÐ"ØŸ™×/Ñ/×8Ñ8�ØœLÑ(Ü(¨Ñ/�EØ(¨5Ñ0�•
à�•
r   c                 óÜ   — t        |||j                  ¬«      }t        |«      }|�||_        |�||d<   | j	                  |d¬«       | j                  ||¬«       | j                  ||¬«       y)aL  Try to construct a basic summary instance.

        Parameters
        ----------
        results : Model results instance
        alpha : float
            significance level for the confidence intervals (optional)
        float_format: str
            Float formatting for summary of parameters (optional)
        title : str
            Title of the summary table (optional)
        xname : list[str] of length equal to the number of parameters
            Names of the independent variables (optional)
        yname : str
            Name of the dependent variable (optional)
        )ÚalphaÚuse_tNúDependent Variable:Úlr=   )r)   )r   rS   )Úsummary_paramsrW   Úsummary_modelr'   rI   r-   rT   )	r   rS   rV   r)   r   ÚxnameÚynameÚparamÚinfos	            r   Úadd_basezSummary.add_base€   sn   € ô& ˜w¨e¸7¿=¹=ÔIˆÜ˜WÓ%ˆØÐØˆEŒKØÐØ*/ˆDÐ&Ñ'Ø�‰�d #ˆÔ&Ø�‰�E¨ˆÔ5Ø�‰˜U¨GˆÕ4r   c                 óÒ  — | j                   }| j                  }| j                  }| j                  }t	        ||«      \  }}}|dz  }t        ||||«      }	|	D �
cg c]  }
|
j                  «       ‘Œ }}
dj                  |«      }|j                  d«      }||d<   |j                  |«       dj                  |«      }|�4|}t        |«      |k  r&dt        |dz  t        |«      dz  z
  «      z  |z   }nd}|D �
cg c]  }
t        j                  |
|«      ‘Œ }}
|D �
cg c]  }
dj                  |
«      ‘Œ }}
dj                  |«      }dj                  |||g«      }|S c c}
w c c}
w c c}
w )z%Generate ASCII Summary Table
        ú=ú
r   ú é   r5   )r   r   r   r   Ú_measure_tablesÚ_simple_tablesr   ÚjoinrC   r+   ÚlenÚintÚtextwrapÚwrap)r   r   r   r   r   Úpad_colÚ	pad_indexÚwidestÚ
rule_equalÚsimple_tablesr:   ÚtabÚtxtÚouts                 r   r   zSummary.as_text�   sW  € ð —‘ˆØ—=‘=ˆØ—
‘
ˆØ—N‘Nˆ	ä%4°V¸XÓ%FÑ"ˆ�˜Fà˜c‘\ˆ
ä& v¨x¸À)ÓLˆØ$1Ö2˜qˆq�y‰y�{Ð2ˆÐ2à�i‰i˜‹nˆØ�i‰i˜‹oˆØˆˆA‰Ø�
‰
�:ÔØ�i‰i˜‹nˆàÐØˆEÜ�5‹z˜FÒ"Øœc &¨1¡*¬s°5«z¸A©~Ñ"=Ó>Ñ>ÀÑF‘àˆEà1:Ö;¨AŒx�}‰}˜Q Õ'Ð;ˆÐ;Ø%(Ö) ˆt�y‰y˜�|Ð)ˆÐ)Ø�i‰i˜‹nˆà�i‰i˜  SÐ)Ó*ˆàˆ
ùò+ 3ùò <ùÚ)s   ÁEÃ6EÄE$c                 óX  — | j                   }| j                  }t        ||«      }|D �cg c]  }|j                  «       ‘Œ }}dj	                  |«      }| j
                  D �cg c]  }|j                  dd«      ‘Œ }}dj	                  |«      }dj	                  ||g«      }	|	S c c}w c c}w )z$Generate HTML Summary Table
        rc   z<br/>
)r   r   rg   r    rh   r   Úreplace)
r   r   r   rq   r:   rr   ÚstÚtemp_txtrs   rt   s
             r   r    zSummary.as_htmlÂ   sš   € ð —‘ˆØ—=‘=ˆä& v¨xÓ8ˆØ$1Ö2˜qˆq�y‰y�{Ð2ˆÐ2Ø�i‰i˜‹nˆà9=¿¹ÖH°2�B—J‘J˜t YÕ/ÐHˆÐHØ�n‰n˜XÓ&ˆà�n‰n˜c 3˜ZÓ(ˆàˆ
ùò 3ùò Is   ©B"Á!B'c                 ó¶  — | j                   }| j                  }| j                  }|�	d|z   dz   }nd}d|z   dz   }t        ||«      }|D �cg c]  }|j	                  «       ‘Œ }}dj                  |«      }d}| j                  rt        j                  |d|«      }d|||d	f}	d
j                  |	«      }	dj                  | j                  «      }
|	dz   |
z   }|S c c}w )zÉGenerate LaTeX Summary Table

        Parameters
        ----------
        label : str
            Label of the summary table that can be referenced
            in a latex document (optional)
        z	\caption{ú}z
\caption{}z\label{z

z8\\hline\n\\hline\n\\end{tabular}\n\\begin{tabular}{.*}\nz\\midrule\nz\begin{table}z\end{table}rc   z \newline 
z

\bigskip
)
r   r   r   rg   Úas_latex_tabularrh   r   ÚreÚsubr   )r   Úlabelr   r   r   rq   r:   rr   Ú
to_replaceÚnon_captionedrs   rt   s               r   r#   zSummary.as_latexÔ   sî   € ð —‘ˆØ—=‘=ˆØ—
‘
ˆàÐØ  5Ñ(¨3Ñ.‰Eà!ˆEà˜UÑ" SÑ(ˆä& v¨xÓ8ˆØ-:Ö;¨ˆq×!Ñ!Õ#Ð;ˆÐ;Ø�k‰k˜#ÓˆðAˆ
ð ×Òä—&‘&˜ ^°SÓ9ˆCà(¨%°¸¸^ÐKˆØŸ	™	 -Ó0ˆà×"Ñ" 4§>¡>Ó2ˆØ˜oÑ-°Ñ3ˆàˆ
ùò! <s   Á
C)TTú%.4fÚr)r‚   r�   )re   rY   r�   ©NN)çš™™™™™©?r�   NNN)r5   )rQ   Ú
__module__Ú__qualname__r   r   r   r!   r$   r-   r3   rI   rL   rT   r`   r   r    r#   © r   r   r   r      s^   „ ò"òòFòòð @FØó'ó.<ó *ò8&ó ð" HLØ#'ó5ò:#òJô$%r   r   c                 óì  — t        | |«      }|D �cg c]  }|j                  «       ‘Œ }}|D �cg c]  }t        |j                  «       d   «      ‘Œ  }}t	        |«      }g }g }t        t        |«      «      D ]e  }	t	        | |	   j                  d   dz
  d«      }
t        |||	   z
  |
z  «      }|j                  |«       ||	   |
|z  z   }|j                  ||z
  «       Œg ||t	        |«      fS c c}w c c}w )zôCompare width of ascii tables in a list and calculate padding values.
    We add space to each col_sep to get us as close as possible to the
    width of the largest table. Then, we add a few spaces to the first
    column to pad the rest.
    r   r   )	rg   r   ri   Ú
splitlinesÚmaxÚrangerA   rj   r+   )r   r   rq   r:   rr   ÚlengthÚlen_maxÚpad_seprn   ÚiÚnseprH   Úlen_news                r   rf   rf   ü   sø   € ô # 6¨8Ó4€MØ -Ö
.˜1ˆ1�9‰9�;Ð
.€CÐ
.à.1Ö2¨Œc�!—,‘,“. Ñ#Õ$Ð2€FÐ2Ü�&‹k€GØ€GØ€Iä”3�s“8‹_ò ,ˆÜ�6˜!‘9—?‘? 1Ñ%¨Ñ)¨1Ó-ˆÜ�7˜V A™YÑ&¨$Ñ.Ó/ˆØ�‰�sÔØ˜‘)˜d S™jÑ(ˆØ×Ñ˜ 7Ñ*Õ+ð,ð �Iœs 6›{Ð*Ð*ùò /ùâ2s
   ‘C,®#C1zOrdinary least squareszGeneralized least squaresz$Generalized least squares with AR(p)zWeighted least squareszRobust linear modelzNegative binomial modelzGeneralized linear model)ÚOLSÚGLSÚGLSARÚWLSÚRLMÚNBinÚGLMc                 ó
  — d„ }i }d„ |d<   d„ |d<   d„ |d<   d„ |d	<   ||d
<   d„ |d<   d„ |d<   d„ |d<   d„ |d<   d„ |d<   d„ |d<   d„ |d<   d„ |d<   d„ |d<   | j                   rdnd}d„ |d |z   d!z   <   d"„ |d#|z   d!z   <   d$„ |d%<   d&„ |d'<   d(„ |d)<   d*„ |d+<   d,„ |d-<   d.„ |d/<   d0„ |d1<   d2„ |d3<   d4„ |d5<   d6„ |d7<   d8„ |d9<   i }|j                  «       D ]  \  }}	  || «      ||<   Œ |S # t        t        t        f$ r Y Œ,w xY w):z8
    Create a dict with information about the model
    c                  ó`   — t         j                   j                  «       }|j                  d«      S )Nz%Y-%m-%d %H:%M)ÚdatetimeÚnowÚstrftime)ÚargsÚkwdsrœ   s      r   Útime_nowzsummary_model.<locals>.time_now%  s&   € Ü×Ñ×#Ñ#Ó%ˆØ�|‰|Ð,Ó-Ð-r   c                 óB   — | j                   j                  j                  S r   )rO   rP   rQ   ©r:   s    r   r<   zsummary_model.<locals>.<lambda>*  s   € ˜qŸw™w×0Ñ0×9Ñ9€ r   zModel:c                 óB   — | j                   j                  j                  S r   )ÚfamilyÚ__classrQ   r¢   s    r   r<   zsummary_model.<locals>.<lambda>+  s   €  a§h¡h×&6Ñ&6×&?Ñ&?€ r   zModel Family:c                 óV   — | j                   j                  j                  j                  S r   )r¤   ÚlinkrP   rQ   r¢   s    r   r<   zsummary_model.<locals>.<lambda>,  s   €  q§x¡x§}¡}×'>Ñ'>×'GÑ'G€ r   zLink Function:c                 ó.   — | j                   j                  S r   )rO   Úendog_namesr¢   s    r   r<   zsummary_model.<locals>.<lambda>-  s   € ¨A¯G©G×,?Ñ,?€ r   rX   zDate:c                 ó    — d| j                   z  S ©Nz%#6d)Únobsr¢   s    r   r<   zsummary_model.<locals>.<lambda>/  s   € ¨&°1·6±6©/€ r   zNo. Observations:c                 ó    — d| j                   z  S r«   )Údf_modelr¢   s    r   r<   zsummary_model.<locals>.<lambda>0  s   €  &¨1¯:©:Ñ"5€ r   z	Df Model:c                 ó    — d| j                   z  S r«   )Údf_residr¢   s    r   r<   zsummary_model.<locals>.<lambda>1  s   €  f¨q¯z©zÑ&9€ r   zDf Residuals:c                 ó    — | j                   d   S )NÚ	converged©Úmle_retvalsr¢   s    r   r<   zsummary_model.<locals>.<lambda>2  s   €  1§=¡=°Ñ#=€ r   z
Converged:c                 ó    — | j                   d   S )NÚ
iterationsr³   r¢   s    r   r<   zsummary_model.<locals>.<lambda>3  s   € ¨¯©°lÑ(C€ r   zNo. Iterations:c                 ó   — | j                   S r   )Úmethodr¢   s    r   r<   zsummary_model.<locals>.<lambda>4  s
   €  §¡€ r   zMethod:c                 ó    — | j                   d   S )NÚnorm©Úfit_optionsr¢   s    r   r<   zsummary_model.<locals>.<lambda>5  s   € ˜aŸm™m¨FÑ3€ r   zNorm:c                 ó    — | j                   d   S )NÚ	scale_estr»   r¢   s    r   r<   zsummary_model.<locals>.<lambda>6  s   €  A§M¡M°+Ñ$>€ r   zScale Est.:c                 ó    — | j                   d   S )NÚcovr»   r¢   s    r   r<   zsummary_model.<locals>.<lambda>7  s   €  1§=¡=°Ñ#7€ r   z
Cov. Type:r5   z (uncentered)c                 ó    — d| j                   z  S ©Nz%#8.3f)Úrsquaredr¢   s    r   r<   zsummary_model.<locals>.<lambda>:  s   € ¸À1Ç:Á:Ñ8M€ r   ú	R-squaredú:c                 ó    — d| j                   z  S rÂ   )Úrsquared_adjr¢   s    r   r<   zsummary_model.<locals>.<lambda>;  s   € ¸XÈÏÉÑ=V€ r   zAdj. R-squaredc                 ó    — d| j                   z  S rÂ   )Ú	prsquaredr¢   s    r   r<   zsummary_model.<locals>.<lambda><  s   € ¨(°Q·[±[Ñ*@€ r   zPseudo R-squared:c                 ó    — d| j                   z  S ©Nz%8.4f)Úaicr¢   s    r   r<   zsummary_model.<locals>.<lambda>=  ó   € ˜W q§u¡u™_€ r   zAIC:c                 ó    — d| j                   z  S rË   )Úbicr¢   s    r   r<   zsummary_model.<locals>.<lambda>>  rÍ   r   zBIC:c                 ó    — d| j                   z  S ©Nz%#8.5g)Úllfr¢   s    r   r<   zsummary_model.<locals>.<lambda>?  s   € ¨°1·5±5Ñ(8€ r   zLog-Likelihood:c                 ó    — d| j                   z  S rÑ   )Úllnullr¢   s    r   r<   zsummary_model.<locals>.<lambda>@  s   €  ¨A¯H©HÑ!4€ r   zLL-Null:c                 ó    — d| j                   z  S rÑ   )Ú
llr_pvaluer¢   s    r   r<   zsummary_model.<locals>.<lambda>A  s   €  X°·±Ñ%<€ r   zLLR p-value:c                 ó    — d| j                   z  S rÑ   )Údeviancer¢   s    r   r<   zsummary_model.<locals>.<lambda>B  s   €  (¨Q¯Z©ZÑ"7€ r   z	Deviance:c                 ó    — d| j                   z  S ©Nz%#6.3g)Úpearson_chi2r¢   s    r   r<   zsummary_model.<locals>.<lambda>C  s   €  h°·±Ñ&?€ r   zPearson chi2:c                 ó    — d| j                   z  S )Nz%#8.4g)Úfvaluer¢   s    r   r<   zsummary_model.<locals>.<lambda>D  s   €  X°·±Ñ%8€ r   zF-statistic:c                 ó    — d| j                   z  S rÚ   )Úf_pvaluer¢   s    r   r<   zsummary_model.<locals>.<lambda>E  s   € ¨H°q·z±zÑ,A€ r   zProb (F-statistic):c                 ó    — d| j                   z  S rÑ   )Úscaler¢   s    r   r<   zsummary_model.<locals>.<lambda>F  s   € ˜x¨!¯'©'Ñ1€ r   zScale:)Ú
k_constantÚitemsÚAttributeErrorÚKeyErrorÚNotImplementedError)rS   r    r_   Úrsquared_typert   ÚkeyÚfuncs          r   r[   r[      s•  € ò
.ð €DÙ9€Dˆ�NÙ?€DˆÑÙG€DÐ	ÑÙ"?€DÐ	ÑØ€Dˆ�MÙ 9€DÐ	ÑÙ5€DˆÑÙ9€DˆÑÙ=€DˆÑÙC€DÐ	ÑÙ(€Dˆ�OÙ3€Dˆ�MÙ>€DˆÑÙ7€DˆÑà!×,Ò,‘B°/€MÙ.M€Dˆ�}Ñ	$ sÑ	*Ñ+Ù3V€DÐ	˜MÑ	)¨CÑ	/Ñ0Ù @€DÐ	ÑÙ,€Dˆ�LÙ,€Dˆ�LÙ8€DÐ	ÑÙ4€DˆÑÙ<€DˆÑÙ7€DˆÑÙ?€DˆÑÙ8€DˆÑÙ"A€DÐ	ÑÙ1€Dˆ�NØ
€CØ—Z‘Z“\ò ‰	ˆˆTð	Ù˜G“}ˆC�ŠHðð €Jøô	 ¤Ô*=Ð>ò 	ñ ð	ús   ÃC+Ã+DÄDc           
      óÐ  — t        | t        «      r
| \  } }}}	}
}nA| j                  }| j                  }| j                  }	| j
                  }
| j                  |«      }t        j                  |||	|
g«      j                  }t        j                  ||g«      }t        j                  |«      }|r/dddddt        |dz  «      z   t        d|dz  z
  «      dz   g|_        n.ddd	d
dt        |dz  «      z   t        d|dz  z
  «      dz   g|_        |s(	 | j                  j                   j"                  |_        |S ||_        |S # t&        $ r | j                  j(                  |_        Y |S w xY w)ax  create a summary table of parameters from results instance

    Parameters
    ----------
    res : results instance
        some required information is directly taken from the result
        instance
    yname : {str, None}
        optional name for the endogenous variable, default is "y"
    xname : {list[str], None}
        optional names for the exogenous variables, default is "var_xx"
    alpha : float
        significance level for the confidence intervals
    use_t : bool
        indicator whether the p-values are based on the Student-t
        distribution (if True) or on the normal distribution (if False)
    skip_header : bool
        If false (default), then the header row is added. If true, then no
        header row is added.
    float_format : str
        float formatting options (e.g. ".3g")

    Returns
    -------
    params_table : SimpleTable instance
    zCoef.zStd.Err.ÚtzP>|t|ú[re   r   ú]ÚzzP>|z|)rN   ÚtupleÚparamsÚbseÚtvaluesÚpvaluesÚconf_intr7   r1   ÚTr8   r/   r0   r   ÚcolumnsrO   rG   Úparam_namesr'   rä   Ú
exog_names)rS   r]   r\   rV   rW   Úskip_headerr)   rð   rñ   rò   ró   rô   rG   s                r   rZ   rZ   R  sd  € ô: �'œ5Ô!Ø;BÑ8ˆ�˜˜g w±à—‘ˆØ�k‰kˆØ—/‘/ˆØ—/‘/ˆØ×#Ñ# EÓ*ˆä�8‰8�V˜S '¨7Ð3Ó4×6Ñ6€DÜ�9‰9�d˜HÐ%Ó&€DÜ�<‰<˜Ó€DáØ ¨S°'Øœc %¨!¡)›nÑ,¬c°!°e¸a±i±-Ó.@À3Ñ.FðHˆ�ð   ¨S°'Øœc %¨!¡)›nÑ,¬c°!°e¸a±i±-Ó.@À3Ñ.FðHˆŒñ ð	2Ø Ÿ™×+Ñ+×7Ñ7ˆDŒJð €Kð ˆŒ
à€Køô ò 	2Ø Ÿ™×1Ñ1ˆD�Jð €Kð	2ús   Ä%D= Ä=$E%Å$E%c                 óÄ  ‡— t        | «      }|j                  dd D ]  }||   j                  ˆfd„«      ||<   Œ d|j                  dd…df   z   dz   |j                  dd…df<   |rù|j                  dd…df   dk  }|j                  ||j                  d	   f   d
z   |j                  ||j                  d	   f<   |j                  dd…df   dk  }|j                  ||j                  d	   f   d
z   |j                  ||j                  d	   f<   |j                  dd…df   dk  }|j                  ||j                  d	   f   d
z   |j                  ||j                  d	   f<   |j                  dd…dd…f   } |j
                  di t        ¤Ž}|r™t        | dt        j                  «      }t        | dt        j                  «      }t        j                  ||dœ«      }	|	j                  «       j                  «       r-|	j                  ˆfd„«      }	t        j                  ||	gd	¬«      }t        j                  |«      }t!        | j"                  j$                  «      g|_        |S )z<Stack coefficients and standard errors in single column
    Nre   c                 ó   •— ‰| z  S r   r‡   ©r:   r)   s    €r   r<   z_col_params.<locals>.<lambda>—  s   ø€ ¨L¸1Ñ,<€ r   ú(r   ú)é   gš™™™™™¹?r   Ú*r„   g{®Gáz„?rÃ   rÇ   ©)rÄ   r5   )zR-squared Adj.r5   c                 ó   •— ‰| z  S r   r‡   rü   s    €r   r<   z_col_params.<locals>.<lambda>®  s   ø€  L°1Ñ$4€ r   )Úaxisr‡   )rZ   rö   ÚapplyÚilocÚlocÚstackr   Úgetattrr7   Únanr/   ÚSeriesÚnotnullÚanyÚconcatr0   r   rO   r©   )
Úresultr)   ÚstarsÚ
include_r2ÚresÚcolÚidxrÃ   rÇ   Úr2s
    `        r   Ú_col_paramsr  �  s  ø€ ô
 ˜Ó
 €Cà�{‰{˜2˜Aˆò >ˆØ�s‘8—>‘>Ó"<Ó=ˆˆCŠð>ð ˜3Ÿ8™8¢A q D™>Ñ)¨CÑ/€C‡H�HŠQ�ˆT�NáØ�h‰h’q˜!�t‰n˜rÑ!ˆØ'*§w¡w¨s°C·K±KÀ±NÐ/BÑ'CÀcÑ'Iˆ�‰��S—[‘[ ‘^Ð#Ñ$Ø�h‰h’q˜!�t‰n˜sÑ"ˆØ'*§w¡w¨s°C·K±KÀ±NÐ/BÑ'CÀcÑ'Iˆ�‰��S—[‘[ ‘^Ð#Ñ$Ø�h‰h’q˜!�t‰n˜sÑ"ˆØ'*§w¡w¨s°C·K±KÀ±NÐ/BÑ'CÀcÑ'Iˆ�‰��S—[‘[ ‘^Ð#Ñ$à
�(‰(’1�b�q�b�5‰/€CØ
ˆ#�)‰)Ñ
#”lÑ
#€Cñ Ü˜6 :¬r¯v©vÓ6ˆÜ˜v ~´r·v±vÓ>ˆÜ�Y‰Y¨8Ø0<ñ>ó ?ˆð �:‰:‹<×ÑÔØ—‘Ó4Ó5ˆBÜ—)‘)˜S "˜I¨AÔ.ˆCä
�,‰,�sÓ
€CÜ�v—|‘|×/Ñ/Ó0Ð1€C„KØ€Jr   c                 óP  — |€i }g }g }|D ]B  }t        ||   t        «      rŒ	 |j                   ||   | «      «       |j                  |«       ŒD t	        j
                  t        | j                  j                  «      |i|¬«      }|S # t        $ r |j                  d«       Y Œgw xY w)z!Stack model info in a column
    r5   )r'   )	rN   Údictr+   rä   r/   r0   r   rO   r©   )r  Ú	info_dictrt   r'   r�   s        r   Ú	_col_infor  ¶  s©   € ð ÐØˆ	Ø
€CØ€EØò ˆÜ�i ‘l¤DÔ)àð	Ø�J‰J�|�y ‘| FÓ+Ô,ð 	�‰�Q�ðô �,‰,œ˜FŸL™L×4Ñ4Ó5°sÐ;À5Ô
I€CØ€Jøô	 ò 	Ø�J‰J�rŽNð	ús   £BÂB%Â$B%c                 óÎ   — t        t        | «      «      t        | «      k(  r| S ddlm}  |t        «      }g }| D ])  }||xx   dz  cc<   |j                  |dz   ||   z   «       Œ+ |S )Nr   )ÚdefaultdictÚIrd   )ri   ÚsetÚcollectionsr  r   r+   )Úlist_of_namesr  Úname_counterr(   Ú_names        r   Ú_make_uniquer"  Ë  sq   € Ü
Œ3ˆ}ÓÓ¤# mÓ"4Ò4ØÐå'ÙœsÓ#€LØ€FØò 9ˆØ�UÓ˜sÑ"ÓØ�‰�e˜c‘k L°Ñ$7Ñ7Õ8ð9ð €Mr   c                 ó6	  — t        | t        «      s| g} | D �cg c]  }t        ||||¬«      ‘Œ }	}|rt        |«      }
n&t        |	D �cg c]  }|j                  d   ‘Œ c}«      }
t        t        |	«      «      D ]  }|
|   g|	|   _        Œ d„ }t        |	d   j                  «      }|	dd D ])  }|j                  D ]  }||vsŒ|j                  |«       Œ Œ+ dD ]3  }||v sŒ|j                  |«       |j                  t        |«      |«       Œ5 t        ||	«      }|j                  |«      }|�r|j                  j                  d«      j                  «       }t        j                   |«      j#                  «       }|j$                  |dk(     j                  j                  «       }|D �cg c]	  }||v sŒ|‘Œ }}|D �cg c]	  }||vsŒ|‘Œ }}||z   }|j                  j                  d«      D �cg c]  }||vr|‘Œ
 }}||z  }|r|D ]  }|j                  |«       Œ |j                  |d¬«      }g }|j                  j                  d«      }t        d|j&                  d   d«      D ]b  }|j                  ||   «       |dz   |j&                  d   k  r ||   ||dz      k(  r|j                  d	«       ŒL|j                  ||dz      «       Œd ||_        |rH| D �cg c]<  }t)        ||j+                  |j,                  j.                  j0                  |«      «      ‘Œ> }	}n$| D �cg c]  }t)        |t3        |d
d«      «      ‘Œ }	}t5        |	t        |	D �cg c]  }|j                  d   ‘Œ c}«      «      D ]  \  }}|g|_        Œ t        ||	«      }t        j6                  t9        j:                  ||g«      «      }|j                  |_        t        j<                  |j                  j                  «       |j                  j                  «       z   «      |_        |}|j?                  d	«      }tA        «       }d|_!        |jE                  |dd¬«       |jG                  d«       |r|jG                  d«       |S c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w )a@  
    Summarize multiple results instances side-by-side (coefs and SEs)

    Parameters
    ----------
    results : statsmodels results instance or list of result instances
    float_format : str, optional
        float format for coefficients and standard errors
        Default : '%.4f'
    model_names : list[str], optional
        Must have same length as the number of results. If the names are not
        unique, a roman number will be appended to all model names
    stars : bool
        print significance stars
    info_dict : dict, default None
        dict of functions to be applied to results instances to retrieve
        model info. To use specific information for different models, add a
        (nested) info_dict with model name as the key.
        Example: `info_dict = {"N":lambda x:(x.nobs), "R2": ..., "OLS":{
        "R2":...}}` would only show `R2` for OLS regression models, but
        additionally `N` for all other results.
        Default : None (use the info_dict specified in
        result.default_model_infos, if this property exists)
    regressor_order : list[str], optional
        list of names of the regressors in the desired order. All regressors
        not specified will be appended to the end of the list.
    drop_omitted : bool, optional
        Includes regressors that are not specified in regressor_order. If
        False, regressors not specified will be appended to end of the list.
        If True, only regressors in regressor_order will be included.
    include_r2 : bool, optional
        Includes R2 and adjusted R2 in the summary table.
    )r  r)   r  r   c                 ó,   — | j                  |ddd¬«      S )NÚouterT)ÚhowÚright_indexÚ
left_index)Úmerger9   s     r   Úmergzsummary_col.<locals>.merg  s   € Ø�w‰w�q˜g°4ÀDˆwÓIÐIr   r   Nr  re   )Úlevelr5   Údefault_model_infosTrY   )r(   r*   zStandard errors in parentheses.z* p<.1, ** p<.05, ***p<.01)$rN   Úlistr  r"  rö   r‹   ri   r'   r+   ÚremoveÚinsertr   ÚreindexÚget_level_valuesÚtolistr/   r
  Úvalue_countsr  rA   r  ÚgetrO   rP   rQ   r  Úzipr0   r7   rB   ÚIndexÚfillnar   r   r-   rL   )rS   r)   Úmodel_namesr  r  Úregressor_orderÚdrop_omittedr  r:   ÚcolsÚcolnamesr�   r*  r'   r  rè   ÚspecialÚsummÚvarnamesÚvcÚorderedÚ	unorderedÚ	new_orderÚotherÚuor  r,   Únamer_   ÚdatÚsmrys                                  r   Úsummary_colrI  Ø  sx  € ôJ �gœtÔ$Ø�)ˆð 9@öAØ34ô ˜ °\Ø#-ö/ð A€Dð Añ Ü Ó,‰ä°tÖ <°! §¡¨1£Ò <Ó=ˆÜ”3�t“9Óò (ˆØ# A™;˜-ˆˆQ‰�ð(òJô ��a‘—‘Ó€EØ�A�Bˆxò "ˆØ—9‘9ò 	"ˆCØ˜%ÒØ—‘˜SÕ!ñ	"ð"ð ?ò .ˆØ�eÒØ�L‰L˜Ô!Ø�L‰Lœ˜U› WÕ-ð.ô
 �$˜Ó€DØ�<‰<˜Ó€DâØ—:‘:×.Ñ.¨qÓ1×8Ñ8Ó:ˆÜ�Y‰Y�xÓ ×-Ñ-Ó/ˆØ—6‘6˜" ™'‘?×(Ñ(×/Ñ/Ó1ˆØ-Ö?˜°°h²’1Ð?ˆÐ?Ø (ÖE˜1¨A°_Ò,D’QÐEˆ	ÐEØ˜iÑ'ˆ	Ø ŸJ™J×7Ñ7¸Ó:ö (�qØ˜YÑ&ò ð (ˆð (à�UÑˆ	ÙØò %�Ø× Ñ  Õ$ð%à�|‰|˜I¨Qˆ|Ó/ˆà
€CØ�J‰J×'Ñ'¨Ó*€EÜ�1�e—k‘k !‘n aÓ(ò %ˆØ�
‰
�5˜‘8ÔØ�‰E�U—[‘[ ‘^Ò#¨¨q©°U¸1¸q¹5±\Ò)AØ�J‰J�r�Nà�J‰J�u˜Q ™U‘|Õ$ð%ð €D„Jñ à@GöIØ;<ô ˜!˜YŸ]™]¨1¯7©7×+<Ñ+<×+EÑ+EØ+4ó6õ 7ð Iˆñ Ið öÈ!”	˜!œW QÐ(=¸tÓDÕEð ˆð ô ˜œlÀDÖ+I¸b¨B¯J©J°q«MÒ+IÓJÓKò ‰ˆˆDØ�Vˆ�
ðô �$˜Ó€DÜ
�,‰,”r—y‘y $¨ Ó.Ó
/€CØ—,‘,€C„KÜ—‘˜Ÿ™×*Ñ*Ó,¨t¯z©z×/@Ñ/@Ó/BÑBÓC€C„IØ€Dà�;‰;�r‹?€Dä‹9€DØ€DÔØ‡K�K�˜T¨€KÔ-Ø‡M�MÐ3Ô4ÙØ�‰Ð2Ô3à€Kùò_Aùò !=ùò2 @ùÚEùò(ùò(Iùòùò ,Js<   ˜Q3ÁQ8Æ)	Q=Æ3Q=Æ=	RÇRÇ/RËARÌ!RÍRc                 óŒ   — 	 || z  }|j                  «       S # t         t        f$ r t        | «      }Y |j                  «       S w xY wr   )Ú
ValueErrorÚ	TypeErrorr   Ústrip)Úelementr)   rt   s      r   r?   r?   R  sJ   € ðØ˜WÑ$ˆð �9‰9‹;Ðøô œ	Ð"ò Ü�'‹l‰Ø�9‰9‹;Ððús   ‚ —AÁAc
                 ó®  ‡— | j                  «       }
	 |
j                  ˆfd„«      }
|r1|
j                  j                  «       D �cg c]  }t        |«      ‘Œ }}nd }|r@|
j                  j                  «       D �cg c]  }t        |«      t        |	«      dz  z   ‘Œ }}nL|
j                  d d …df   D �cg c]  }t        |«      t        |	«      dz  z   ‘Œ c}|
j                  d d …df<   d }t        t        j                  |
«      ||t        t        ¬«      }||j                  d   d<   ||j                  d   d<   ||j                  d	   d<   ||j                  d	   d
<   ||j                  d	   d<   ||j                  d	   d<   dt        |dz   «      z  |j                  d	   d<   |S # t        $ r |
j                  ˆfd„«      }
Y �Œ�w xY wc c}w c c}w c c}w )Nc                 ó   •— t        | ‰«      S r   ©r?   rü   s    €r   r<   z$_df_to_simpletable.<locals>.<lambda>_  s   ø€ ¤
¨1¨lÓ ;€ r   c                 ó   •— t        | ‰«      S r   rQ  rü   s    €r   r<   z$_df_to_simpletable.<locals>.<lambda>a  s   ø€ ¤Z°°<Ó%@€ r   rd   r   )ÚheadersÚstubsÚltx_fmtÚtxt_fmtÚlatexÚdata_alignsÚheader_alignrs   Útable_dec_aboveÚtable_dec_belowÚheader_dec_belowr   Úcolsep)ÚcopyÚmaprä   Úapplymaprö   r2  r   r'   rj   r  r   r7   r1   r   r	   Úoutput_formats)r,   r*   r)   r(   r'   rZ  r[  r\  rm   rn   rG  r:   rS  rT  rw   s     `            r   Ú_df_to_simpletablerb  Z  sÈ  ø€ ð �'‰'‹)€CðBØ�g‰gÓ;Ó<ˆñ Ø#&§;¡;×#5Ñ#5Ó#7Ö8˜a”3�q•6Ð8ˆÑ8àˆÙØ8;¿	¹	×8HÑ8HÓ8JÖK°1”�Q“œ#˜i›.¨3Ñ.Ó.ÐKˆÑKð $'§8¡8ªA¨q¨D¡>ö3Øô ˜a›&¤3 y£>°CÑ#7Ó7ò 3ˆ�‰’�A�‰àˆÜ	”R—X‘X˜c“]¨G¸5Ü&´ô
9€Bà05€B×Ñ�gÑ˜}Ñ-Ø16€B×Ñ�gÑ˜~Ñ.Ø.3€B×Ñ�eÑ˜]Ñ+Ø2A€B×Ñ�eÑÐ.Ñ/Ø2A€B×Ñ�eÑÐ.Ñ/Ø3C€B×Ñ�eÑÐ/Ñ0Ø),¬s°7¸Q±;Ó/?Ñ)?€B×Ñ�eÑ˜XÑ&Ø€Iøô+ ò BØ�l‰lÓ@ÓA‹ðBüò 9ùò Lùò3s#   “F$ ÁGÁ:!GÂ3!GÆ$GÇGc                 ó
  — g }|r|d   d   nd}|€dgt        | «      z  }|€dgt        | «      z  }t        | «      D ]D  \  }}||   d   }||   d   }	||   d   }
|j                  t        ||
||	|||   ||   ¬«      «       ŒF |S )Nr   r)   r�   r'   r(   r*   )r*   r)   r(   r'   rm   rn   )ri   Ú	enumerater+   rb  )r   r   rm   rn   rq   r)   r�   Úvr'   r(   r*   s              r   rg   rg   x  sÂ   € Ø€MÙ2:�8˜A‘;˜~Ò.À€LØ€Ø�#œ˜F›Ñ#ˆØÐØ�Cœ#˜f›+Ñ%ˆ	Ü˜&Ó!ò I‰ˆˆ1Ø˜‘˜GÑ$ˆØ˜!‘˜XÑ&ˆØ˜‘˜GÑ$ˆØ×ÑÔ/°¸Ø=IØ7=ÀUØ8?À¹
Ø:CÀA¹,ô	Hõ 	Ið	Ið Ðr   )NNr„   TFr�   )r�   TFr   )r�   r‡   FNr‡   FT)r�   )	r‚   r�   TTú-Nrf  r   r   rƒ   )Ústatsmodels.compat.pandasr   Ústatsmodels.compat.pythonr   r›   Ú	functoolsr   r|   rk   Únumpyr7   Úpandasr/   r2   r   Útableformattingr   r	   r   rf   rR   r[   rZ   r  r  r"  rI  r?   rb  rg   r‡   r   r   ú<module>rm     s©   ðÝ 2Ý *ã Ý Û 	Û ã Û å ß /÷iñ iòX+ð4 0Ø2Ø?Ø/Ø,Ø1Ø1ñ€ò/ðd FJØ39ó9óz$óNò*
ð EJØAFØówótð CGØHLØBCóô<r   