import numpy as np
import statsmodels.api as sm
import statsmodels.formula.api as smf
import pandas
%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
<StrVector - Python:0x7f00abf18680 / R:0xc4afcb8> [str, str, str, ..., str, str, str]
%%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)
%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
%%R
modeldata <- subset(modeldata, roi == 'Left-Posterior')
modeldata.n400 <- subset(modeldata,win=="N400")
%%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
modeldata = pandas.read_csv('https://raw.githubusercontent.com/lme4/lme4-convergence/master/data.tab', delimiter='\t')
modeldata = modeldata[modeldata['win']=='N400']
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
%%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
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)
result.summary()
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 |
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