Как получить прогноз теста из 2D-параметров регрессии WLS в статистических моделях

Я постепенно увеличиваю параметры регрессионных функций WLS, используя statsmodels.

У меня есть набор данных 10×3 X, который я провозгласил следующим образом:

X = np.array([[1,2,3],[1,2,3],[4,5,6],[1,2,3],[4,5,6],[1,2,3],[1,2,3],[4,5,6],[4,5,6],[1,2,3]]) 

Это мой набор данных, и у меня есть вектор эндогенных endog который выглядит так:

 z = [[ 3.90311860e-322 2.00000000e+000] [ 0.00000000e+000 2.00000000e+000] [ 0.00000000e+000 -2.00000000e+000] [ 0.00000000e+000 2.00000000e+000] [ 0.00000000e+000 -2.00000000e+000] [ 0.00000000e+000 2.00000000e+000] [ 0.00000000e+000 2.00000000e+000] [ 0.00000000e+000 -2.00000000e+000] [ 0.00000000e+000 -2.00000000e+000] [ 0.00000000e+000 2.00000000e+000]] 

Теперь после импорта import statsmodels.api as sm я делаю это:

 g = np.zeros([3, 2]) # g(x) is a function that will store the regression parameters mod_wls = sm.WLS(z, X) temp_g = mod_wls.fit() print temp_g.params 

И я получаю этот вывод:

 [[ -5.92878775e-323 -2.77777778e+000] [ -4.94065646e-324 -4.44444444e-001] [ 4.94065646e-323 1.88888889e+000]] 

Ранее, отвечая на этот вопрос , я смог предсказать ценность тестовых данных X_test используя numpy.dot , например:

 np.dot(X_test, temp_g.params) 

Я так легко понял, так как это вектор endog, y был 1D-массивом. Но как это работает, когда мой эндогенный вектор, в данном случае, z , является 2D? Когда я пытаюсь использовать вышеприведенную строку, которая использовалась в 1D-версии, я получаю следующую ошибку:

  self._check_integrity() File "C:\Users\app\Anaconda\lib\site-packages\statsmodels\base\data.py", line 247, in _check_integrity raise ValueError("endog and exog matrices are different sizes") ValueError: endog and exog matrices are different sizes 

One Solution collect form web for “Как получить прогноз теста из 2D-параметров регрессии WLS в статистических моделях”

np.dot(X_test, temp_g.params) должен по-прежнему работать.

В некоторых случаях вам нужно проверить, какова ориентация матриц, иногда необходимо транспонировать

Однако predict и большинство других методов результатов не будут работать, поскольку модель предполагает, что зависимая переменная z равна 1D.

Вопрос снова в том, что вы пытаетесь сделать?

Если вы хотите независимо подогнать столбцы из z, перейдите по нему так, чтобы каждый y равен 1D.

for y in zT: res = WLS(y, X).fit()

zT позволяет выполнять итерацию по столбцам.

В других случаях мы обычно складываем модель, так что y равно 1D, а первая ее часть – z[:,0] а вторая часть столбца – z[:,1] . Матрица дизайна или матрица объясняющих переменных должна быть соответственно расширена.

Поддержка многомерных зависимых переменных заключается в создании для statsmodels, но все равно потребуется некоторое время, чтобы быть готовым.

  • Математическая основа statsmodels wls_prediction_std
  • Statsmodels Python - взвешенный GLM
  • Оцените наклон и ошибку для конкретной категории для statsmodels ols fit
  • В чем разница между pandas ACF и statsmodel ACF?
  • Разница в статистических моделях Python OLS и R's lm
  • Ошибка SandboxViolation при установке statsmodels с помощью easy_install
  • Python 2.7 - statsmodels - форматирование и запись сводного вывода
  • Прогнозирование будущих значений с использованием регрессии OLS (Python, StatsModels, Pandas)
  • Разностный коэффициент инфляции в регрессии гребня в python
  • Как добавить функции регрессии в python или создать новую функцию регрессии из заданных коэффициентов?
  • Сравнение результатов от статмоделей ARIMA с исходными данными
  • Python - лучший язык программирования в мире.