【发布时间】:2016-02-29 21:31:03
【问题描述】:
from numpy import *
import matplotlib.pyplot as plt
import numpy as np
# This is my data set
x = [15, 30, 45, 60, 75, 90, 105, 120, 135, 150, 165, 180, 195, 210, 225, 240]
y = [1, 0.9, 0.8, 0.7, 0.6, 0.55, 0.5, 0.45, 0.4, 0.35, 0.33, 0.31, 0.29, 0.27, 0.25, 0.23]
我想向这个数据集添加 3 个线性回归。通过用 pyplot 绘制我的数据集,我可以直观地看到扭结开始形成的位置(大约在 x = 105 和 x = 165 处)。所以我可以创建 3 个线性回归(从 x 是 0 到 105、105 到 165 和 165 到 240)。但是我该如何科学地做到这一点?换句话说,我想在我的数据中添加 3 个线性回归,以最小化卡方。有没有办法用代码来完成这个?
【问题讨论】:
-
我没有得到你想要达到的效果。你想得到三个不同的参数集(每个线性回归一个)?
-
我知道如何为我的数据创建 3 个单独的线性拟合并计算相应的卡方值,但我只是通过拆分我的 x,y 列表来做到这一点。我想创建一个算法来为我拆分列表,以便所有 3 个线性拟合的卡方最小化。
-
我更新了我的答案;它现在自动拆分 x 和 y,我还在 for 循环中添加了更多细节。让我知道您是否还有其他问题!
标签: python numpy linear-regression curve-fitting chi-squared