Python: захват высокой коллинеарности в statsmodel (регрессия) для панельных данных

Поскольку вы находитесь внутри функции обратного вызова, значение this отличается от внешнего.

Самое простое решение - назначить ваш memberCollection отдельной переменной вне обратного вызова :

var batch = this.afs.firestore.batch();
var eventRef = this.eventCollection.doc(eventkey).ref;
var memberCollection = this.memberCollection;
batch.update(eventRef, updateField );
if(artists) {
  Object.values(artists).forEach(function(artist) {
    var artistkey = artist.$key;
    var artistRef = memberCollection.doc(artistkey).collection('events').doc(eventkey).ref;
    batch.update(artistRef, updateField); 
  });
}
batch.commit().then(function() {console.log('success')};

Но вы также можете использовать синтаксис стрелок для функций, который предотвращает переназначение this:

var batch = this.afs.firestore.batch();
var eventRef = this.eventCollection.doc(eventkey).ref;
batch.update(eventRef, updateField );
if(artists) {
  Object.values(artists).forEach((artist) => {
    var artistkey = artist.$key;
    var artistRef = this.memberCollection.doc(artistkey).collection('events').doc(eventkey).ref;
    batch.update(artistRef, updateField); 
  });
}
batch.commit().then(function() {console.log('success')};

Это чрезвычайно распространенный вопрос JavaScript и применяется везде вы имеете обратные вызовы (не только с Firestore). Я рекомендую вам ознакомиться с некоторыми из предыдущих вопросов по этой теме:

-1
задан sophros 19 January 2019 в 07:37
поделиться

1 ответ

см., Например, https://stats.stackexchange.com/questions/332428/regression-model-constant-causes-multicollinearity-warning-but-not-in-standardi/332597#332597 [ 115]

Statsmodels вычисляет номер условия матрицы проекта, и поэтому он чувствителен к масштабированию объясняющих переменных.
Основной интерес при вычислении числа условий таким способом заключается в том, чтобы указать, существуют ли возможные численные проблемы с фактической расчетной матрицей, а не как диагностический индикатор мультиколлинеарности. Statsmodels принимает предоставленную пользователем матрицу дизайна как заданную и не стандартизирует и не трансформирует матрицу дизайна для улучшения численной стабильности.

В этом примере нет мультиколлинеарности, но масштаб Impression намного больше, чем константа, закодированная как 1.

Кроме того, коэффициент регрессии очень мал, чтобы компенсировать большой масштаб объясняющей переменной.

Таким образом, как численная стабильность, так и интерпретация параметра были бы улучшены путем изменения масштаба переменной Impression, например, с использованием 100 000 в качестве единицы Impression.

0
ответ дан Josef 19 January 2019 в 07:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: