Я ищу решение для следующей проблемы, и оно просто не будет работать так, как я хочу.
Поэтому моя цель - вычислить регрессионный анализ и получить наклон, перехват, rvalue,pvalue и stderr для нескольких строк (это может доходить до 10000).В этом примере у меня есть файл с 15 строками.Вот первые две строки:
array([
[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
23, 24],
[ 100, 10, 61, 55, 29, 77, 61, 42, 70, 73, 98,
62, 25, 86, 49, 68, 68, 26, 35, 62, 100, 56,
10, 97]]
)
Полный набор пробных данных:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
100 10 61 55 29 77 61 42 70 73 98 62 25 86 49 68 68 26 35 62 100 56 10 97
57 89 25 89 48 56 67 17 98 10 25 90 17 52 85 56 18 20 74 97 82 63 45 87
192 371 47 173 202 144 17 147 174 483 170 422 285 13 77 116 500 136 276 392 220 121 441 268
Первая строка - это переменная x, а это независимая переменная.Это должно быть исправлено при повторении каждой следующей строки.
Для следующей строки, переменной y и, следовательно, зависимой переменной, я хочу вычислить наклон, пересечение, rvalue, pvalue и stderr и иметьих в кадре данных (если возможно добавляется в тот же кадр данных, но это не обязательно).
Я попробовал следующий код:
import pandas as pd
import scipy.stats
import numpy as np
df = pd.read_excel("Directory\\file.xlsx")
def regr(row):
r = scipy.stats.linregress(df.iloc[1:, :], row)
return r
full_dataframe = None
for index,row in df.iterrows():
x = regr(index)
if full_dataframe is None:
full_dataframe = x.T
else:
full_dataframe = full_dataframe.append([x.T])
full_dataframe.to_excel('Directory\\file.xlsx')
Но это не удается и выдает следующую ошибку:
ValueError: all the input array dimensions except for the concatenation axis
must match exactly
Я действительно потерян здесь.
Итак, я хочу добиться того, чтобы у меня были наклон, перехват, pvalue, rvalue и stderr на строку, начиная со второй, потому что первая строка - это переменная x.
Любой имеетИдея КАК это сделать и сказать мне, ПОЧЕМУ мой не работает и КАК код должен выглядеть?
Спасибо !!