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 [ ]:
Content source: saketkc/notebooks
Similar notebooks: