Example #1
0
    def glmer(self, formula, family, lmerVar="glmer1"):

        if os.path.exists(".rbridge-glmer.csv"):
            os.remove(".rbridge-glmer.csv")

            # Peform lmer
        self.write("library(lmerTest)")
        s = self.call("(%s <- glmer(%s, family=%s))" % (lmerVar, formula, family))
        self.write('write.csv(summary(%s)$coef, ".rbridge-glmer.csv")' % lmerVar)
        while not os.path.exists(".rbridge-glmer.csv"):
            time.sleep(0.1)
            # Try this a few times, because sometimes the csv hasn't been written
            # yet
        for i in range(10):
            try:
                dm = CsvReader(".rbridge-glmer.csv").dataMatrix()
                break
            except:
                time.sleep(1)
        dm.rename("f0", "effect")
        dm.rename("Estimate", "est")
        dm.rename("Std. Error", "se")
        dm.rename("Z value", "z")
        dm.rename("Pr(>|z|)", "p")
        dm = dm.addField("estProb", dtype=float)
        dm["estProb"] = 1.0 / (1.0 + np.exp(-dm["est"]))
        return dm
Example #2
0
    def anova(self, model1, model2, anovaVar="aov1"):

        """
		Performs a model comparison using the R `anova()` function. The models
		should be fitted and given a name first, using `RBridge.lmer()`.

		Arguments:
		model1		--	The name of the first model.
		model2		--	The name of the first model.

		Keyword arguments:
		anovaVar	--	The R variable to store the `anova()` output in.
						(default='aov1')

		Returns:
		A DataMatrix with the output for the model comparison.
		"""

        if os.path.exists(".rbridge-anova.csv"):
            os.remove(".rbridge-anova.csv")
        self.write("%s <- anova(%s, %s)" % (anovaVar, model1, model2))
        self.call('write.csv(%s, ".rbridge-anova.csv")' % anovaVar)
        while not os.path.exists(".rbridge-anova.csv"):
            time.sleep(0.1)
            # Try this a few times, because sometimes the csv hasn't been written
            # yet
        for i in range(10):
            try:
                dm = CsvReader(".rbridge-anova.csv").dataMatrix()
                break
            except:
                time.sleep(1)
        dm.rename("f0", "model")
        return dm
Example #3
0
    def lmer(self, formula, lmerVar="lmer1"):

        """
		descL
			Performs a linear mixed-effects model, using the `lmer()` function
			from `lme4`.

		arguments:
			formula:
				desc:	An R-style mixed-effects formula.
				type:	str

		keywords:
			lmerVar:
				desc:	The R variable to store the `lmer()` output in.
				type:	str

		returns:
			desc:	A DataMatrix with the model output.
			type:	DataMatrix
		"""

        if os.path.exists(".rbridge-lmer.csv"):
            os.remove(".rbridge-lmer.csv")

            # Peform lmer
        self.write("library(lmerTest)")
        s = self.call("(%s <- lmer(%s))" % (lmerVar, formula))
        self.write('write.csv(summary(%s)$coef, ".rbridge-lmer.csv")' % lmerVar)
        while not os.path.exists(".rbridge-lmer.csv"):
            time.sleep(0.1)
            # Try this a few times, because sometimes the csv hasn't been written
            # yet
        for i in range(10):
            try:
                dm = CsvReader(".rbridge-lmer.csv").dataMatrix()
                break
            except:
                time.sleep(1)
        dm.rename("f0", "effect")
        dm.rename("Estimate", "est")
        dm.rename("Std. Error", "se")
        dm.rename("t value", "t")
        dm.rename("Pr(>|t|)", "p")
        return dm