I wanted to see if there was a way to change the output names when using the 'params' for the intercept and independent variable. The goal is to put it into a data frame to use later. I know you can change the xnames when using model.summary(yname="Status", xname=['Alpha', 'Beta'], title='Regression') but I only want the params not the whole summary.
Here is the output
Intercept 125.682063
SP50 -0.288299
dtype: float64
Here is what I want to change it to
Alpha 125.682063
Beta -0.288299
dtype: float64
Here is the code
df = pd.read_excel("dataset\Special_Proj.xlsx")
df['Date'] = pd.to_datetime(df['Date'], format='%m/%d/%y')
tickers = ['FDX', 'BRK', 'MSFT', 'NVDA', 'INTC', 'AMD', 'JPM', 'T', 'AAPL', 'AMZN', 'GS']
def rolling_regression_stats():
first52 = df[(df['Date'] <= '2000-12-22')]
for t in tickers:
model = smf.ols(f'{t} ~ SP50', data=first52).fit()
coef_and_intercept = model.params
print(coef_and_intercept,'\n\n')
rolling_regression_stats()
Overall, Here is what I'm trying to achieve.
CodePudding user response:
params
accessor returns pandas.Series
, so you can work with it like you usually work with series. Specifically in your code all you need to do is to work with this line:
coef_and_intercept = model.params.set_axis(['Alpha', 'Beta'])