I wrote the below code to eliminate independent variables according to how small their p-value is. The idea is to find the smallest p-value. I found I had to eliminate all columns where their p-value was greater than zero because python rounded very very tiny floats to zero.
I would like to know, at what particular point does python round off a really tiny float to zero as this would be relevant knowledge going forward.
The smallest value that was eliminated from my situation was 1.1408804269349811e-156, the others were rounded off to zero.
I have attached to provide context.
Thanks.
#backward elimination
cols = list(X.columns)
pmax = 1
while (len(cols)>0):
p= []
X_1 = X[cols]
X_1 = sm.add_constant(X_1)
model = sm.OLS(y,X_1).fit()
p = pd.Series(model.pvalues.values[1:],index=cols)
print(p)
pmax = max(p)
print("pmax: ")
print(pmax)
feature_with_p_max = p.idxmax()
if(pmax>0):
cols.remove(feature_with_p_max)
print(cols)
else:
break
selected_features_BE = cols
print(selected_features_BE)`
question from:
https://stackoverflow.com/questions/65598548/at-what-point-does-python-or-statsmodel-round-off-small-floats-tending-towards 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…