2017-02-21 18 views
0

В python я пытаюсь понять StatsModel Linear Mixed Effects Models.Python - метод класса наследует параметры класса?

Класс модели:

class statsmodels.regression.mixed_linear_model.MixedLM(endog, exog, groups, 
                 exog_re=None, use_sqrt=True, 
                 missing='none', **kwargs) 

, который имеет параметр "группы. Мой вопрос:

Метод класса наследует параметры класса?

Причина в том, что для класса methods у них есть метод from_formula, который не включает параметр «groups». Но в example коде они пишут,

model = sm.MixedLM.from_formula("Weight ~ Time", data, re_formula="Time", 
           groups=data["Pig"]) 

, который включает в себя параметр «группы» внутри метода «from_formula», следовательно, на мой вопрос,

унаследует ли метод класса параметров класса?

ответ

0

Чистые концепции python для принятия * args и ** kwargs в классе/функции. Если мы не используем сколько параметров необходимо передать любому классу или функции, мы используем args или kwargs. Пройдите по этой ссылке args and kwargs. Я видел внутренний дизайн from_formula, он ищет группы как kwargs.

1

Нет, здесь нет параметров класса. Существуют аргументы конструктора.

Как описано here, args и kwargs передаются модели (метод конструктора - ____init____). И затем возвращается объект модели. Этот метод скрывает от вас некоторые действия, но если вы знаете, что делаете, вы можете передать некоторые аргументы, как если бы вы передавали их конструктору.

Эти аргументы являются необязательными.

арг: дополнительные аргументы

Они передаются в модель

kwargs: дополнительные именованные аргументы

Они передаются в модель с одним исключением. Ключевое слово eval_env передается в patsy. Это может быть либо apatsy.EvalEnvironmentobject, либо целое число, указывающее глубину используемого пространства имен. Например, по умолчанию eval_env = 0 использует вызывающее пространство имен. Если вы хотите использовать , установите «чистую» среду окружения eval_env = -1.