Я использую следующий код для определения параметров Linregress:
import numpy, scipy,pandas as pd
from scipy.optimize import curve_fit
from scipy.stats import linregress
import scipy.stats
import copy
df=pd.read_excel("S:/Python/Excel.xlsx")
df.head();
xyDataPairs = df[['x', 'y']].values.tolist();
df.groupby('Test Event',as_index=True)['x', 'y'].apply(linregress)
res= df.groupby('Test Event',as_index=True)['x', 'y'].apply(linregress);
print(res)
res.to_excel('result.xlsx')
Из этого я получаю все параметры linregress (Slope, intercept, R2, pvalue и stderror)
#
Задача для меня начинается здесь:
Мне нужно использовать Python, чтобы удалить выбросы из порядка набора данных, чтобы улучшить R2 (что приведет к соответствующему изменению наклона).После удаления выбросов мне нужно рассчитать измененные параметры линейного хода (наклон, пересечение, R2, pvalue и std error) для каждой последовательности.
Скажем, когда выброс не был удален, R2 = 0,721, но при удалениивыпадающий, результирующий R2 равен 0,852
Таблица данных выглядит следующим образом:
![Dataset](https://i.stack.imgur.com/gyLgW.png)
У меня есть 10 точек данных на последовательность (A, B и C) и необходимо удалить выбросы, присутствующие в каждой последовательности.Выбросы выделены желтым цветом в наборе данных.Я также дал выходные данные, которые удалили выбросы.
Когда мы удаляем эти выбросы, R2, наклон, перехват и т. Д. Меняются.
Как мне поступить с помощью Python?Любая помощь по этому вопросу высоко ценится.
Я спросил в Crossvalidate, и мне предложили использовать надежный метод регрессии для этого вида анализа.
Какие библиотеки / пакеты Python я должен использовать для этого вопроса?