
    M/Ph,                        d dl Z d dlm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mZmZmZmZmZ d dlZ	 d dlmZ dZ ej        d           n# e$ r dZY nw xY w ej        g dg d	g d
g dg dg dg dg dg dg dg dg dg dgg d          Zd Zd Zd Zd Zej                             ed          d             Z!ej        j"        d             Z#d Z$d  Z%ej        j"        d!             Z&dS )"    N)	PD_LT_1_4)Factor)assert_equalassert_array_almost_equalassert_assert_raisesassert_array_equalassert_array_lessassert_allcloseFAggT)Minas Graes%C @g(\ @HzG?   r   )r   r   gd;O @oʡ?   r   )r   Q @r   +?   r   )r   g- @X9v @r      r   )r   gV- @g      @gS㥛?   r   )r   gQ@g^I+@gL7A`?   r   )Matto Grossog\(\ @g;On @r      r   )r   gS㥛 @gNbX9 @r      r   )r   r   r   }?5^I?	   r   )r   gS @gx @r   
   r   )
Santa Cruzr   gbX9 @禛 r?   r   )r    g @g+ @g+?   r   )r    gE @g+ @r!      r   )LocBasalOccMaxidalt)columnsc                      t          d dt          j        d          d d          } t          | j        g d           d S )Nr   r"   F)correndog_namessmc)var00var01var02var03var04var05var06var07var08var09var10)r   npeyer	   r.   mods    j/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/statsmodels/multivariate/tests/test_factor.pytest_auto_col_namer@   *   s`    
qrvbzzt  CsE E EF F F F F    c            
         t          d dt          j        t          j        d d ddf         d          d          } |                     d	          }t          j        d
dgddgddgddgg          }t          |j        |d           t          j        d d ddf         j	        | _
        t          | j
        g d           t          t          t          | dt          j        d d d df         j	                   d S )Nr   r   r   )rowvarF)r-   r/   绽|=tolW~?L?|Uy?9;?Hت?vS(Ci7(?OCW+r   decimal)r&   r'   r(   r)   r.   )r   r;   corrcoefXilocfitarrayr   loadingsr+   r.   r	   r   
ValueErrorsetattr)r>   resultsas      r?   test_direct_corr_matrixr\   3   s   
qr{16!!!QrT'?1EEE  Cgg%g  G
>#45!#45!#56!#568 	9 	9A g.1====fQQQ"Wo-COs(E(E(EFFF *gsM&BQB-') ) ) ) )rA   c                      t          t          j        d d ddf         dd          } t          t          | j                   d S )Nr   rC   r   abmethod)r   rS   rT   r   rX   rU   r=   s    r?   test_unknown_fa_method_errorra   F   s@    
1R4!D
1
1
1C*cg&&&&&rA   c                     t          t          j        d d ddf         dd          } |                     d          }t	          j        dd	gd
dgddgddgg          }t          |j        |d           t          t          j        d d ddf         dd          } |                                 }t	          j        ddgddgddgddgg          }t          |j        |d           |                    d           t	          j        ddgddgd d!gd"d#gg          }t          |j        |d           |                    d$           t	          j        g d%g d&g          }t          |j        |j	        d           |                    d'           |                    d(           |                    d)           |                    d*           t	          j        g d+g d,g          }t          |j        |j	        d           |                    d           d-}|
                                                                }d.                    d/ |                                D                       d.z   }t          ||           d S )0Nr   rC   r   Fr/   rE   rF   rH   rI   rJ   rK   rL   rM   rN   rO   r   rP   Tgq6?g^z?gIC?g/8A?gᖏ?guYɿg%q^?g_Sݿvarimaxg?6?g_g1B,?g85ÿg Aχ?g;gr^?gT	quartimax)gwFͨ?g
p?g
?gw5/g?)g#* ?gA?g[ "ҿgcN߿equamaxpromaxbiquartiminoblimin)gmt?g?FS?g&*?gh2[I8!)gNrQgͰ?g n-?g}AEaٿg@8aJ     Factor analysis results
=============================
      Eigenvalues
-----------------------------
 Basal   Occ    Max      id
-----------------------------
 2.9609 0.3209 0.0000 -0.0000
-----------------------------

-----------------------------
      Communality
-----------------------------
  Basal   Occ    Max     id
-----------------------------
  0.9926 0.9727 0.9654 0.3511
-----------------------------

-----------------------------
   Pre-rotated loadings
-----------------------------------
            factor 0       factor 1
-----------------------------------
Basal         0.9754         0.2028
Occ           0.9711         0.1721
Max           0.9619        -0.2004
id            0.3757        -0.4582
-----------------------------

-----------------------------
   varimax rotated loadings
-----------------------------------
            factor 0       factor 1
-----------------------------------
Basal         0.9883        -0.1259
Occ           0.9742        -0.1535
Max           0.8442        -0.5027
id            0.2060        -0.5556
=============================

c              3   >   K   | ]}|                                 V  d S )N)rstrip).0lines     r?   	<genexpr>z3test_example_compare_to_R_output.<locals>.<genexpr>   s*      EEt{{}}EEEEEErA   )r   rS   rT   rU   r;   rV   r   rW   rotateTsummaryas_textjoin
splitlinesr   )r>   rZ   r[   desiredactuals        r?    test_example_compare_to_R_outputrx   L   s   : 1R4!
/
/
/Cgg%g  G
>#45!#45!#56!#568 	9 	9A g.1==== 1R4!
.
.
.CggiiG
:z*z*j){+- 	. 	.A g.1==== NN9
:{+{+y){+- 	. 	.A g.1====NN;
BBBHHHJ 	K 	KAg.Q????NN9NN8NN=!!!NN9
 # # #DDDF 	G 	GA g.Q???? NN9& P __&&((FYYEE1B1B1D1DEEEEELF!!!!!rA   zmatplotlib not available)reasonc                 .   t          t          j        d d dd f         d          }|                                }|                    d           |                                }|                                }t          dt          |                     d S )Nr   r   ri   )	r   rS   rT   rU   rp   
plot_screeplot_loadingsr   len)close_figuresr>   rZ   figfig_loadingss        r?   
test_plotsr      s    
122
"
"CggiiGNN9




C((**LC%%&&&&&rA   c                     t          t          j        d d ddf         dd          } |                                 }|                    d          }t          t          |t          j                             |                    dd	d
          }	 ddl	m
} n# t          $ r Y d S w xY wt          rTt          j                    5  t          j        d           |                                 d d d            n# 1 swxY w Y   n|j                                         	 ddlm} n# t          $ r	 ddlm} Y nw xY w|                    d          }t          t          ||j        j                             t          t          |j        t          j                             |                    dd	d           |                    dd	d           |                    dd	ddd           d S )Nr   rC   r   Trc   raw)stylestringsr   g333333?)r   decimals	thresholdr   )Templatealways)formatsdisplayg?	GAINSBORO)r   r   	color_maxg?F)r   r   r   highlight_maxsort_)r   rS   rT   rU   get_loadings_framer   
isinstancepd	DataFramejinja2r   ImportErrorr   warningscatch_warningssimplefilterto_latexr   	pandas.ior   pandasStylerdata)r>   resdfldsr   
pd_formatsldfs          r?   test_getframe_smoker      s\    1R4!
.
.
.C
''))C			e		,	,BJr2<(()))

 
 y1
 
L
LC#######   
  $&& 	 	!(+++LLNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 		13333333 1 1 1000000001 
 
 y
 
1
1CJsJ,344555Jsx..///Q#FFFQ+NNNQ$V[chiiiiis6   B 
B('B()C::C>C> D' 'D:9D:c                  N   t           j        d d ddf                                         } | j        \  }}t          j        | j        d<   t          | d          }t          |j        |dz
             t          |j	        |           t          |j
        j        |dz
  |f           d S )Nr   rC   )r   r   r   )rS   rT   copyshaper;   nanr   r   nobsk_endogendog)xmr   r   r>   s       r?   test_factor_missingr      s    	
1R4				BHMD'6BGCL
Q--C4!8$$$g&&&4!8W"566666rA   c                 ^    | |                      d          z
  |                     d          z  S )Nr   )meanstd)xs    r?   _zscorer     s%    q		MQUU1XX%%rA   c                     t           j                            t                    } t           j                            |           }t           j                            |dd          }t          j        |          }t           j                            |dd          }t          j        |          }t          |d          }|	                    d          }|
                    d           |                    d	          }t          |dd
gz  |ddg         j        dd           |                                }t          |dd
gz  |ddg         j        dd           |                    d	          }	|                    d	          }
t          |          }t          |	          }t          |
          }t          d||z                      d                     t          d||z                      d                     |
                    d           t          |                                d         dd           |                    d	          }t          |dd
gz  |ddg         j        dd           |                                }t          |dd
gz  |ddg         j        dd           |                    d	          }	|                    d	          }
t          |          }t          |	          }t          |
          }t          d||z                      d                     t          d||z                      d                     |                    d|j        j                   }t          ||	d!           d S )"NrZ   zfactor_data.csvzfactors_stata.csvr   r   )maxiterrd   regr_   rC   f1f2g-C6?gMbP?)atolrtolf1bf2bolsglsg\(\?r   g+?ri   )r   r   gxjп)r   f1of2of1obf2obg
ףp=
?)r`   r   gvIh%<=)ospathabspath__file__dirnamert   r   read_csvr   rU   rp   factor_scoringr   valuesr   r
   r   _corr_factorsmodelr   )r   dir_pathcsv_pathyf_sr>   r   f_regf_bartf_olsf_glsf_reg_zf_ols_zf_gls_zf_ols2s                  r?   test_factor_scoringr     sg   7??8$$Dwt$$Hw||Hi1BCCH
HAw||Hi1DEEH
+h

C
A,,C
''!'

CJJye,,EEQGOS$%6%=D* * * *!!FFaW$c5%.&9&@D* * * * e,,Ee,,EennGennGennGdWw.44Q77888eg/55a88999 JJyC%%''-0AMMMMe,,EEQGOS%%8%?D* * * *!!FFaW$c66*:&;&BD* * * * e,,Ee,,EennGennGennGdWw.44Q77888eg/55a88999 uCIODDFFE......rA   )'r   statsmodels.compat.pandasr   r   numpyr;   r   r   statsmodels.multivariate.factorr   numpy.testingr   r   r   r   r	   r
   r   pytestmatplotlib.pyplotpyplotpltmissing_matplotlibswitch_backendr   r   rS   r@   r\   ra   rx   markskipifr   smoker   r   r   r    rA   r?   <module>r      s    / / / / / / 				         2 2 2 2 2 2? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ######Cu    BL<<<<<<<<<<<<<<<<<<=========>>><<<<<<<<<> EDDF F F F F F) ) )&' ' 't" t" t"n &/IJJ' ' KJ' 'j 'j 'jT7 7 7& & &
 1/ 1/ 1/ 1/ 1/s   A AA