У меня есть массив np
, подобный этому,
[[ 1. , 2.33, 0.125 , 4.36 , 0. , 0.215 ],
[ 1. , 0.168 , 36. , 2.99 , 0.198 , 0.6683 ],
[ 1. , 0.55778, 0. , 21.89 , 0. , 0.895 ],
[ 1. , 1.62864, 0. , 21.89 , 0. , 0.624 ],
[ 1. , 0.1146 , 20. , 6.96 , 0. , 0.464 ],
[ 1. , 0.55778, 0. , 21.89 , 0. , 0.624 ]]
, каждый столбец в этом массиве является столбцом.первый столбец - значение intercept
.Я пытаюсь использовать стратегию прямого выбора, чтобы выбрать функции с p-значением ниже 0,05.
Это то, что у меня пока есть,
import statsmodels.api as sm
def forward(y, x):
features = len(x[1])
for i in range(0,features):
model = sm.OLS(y,x[:,[i]]).fit()
pval = model.pvalues
if pval < 0.05:
x = np.append(x,x[:,[i]],1) # Here, I want to append it to a new np.array
else:
#go back and check next feature
return x
У меня проблемы с добавлением самого низкого p-значения в новый массив.Я посмотрел, создавая новые массивы онлайн , но для этого требуются измерения.Пока я не знаю, сколько это будет.
В противном случае мой единственный вариант - сохранить функцию в x
.Если я должен сохранить функцию, как я могу это сделать?