線形回帰の指数関数
# Y = alpha + beta * x # 下の式を上に変換 # y = a * exp(b * x) # Y = log(y), a = exp(alpha), b = beta x = np.array([-2.1, -1.3, -0.4, 0.1, 0.6, 1.2, 1.6, 1.9]) y = np.array([0.5, 0.7, 1.0, 1.5, 3.2, 4.6, 5.0, 6.8]) Y = np.log(y) s_cov = np.cov(np.vstack([x, Y]), ddof=1) # 分散および共分散を抽出 s_x2 = s_cov[0][0] s_xy = s_cov[0][1] s_y2 = s_cov[1][1] alpha_hat = Y.mean() - (s_xy / s_x2 * x.mean()) beta_hat = s_xy / s_x2 a_hat = np.exp(alpha_hat) # Y_hat = alpha_hat + beta_hat * x