Я экспериментировал с функциями Semporn lmplot () и Statsmodels .ols () для простых графиков линейной регрессии и связанных с ними значений p, r-квадрата и т. Д.
Я заметил, что когдаЯ указываю, какие столбцы я хочу использовать для lmplot, я могу указать столбец, даже если для него есть несколько слов:
import seaborn as sns
import pandas as pd
input_csv = pd.read_csv('./test.csv',index_col = 0,header = 0)
input_csv

sns.lmplot(x='Age',y='Count of Specific Strands',data = input_csv)
<seaborn.axisgrid.FacetGrid at 0x2800985b710>

Однако, если я пытаюсь использовать ols, я получаю ошибку для ввода в «Count of Specific Strands» в качестве моей зависимой переменной (у меня есть толькоперечислил последнюю пару строк в ошибке):
import statsmodels.formula.api as smf
test_results = smf.ols('Count of Specific Strands ~ Age',data = input_csv).fit()
File "<unknown>", line 1
Count of Specific Strands
^
SyntaxError: invalid syntax
И наоборот, если я укажу «Количество специфических цепей», как показано ниже, регрессия работает:
test_results = smf.ols('input_csv.iloc[:,1] ~ Age',data = input_csv).fit()
test_results.summary()

Кто-нибудь знает, почему это так?Это только из-за того, как были написаны Statsmodels?Есть ли альтернатива для указания зависимой переменной для регрессионного анализа, которая не включает iloc или loc?