Class: Rust::Models::Regression::LinearMixedEffectsModel

Inherits:
RegressionModel show all
Defined in:
lib/rust/models/regression.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from RegressionModel

#actuals, #coefficients, #fitted, #initialize, #load_in_r_as, #method_missing, #model, #mse, #r_hash, #residuals

Methods inherited from RustDatatype

#load_in_r_as, #r_hash, #r_mirror, #r_mirror_to

Constructor Details

This class inherits a constructor from Rust::Models::Regression::RegressionModel

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class Rust::Models::Regression::RegressionModel

Class Method Details

.can_pull?(type, klass) ⇒ Boolean

Returns:

  • (Boolean)


128
129
130
# File 'lib/rust/models/regression.rb', line 128

def self.can_pull?(type, klass)
    return type == "S4" && klass == "lmerModLmerTest"
end

.generate(dependent_variable, fixed_effects, random_effects, data, **options) ⇒ Object



155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
# File 'lib/rust/models/regression.rb', line 155

def self.generate(dependent_variable, fixed_effects, random_effects, data, **options)
    Rust.prerequisite("lmerTest")
    Rust.prerequisite("rsq")
    
    random_effects = random_effects.map { |effect| "(1|#{effect})" }
    
    RegressionModel.generate(
        LinearMixedEffectsModel,
        "lmer", 
        dependent_variable, 
        fixed_effects + random_effects, 
        data, 
        **options
    )
end

.pull_priorityObject



132
133
134
# File 'lib/rust/models/regression.rb', line 132

def self.pull_priority
    1
end

.pull_variable(variable, type, klass) ⇒ Object



136
137
138
139
140
# File 'lib/rust/models/regression.rb', line 136

def self.pull_variable(variable, type, klass)
    model = Rust::RustDatatype.pull_variable(variable, Rust::S4Class)
    
    return LinearMixedEffectsModel.new(model)
end

Instance Method Details

#r_2Object



171
172
173
174
175
176
# File 'lib/rust/models/regression.rb', line 171

def r_2
Rust.exclusive do
        Rust._eval("tmp.rsq <- rsq(#{self.r_mirror}, adj=F)")
        return Rust['tmp.rsq']
    end
end

#r_2_adjustedObject



178
179
180
181
182
183
# File 'lib/rust/models/regression.rb', line 178

def r_2_adjusted
    Rust.exclusive do
        Rust._eval("tmp.rsq <- rsq(#{self.r_mirror}, adj=T)")
        return Rust['tmp.rsq']
    end
end

#summaryObject



142
143
144
145
146
147
148
149
150
151
152
153
# File 'lib/rust/models/regression.rb', line 142

def summary
    unless @summary
        Rust.exclusive do
            Rust._eval("tmp.summary <- summary(#{self.r_mirror})")
            Rust._eval("mode(tmp.summary$objClass) <- \"list\"")
            Rust._eval("tmp.summary$logLik <- attributes(tmp.summary$logLik)")
            @summary = Rust["tmp.summary"]
        end
    end
    
    return @summary
end