らんだむな記憶

blogというものを体験してみようか!的なー

pandasと回帰曲線とプロット

こんなんでいけたがえらい手こずった...。

#! /usr/bin/env python
# -*- coding: utf-8 -*-

import numpy as np
import pandas as pd
import matplotlib
import matplotlib.pyplot as plt
import statsmodels.api as sm

font = {'family' : 'TakaoGothic'}
matplotlib.rc('font', **font)

# 期-売上げの折れ線グラフ
df = pd.read_csv("data.csv", encoding='utf-8')
df.index = df[u'期']
df[u'売上げ'].plot(grid=True, color='k')

# 回帰曲線モデル1
y = df[u'売上げ']
X = df[u'期']
X = sm.add_constant(X) # intercept
model = sm.OLS(y,X)
res = model.fit()
plt.plot(df[u'期'], res.fittedvalues, 'r--.')

# 回帰曲線モデル2
df['期^2'] = df[u'期'] ** 2
X = df[[u'期', u'期^2']]
X = sm.add_constant(X) # intercept
model = sm.OLS(y,X)
res = model.fit()
plt.plot(df[u'期'], res.fittedvalues, 'g')

# 回帰曲線モデル3
df['期^3'] = df[u'期'] ** 3
X = df[[u'期', u'期^2', u'期^3']]
X = sm.add_constant(X) # intercept
model = sm.OLS(y,X)
res = model.fit()
plt.plot(df[u'期'], res.fittedvalues, 'b--')

plt.show()