Сообщение об ошибке при попытке создать объединенную модель OLS - PullRequest
0 голосов
/ 07 мая 2020

В настоящее время я пытаюсь создать модель данных панели, в которой я устанавливаю переменную monthly_rev как зависимую переменную (Y) и выбираю другие переменные в наборе данных как независимые переменные (X).

data_a = pd.DataFrame({'index'[1,2,3,4,5,6], 'year'[2014, 2015, 2016, 2017, 2018, 2019],'monthly_rev' [90000, 93213, 62810, 96214, 100024, 82910], 'monthly_sales_volume': [1223, 3129, 2993, 3001, 1203, 2315], 'total_population' [311212, 491212, 600012, 312300, 123045, 256777], 'No._of_shops'[25, 49, 12, 34, 56, 40], 'Mon._customers_1'[12, 10, 8, 24, 21, 18], 'Mon._customers_2'[35, 41, 48, 29, 61, 53], 'Mon._customers_3'[59, 71, 46, 56, 82,90]})

Это небольшая выборка данных, с которыми я работаю в данный момент. В наборе данных всего 96 столбцов и 10238 строк, из которых 4 столбца являются строками.

Я написал следующий код, в котором я установил «индекс» и «год» в качестве столбцов индекса. Я добавил функцию to_datetime, чтобы убедиться, что Python не столкнется с проблемами с распознаванием данных datetime.

import pandas as pd
import numpy as np
from linearmodels.panel import PooledOLS
import statsmodels.api as sm

data = pd.read_csv(r'datafile.csv', encoding = 'cp949')

data['year'] = pd.to_datetime(data['year'])
time = pd.Categorical(data.year)
data = data.set_index(['index', 'year'])
data['year'] = time
x = ['monthly_sales_volume','total_population','No._of_shops']
x_1 = sm.add_constant(data[x_1])
model = PooledOLS(data.year, x_1)
P_OLS = model.fit()
P_OLS

Вместо получения результатов P_OLS я получаю следующее сообщение об ошибке:

ValueError: x_1 does not have full column rank

Означает ли это, что я выбрал неправильные переменные для включения в x_1 и что вместо этого я должен попробовать другие переменные? Или что-то не так в самой кодировке?

...