Qiita の https://qiita.com/sugulu/items/5c1b03cd445f27fd3e28 こちらの投稿を参考に自分でプログラムを書いてみたのですが、トレーニングデータは同じはずなのに元のコードで得られたパラメータと異なるパラメータが算出されてしまいます。

こちらが参考にさせていただいたコードです。

import numpy as np
import pandas as pd
import matplotlib
import matplotlib.pylab as plt
import seaborn as sns

data_file = "./USDJPY_1997_2017.csv"
data = pd.read_csv(data_file)

# make np.array from DataFrame
data2 = np.array(data)

# prepare X
day_ago = 25
n_shihyou = 1         # features per day: 今回の場合は各日の終値のみ
# X matrix: (test data) * (features: 25days*終値)
X = np.zeros((len(data2), day_ago*n_shihyou))

# Set real datas
for i in range(0, day_ago):
    X[i:len(data2),i] = data2[0:len(data2)-i,4]

# prepare Y
Y = np.zeros(len(data2))
# 1日後の終値の差をYとする
pre_day = 1
Y[0:len(Y)-pre_day] = X[pre_day:len(X), 0] - X[pre_day:len(X), 1]

# Normalize
original_X = np.copy(X)         # 複製
tmp_mean = np.zeros(len(X))

for i in range(day_ago,len(X)):            # 25 - 終わりまで
    tmp_mean[i] = np.mean(original_X[i-day_ago+1:i+1,0]) # 25日分の平均値
    for j in range(0, X.shape[1]): 
        X[i,j] = (X[i,j] - tmp_mean[i]) # Xを正規化
    Y[i] =  Y[i]  # X同士の引き算しているので、Yはそのまま

# Training Data ~2017
X_train = X[200:5193]
Y_train = Y[200:5193]

# Test Data
X_test = X[5193:len(X)-pre_day, :]
Y_test = Y[5193:len(X)-pre_day]

from sklearn import linear_model

linear_reg_model = linear_model.LinearRegression()
linear_reg_model.fit(X_train, Y_train)

print("回帰式モデルの係数")
print(linear_reg_model.intercept_) 
print(linear_reg_model.coef_) 

私が書いたのが以下のコードです。

import numpy as np
import pandas as pd
import matplotlib.pylab as plt
import seaborn as sns
from sklearn import linear_model

data_file = "./USDJPY_1997_2017.csv"
data = pd.read_csv(data_file, index_col=[0], parse_dates=True)

last25 = pd.DataFrame(data["Close"])
last25.columns = ["today"]
for i in range(24):
    last25[f"{i+1}days_ago"] = data['Close'].shift(i+1)

# pandas.DateFrame to numpy.array
data_a = np.array(last25)

# Normalize
# Get mean for 25 days
days_mean = np.mean(last25.as_matrix(), axis=1)
mean_a = np.zeros((len(days_mean), 25))     
for i in range(25): 
    mean_a[:,i] = days_mean
norm_a = data_a - mean_a
norm_a = np.nan_to_num(norm_a)      # NaN to 0

# pandas.DataFrame of normalized data X
X = pd.DataFrame(norm_a)
X.columns = last25.columns
X.index = last25.index

# set Y as next day data
Y = np.array(X['today']) - np.array(X['1days_ago'])
Y = pd.DataFrame(Y).shift(-1)
Y.index = X.index

# Set training data
X_train = X.ix[:'2017-01-01']
X_train = X_train.ix[200:]
Y_train = Y.ix[:'2017-01-01']
Y_train = Y_train.ix[200:]

# Set test data
X_test = X.ix['2017-01-01':]
X_test = X_test[:-1]
Y_test = Y.ix['2017-01-01':]
Y_test = Y_test[:-1]

linear_reg_model = linear_model.LinearRegression()
linear_reg_model.fit(X_train, Y_train)

print("回帰式モデルの係数")
print(linear_reg_model.intercept_) 
print(linear_reg_model.coef_) 

渡しているデータは同じはずなのですが、この後の結果がずれてしまいます。
もし理由がわかる方がいたら回答お願いします。