У меня есть фрагмент кода в R с простой функцией lm () с одной зависимой и одной независимой переменной, которая выглядит следующим образом.
X = ([149876.9876, 157853.421, 147822.3803, 147904.6639, 152625.6781, 147229.8083, 181202.081, 164499.6566, 171461.6586, 164309.3919])
Y = ([26212109.07, 28376408.76, 30559566.77, 26765176.65, 28206749.66, 27560521.33, 32713878.83, 31263763.7, 30812063.54, 30225631.6])
lmfit <- lm(formula = Data_df$Y ~ Data_df$X, data=Data_df)
lmpred <- predict(lmfit, newdata=Data_df, se.fit=TRUE, interval = "prediction")
print(lmpred) #prints out fit, se.fit, df, residual.scale
Вывод приведенного выше кода 3 вектора 1.) fit 2.) se.fit 3.) df 4.) residual.scale
Пожалуйста, помогите мне найти способ вычисления se.fit и residual.scale в python. Im используя statsmodels.ols для создания модели линейной регрессии.Ниже приведен код Python, который я использую для построения линейной регрессии.
import pandas as pd
import statsmodels.formula.api as smf
import numpy as np
ols_result = smf.ols(formula='Y ~ X', data=DATA_X_Y_OLS).fit()
ols_result.predict(data_x_values)
R output
$fit
fit lwr upr
1 27594475 23262089 31926862
2 28768803 24486082 33051524
3 27291987 22943619 31640354
4 27304101 22956398 31651804
5 27999150 23686118 32312183
6 27204745 22851531 31557960
7 32206302 27951767 36460836
8 29747293 25490577 34004009
9 30772271 26527501 35017042
10 29719281 25462018 33976544
$se.fit
1 2 3 4 5 6 7 8 9 10
578003.4 483363.7 605520.6 604399.0 542961.1 613642.7 420890.0 426036.9 397072.7 427318.3
$df
[1] 24
$residual.scale
[1] 2017981