python中的反向标准最小二乘回归(ISR)

python中的反向标准最小二乘回归(ISR),python,statistics,regression,statsmodels,least-squares,Python,Statistics,Regression,Statsmodels,Least Squares,嗨,我只是想做反向最小二乘回归 Y -> m *x + c python中是否已经有任何包或函数可用于此目的?您可以尝试statsmodels它有一些回归算法,如果它没有您想要的,请检查其他实现并使用它来实现您的 链接:您可以尝试statsmodels它有一些回归算法,如果它没有您想要的,请检查其他的实现,并使用它来实现您的 链接:我假设通过反向最小二乘回归你指的是一种将最佳拟合线与数据之间的水平距离(而非垂直距离)最小化的回归。如果是这种情况,只需在y上运行x回归,然后设置m*=1/m

嗨,我只是想做反向最小二乘回归

Y -> m *x + c

python中是否已经有任何包或函数可用于此目的?

您可以尝试
statsmodels
它有一些回归算法,如果它没有您想要的,请检查其他实现并使用它来实现您的


链接:

您可以尝试
statsmodels
它有一些回归算法,如果它没有您想要的,请检查其他的实现,并使用它来实现您的


链接:

我假设通过
反向最小二乘回归
你指的是一种将最佳拟合线与数据之间的水平距离(而非垂直距离)最小化的回归。如果是这种情况,只需在
y
上运行
x
回归,然后设置
m*=1/m
a*=a/m
。下面是一个例子:

import matplotlib.pyplot as plt
import pandas as pd 
from sklearn.linear_model import LinearRegression

# DATA
x = np.linspace(0, 1, 100).reshape((-1,1))
y = 0.5*x + np.random.normal(0, 0.1, size=x.shape)

# INVERTED LINEAR REGRESSION
model = LinearRegression(fit_intercept=True)
model.fit(y,x)
m = 1/model.coef_[0][0]
a = -model.intercept_/model.coef_[0][0]

# PLOT
plt.scatter(x,y, color='r', s=12, alpha=0.5)
plt.plot(x, m*x + a)
plt.xlabel('x')
plt.ylabel('y')

我假设
反向最小二乘回归
指的是使最佳拟合线与数据之间的水平距离而非垂直距离最小化的回归。如果是这种情况,只需在
y
上运行
x
回归,然后设置
m*=1/m
a*=a/m
。下面是一个例子:

import matplotlib.pyplot as plt
import pandas as pd 
from sklearn.linear_model import LinearRegression

# DATA
x = np.linspace(0, 1, 100).reshape((-1,1))
y = 0.5*x + np.random.normal(0, 0.1, size=x.shape)

# INVERTED LINEAR REGRESSION
model = LinearRegression(fit_intercept=True)
model.fit(y,x)
m = 1/model.coef_[0][0]
a = -model.intercept_/model.coef_[0][0]

# PLOT
plt.scatter(x,y, color='r', s=12, alpha=0.5)
plt.plot(x, m*x + a)
plt.xlabel('x')
plt.ylabel('y')

非常感谢您抽出宝贵的时间。但是这个例子中的模型是否正确?看起来数据点的分布有点远离下半部分的直线。(我完全不是专家)好眼睛。最初的拦截是不正确的。现在已修复。此版本中是否有任何摘要选项,就像在
statsmodel
中一样?查看
R^2
非常感谢您宝贵的时间。但是这个例子中的模型是否正确?看起来数据点的分布有点远离下半部分的直线。(我完全不是专家)好眼睛。最初的拦截是不正确的。现在已修复。此版本中是否有任何摘要选项,就像在
statsmodel
中一样?检查
R^2