In [19]:
import numpy as np
import statsmodels.api as sm
import statsmodels.formula.api as smf
import pandas

In [20]:
%load_ext rpy2.ipython
%R library(lme4)
%R library(RCurl)


The rpy2.ipython extension is already loaded. To reload it, use:
  %reload_ext rpy2.ipython
Out[20]:
<StrVector - Python:0x7f00abf18680 / R:0xc4afcb8>
[str, str, str, ..., str, str, str]

In [21]:
%%R
mm0 <- getURL('https://raw.githubusercontent.com/lme4/lme4-convergence/master/mm0.csv')
mm0data <- read.csv(textConnection(mm0))
modeldata <- read.table(textConnection(getURL('https://raw.githubusercontent.com/lme4/lme4-convergence/master/data.tab')), header=T)

In [22]:
%R print(summary(modeldata))


      mean              subj            item                    roi        
 Min.   :-77.086   Min.   : 1.00   Min.   : 1.00   Left-Anterior  :139176  
 1st Qu.: -1.973   1st Qu.:12.00   1st Qu.:16.00   Left-Posterior :139176  
 Median :  1.052   Median :21.00   Median :30.00   Midline        :173970  
 Mean   :  1.101   Mean   :20.55   Mean   :30.51   Right-Anterior :139176  
 3rd Qu.:  4.129   3rd Qu.:30.00   3rd Qu.:46.00   Right-Posterior:139176  
 Max.   : 76.454   Max.   :39.00   Max.   :60.00                           
   win             sdiff               dist          signdist       
 N400:365337   Min.   :-2100.00   Min.   :2.000   Min.   :-3.00000  
 P600:365337   1st Qu.:-1990.00   1st Qu.:4.000   1st Qu.:-1.00000  
               Median : -990.00   Median :4.000   Median : 0.00000  
               Mean   :  -46.56   Mean   :4.013   Mean   : 0.01144  
               3rd Qu.: 1900.00   3rd Qu.:5.000   3rd Qu.: 2.00000  
               Max.   : 2010.00   Max.   :6.000   Max.   : 3.00000  
   ambiguity     
 ambig  :364938  
 unambig:365736  
                 
                 
                 
                 

In [23]:
%%R 
modeldata <- subset(modeldata, roi == 'Left-Posterior')
modeldata.n400 <- subset(modeldata,win=="N400")

In [24]:
%%timeit
%%R
fit <- lmer(mean ~ ambiguity * sdiff + (1+sdiff|item) + (1+sdiff|subj), data=modeldata.n400, REML=T, method='bfgs')
print(summary(fit))


Linear mixed model fit by REML ['lmerMod']
Formula: mean ~ ambiguity * sdiff + (1 + sdiff | item) + (1 + sdiff |      subj) 
   Data: modeldata.n400 

REML criterion at convergence: 395557.6 

Random effects:
 Groups   Name        Variance  Std.Dev.  Corr 
 item     (Intercept) 1.978e+01 4.4477760      
          sdiff       1.072e-07 0.0003274 -0.49
 subj     (Intercept) 5.813e+01 7.6241258      
          sdiff       1.676e-07 0.0004094 -0.92
 Residual             1.697e+01 4.1199682      
Number of obs: 69588, groups: item, 60; subj, 37

Fixed effects:
                         Estimate Std. Error t value
(Intercept)             1.141e+00  1.379e+00   0.827
ambiguityunambig        5.148e-01  3.126e-02  16.469
sdiff                  -3.876e-04  8.249e-05  -4.699
ambiguityunambig:sdiff  3.816e-04  2.468e-05  15.463

Correlation of Fixed Effects:
            (Intr) ambgty sdiff 
ambigtynmbg -0.011              
sdiff       -0.788 -0.009       
ambgtynmbg: -0.001  0.038 -0.239
Linear mixed model fit by REML ['lmerMod']
Formula: mean ~ ambiguity * sdiff + (1 + sdiff | item) + (1 + sdiff |      subj) 
   Data: modeldata.n400 

REML criterion at convergence: 395557.6 

Random effects:
 Groups   Name        Variance  Std.Dev.  Corr 
 item     (Intercept) 1.978e+01 4.4477760      
          sdiff       1.072e-07 0.0003274 -0.49
 subj     (Intercept) 5.813e+01 7.6241258      
          sdiff       1.676e-07 0.0004094 -0.92
 Residual             1.697e+01 4.1199682      
Number of obs: 69588, groups: item, 60; subj, 37

Fixed effects:
                         Estimate Std. Error t value
(Intercept)             1.141e+00  1.379e+00   0.827
ambiguityunambig        5.148e-01  3.126e-02  16.469
sdiff                  -3.876e-04  8.249e-05  -4.699
ambiguityunambig:sdiff  3.816e-04  2.468e-05  15.463

Correlation of Fixed Effects:
            (Intr) ambgty sdiff 
ambigtynmbg -0.011              
sdiff       -0.788 -0.009       
ambgtynmbg: -0.001  0.038 -0.239
Linear mixed model fit by REML ['lmerMod']
Formula: mean ~ ambiguity * sdiff + (1 + sdiff | item) + (1 + sdiff |      subj) 
   Data: modeldata.n400 

REML criterion at convergence: 395557.6 

Random effects:
 Groups   Name        Variance  Std.Dev.  Corr 
 item     (Intercept) 1.978e+01 4.4477760      
          sdiff       1.072e-07 0.0003274 -0.49
 subj     (Intercept) 5.813e+01 7.6241258      
          sdiff       1.676e-07 0.0004094 -0.92
 Residual             1.697e+01 4.1199682      
Number of obs: 69588, groups: item, 60; subj, 37

Fixed effects:
                         Estimate Std. Error t value
(Intercept)             1.141e+00  1.379e+00   0.827
ambiguityunambig        5.148e-01  3.126e-02  16.469
sdiff                  -3.876e-04  8.249e-05  -4.699
ambiguityunambig:sdiff  3.816e-04  2.468e-05  15.463

Correlation of Fixed Effects:
            (Intr) ambgty sdiff 
ambigtynmbg -0.011              
sdiff       -0.788 -0.009       
ambgtynmbg: -0.001  0.038 -0.239
Linear mixed model fit by REML ['lmerMod']
Formula: mean ~ ambiguity * sdiff + (1 + sdiff | item) + (1 + sdiff |      subj) 
   Data: modeldata.n400 

REML criterion at convergence: 395557.6 

Random effects:
 Groups   Name        Variance  Std.Dev.  Corr 
 item     (Intercept) 1.978e+01 4.4477760      
          sdiff       1.072e-07 0.0003274 -0.49
 subj     (Intercept) 5.813e+01 7.6241258      
          sdiff       1.676e-07 0.0004094 -0.92
 Residual             1.697e+01 4.1199682      
Number of obs: 69588, groups: item, 60; subj, 37

Fixed effects:
                         Estimate Std. Error t value
(Intercept)             1.141e+00  1.379e+00   0.827
ambiguityunambig        5.148e-01  3.126e-02  16.469
sdiff                  -3.876e-04  8.249e-05  -4.699
ambiguityunambig:sdiff  3.816e-04  2.468e-05  15.463

Correlation of Fixed Effects:
            (Intr) ambgty sdiff 
ambigtynmbg -0.011              
sdiff       -0.788 -0.009       
ambgtynmbg: -0.001  0.038 -0.239
1 loops, best of 3: 31.1 s per loop

In [26]:
modeldata = pandas.read_csv('https://raw.githubusercontent.com/lme4/lme4-convergence/master/data.tab', delimiter='\t')
modeldata = modeldata[modeldata['win']=='N400']

In [29]:
vcf = {"item" : "1 + C(sdiff):item", "subj" : "1 + C(sdiff):subj"}
%timeit model = sm.MixedLM.from_formula('mean ~ ambiguity * sdiff', groups="item", vc_formula=vcf,  data=modeldata)


1 loops, best of 3: 15.5 s per loop

In [35]:
%%timeit
#model = sm.MixedLM.from_formula('mean ~ ambiguity * sdiff', groups="item", vc_formula=vcf,  data=modeldata)
result = model.fit()
print (result.summary())
result.result


/usr/local/lib/python2.7/dist-packages/statsmodels-0.7.0-py2.7-linux-x86_64.egg/statsmodels/regression/mixed_linear_model.py:1906: ConvergenceWarning: The MLE may be on the boundary of the parameter space.
  warnings.warn(msg, ConvergenceWarning)
/usr/local/lib/python2.7/dist-packages/statsmodels-0.7.0-py2.7-linux-x86_64.egg/statsmodels/regression/mixed_linear_model.py:1906: ConvergenceWarning: The MLE may be on the boundary of the parameter space.
  warnings.warn(msg, ConvergenceWarning)
                Mixed Linear Model Regression Results
=====================================================================
Model:                MixedLM    Dependent Variable:    mean         
No. Observations:     365337     Method:                REML         
No. Groups:           60         Scale:                 21.3193      
Min. group size:      5964       Likelihood:            -1080886.6241
Max. group size:      6174       Converged:             Yes          
Mean group size:      6088.9                                         
---------------------------------------------------------------------
                           Coef.  Std.Err.   z    P>|z| [0.025 0.975]
---------------------------------------------------------------------
Intercept                   1.988    0.078 25.599 0.000  1.836  2.141
ambiguity[T.unambig]       -0.336    0.099 -3.401 0.001 -0.530 -0.143
sdiff                      -0.000    0.000 -3.085 0.002 -0.000 -0.000
ambiguity[T.unambig]:sdiff  0.000    0.000  1.824 0.068 -0.000  0.000
item RE                     0.011    0.000                           
subj RE                     0.006    0.000                           
=====================================================================

                Mixed Linear Model Regression Results
=====================================================================
Model:                MixedLM    Dependent Variable:    mean         
No. Observations:     365337     Method:                REML         
No. Groups:           60         Scale:                 21.3193      
Min. group size:      5964       Likelihood:            -1080886.6241
Max. group size:      6174       Converged:             Yes          
Mean group size:      6088.9                                         
---------------------------------------------------------------------
                           Coef.  Std.Err.   z    P>|z| [0.025 0.975]
---------------------------------------------------------------------
Intercept                   1.988    0.078 25.599 0.000  1.836  2.141
ambiguity[T.unambig]       -0.336    0.099 -3.401 0.001 -0.530 -0.143
sdiff                      -0.000    0.000 -3.085 0.002 -0.000 -0.000
ambiguity[T.unambig]:sdiff  0.000    0.000  1.824 0.068 -0.000  0.000
item RE                     0.011    0.000                           
subj RE                     0.006    0.000                           
=====================================================================

                Mixed Linear Model Regression Results
=====================================================================
Model:                MixedLM    Dependent Variable:    mean         
No. Observations:     365337     Method:                REML         
No. Groups:           60         Scale:                 21.3193      
Min. group size:      5964       Likelihood:            -1080886.6241
Max. group size:      6174       Converged:             Yes          
Mean group size:      6088.9                                         
---------------------------------------------------------------------
                           Coef.  Std.Err.   z    P>|z| [0.025 0.975]
---------------------------------------------------------------------
Intercept                   1.988    0.078 25.599 0.000  1.836  2.141
ambiguity[T.unambig]       -0.336    0.099 -3.401 0.001 -0.530 -0.143
sdiff                      -0.000    0.000 -3.085 0.002 -0.000 -0.000
ambiguity[T.unambig]:sdiff  0.000    0.000  1.824 0.068 -0.000  0.000
item RE                     0.011    0.000                           
subj RE                     0.006    0.000                           
=====================================================================
/usr/local/lib/python2.7/dist-packages/statsmodels-0.7.0-py2.7-linux-x86_64.egg/statsmodels/regression/mixed_linear_model.py:1906: ConvergenceWarning: The MLE may be on the boundary of the parameter space.
  warnings.warn(msg, ConvergenceWarning)
/usr/local/lib/python2.7/dist-packages/statsmodels-0.7.0-py2.7-linux-x86_64.egg/statsmodels/regression/mixed_linear_model.py:1906: ConvergenceWarning: The MLE may be on the boundary of the parameter space.
  warnings.warn(msg, ConvergenceWarning)
                Mixed Linear Model Regression Results
=====================================================================
Model:                MixedLM    Dependent Variable:    mean         
No. Observations:     365337     Method:                REML         
No. Groups:           60         Scale:                 21.3193      
Min. group size:      5964       Likelihood:            -1080886.6241
Max. group size:      6174       Converged:             Yes          
Mean group size:      6088.9                                         
---------------------------------------------------------------------
                           Coef.  Std.Err.   z    P>|z| [0.025 0.975]
---------------------------------------------------------------------
Intercept                   1.988    0.078 25.599 0.000  1.836  2.141
ambiguity[T.unambig]       -0.336    0.099 -3.401 0.001 -0.530 -0.143
sdiff                      -0.000    0.000 -3.085 0.002 -0.000 -0.000
ambiguity[T.unambig]:sdiff  0.000    0.000  1.824 0.068 -0.000  0.000
item RE                     0.011    0.000                           
subj RE                     0.006    0.000                           
=====================================================================

1 loops, best of 3: 11min 8s per loop

In [38]:
result = model.fit()
print (result.summary())


                Mixed Linear Model Regression Results
=====================================================================
Model:                MixedLM    Dependent Variable:    mean         
No. Observations:     365337     Method:                REML         
No. Groups:           60         Scale:                 21.3193      
Min. group size:      5964       Likelihood:            -1080886.6241
Max. group size:      6174       Converged:             Yes          
Mean group size:      6088.9                                         
---------------------------------------------------------------------
                           Coef.  Std.Err.   z    P>|z| [0.025 0.975]
---------------------------------------------------------------------
Intercept                   1.988    0.078 25.599 0.000  1.836  2.141
ambiguity[T.unambig]       -0.336    0.099 -3.401 0.001 -0.530 -0.143
sdiff                      -0.000    0.000 -3.085 0.002 -0.000 -0.000
ambiguity[T.unambig]:sdiff  0.000    0.000  1.824 0.068 -0.000  0.000
item RE                     0.011    0.000                           
subj RE                     0.006    0.000                           
=====================================================================

/usr/local/lib/python2.7/dist-packages/statsmodels-0.7.0-py2.7-linux-x86_64.egg/statsmodels/regression/mixed_linear_model.py:1906: ConvergenceWarning: The MLE may be on the boundary of the parameter space.
  warnings.warn(msg, ConvergenceWarning)

In [40]:
result.summary()


Out[40]:
Model: MixedLM Dependent Variable: mean
No. Observations: 365337 Method: REML
No. Groups: 60 Scale: 21.3193
Min. group size: 5964 Likelihood: -1080886.6241
Max. group size: 6174 Converged: Yes
Mean group size: 6088.9
Coef. Std.Err. z P>|z| [0.025 0.975]
Intercept 1.988 0.078 25.599 0.000 1.836 2.141
ambiguity[T.unambig] -0.336 0.099 -3.401 0.001 -0.530 -0.143
sdiff -0.000 0.000 -3.085 0.002 -0.000 -0.000
ambiguity[T.unambig]:sdiff 0.000 0.000 1.824 0.068 -0.000 0.000
item RE 0.011 0.000
subj RE 0.006 0.000

In [44]:
model.get_fe_params()


---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-44-b271180b88c7> in <module>()
----> 1 model.fe_pen()

TypeError: 'NoneType' object is not callable

In [ ]: