- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试使用 scipy.stats.linregress在最小二乘意义上计算两组数据之间的比例因子。然而,尽管输入的 xi
变量是一个向量而不是 n X 2
矩阵,但它给了我一个截距。
所以,一个简单的代码如下:
from scipy import stats
from numpy import arrange,array
y = [0, 11, 19, 28, 41, 49, 62, 75, 81]
xi = arange(0,9)
scale, intercept, r_value, p_value, std_err = stats.linregress(xi,y)
运行它,我得到的比例为 10.383,但我也得到了 -0.86 的截距。我怎样才能告诉它只适合缩放参数并且截距应保持为零。
最佳答案
如果你想拟合一个模型,y~xi
没有截距,你可能需要考虑使用更多面向统计的包,例如 statsmodels
:
In [17]:
import statsmodels.api as sm
import numpy as np
y = [0, 11, 19, 28, 41, 49, 62, 75, 81]
xi = np.arange(0,9)
model = sm.OLS(y, xi)
results = model.fit()
In [18]:
print results.params
[ 10.23039216]
您可以使用 R
独立验证结果。只是现在您必须明确指定截距为 0:
x <- c(0, 1, 2, 3, 4, 5, 6, 7, 8)
y <- c(0, 11, 19, 28, 41, 49, 62, 75, 81)
model1 <- lm(y~x+0)
summary(model1)
Call:
lm(formula = y ~ x + 0)
Residuals:
Min 1Q Median 3Q Max
-2.6912 -1.4608 0.0000 0.6176 3.3873
Coefficients:
Estimate Std. Error t value Pr(>|t|)
x 10.230 0.129 79.29 7.14e-13 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 1.843 on 8 degrees of freedom
Multiple R-squared: 0.9987, Adjusted R-squared: 0.9986
F-statistic: 6286 on 1 and 8 DF, p-value: 7.14e-13
引擎盖下的计算很简单:
In [29]:
import scipy.optimize as so
so.fmin(lambda b, x, y: ((b*x-y)**2).sum(), x0=0.1, args=(xi, y))
Optimization terminated successfully.
Current function value: 27.171569
Iterations: 27
Function evaluations: 54
Out[29]:
array([ 10.23039063])
关于python - scipy linregress : computing only scaling/slope parameter with intercept fixed at 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25289122/
我是 Stack Overflow 的忠实粉丝,相信我的问题会在这里得到解答。我正在使用 Scipy 进行线性回归。但是在一组特定的输入中,我没有得到正确的输出。 (Python 2.5、SciPy
我在数据框上绘制了一个散点图,如下所示: 带有代码 from scipy import stats import pandas as pd import seaborn as sns df = p
我已按“过滤器”列对名为“full_df2”的数据框进行了分组。然后我将不同的“过滤器”组名称放入名为“unique_list”的列表中。我想使用以下代码迭代我的数据框,以便我可以获得每个分组的图。
我正在尝试训练一个非常简单的线性回归模型。 我的代码是: from scipy import stats xs = [[ 0, 1, 153] [ 1, 2, 0] [
我有一个奇怪的情况,scipy.stats.linregress 似乎返回了一个不正确的标准错误: from scipy import stats x = [5.05, 6.75, 3.21, 2.6
我正在按组对数据框进行线性回归以生成汇总统计数据。我已经使用 scipy linregress 计算了两个变量 km vs price 的回归: import pandas as pd from sc
我在 Python 中使用 Linregress 来获取斜率、截距等 输出是一个 csv 文件。但是,数据输出的列中没有标题。数据输出为:slope=5.562,intercept=223.5 etc
Python 文档指出这是一个双尾测试,但没有评论它是什么类型的测试。是 T 测试、Z 测试、F 测试吗... http://docs.scipy.org/doc/scipy/reference/ge
当我尝试从 dataframe 中linregress Date 和 Close 字段时,我不断收到 错误。 Traceback (most recent call last):File "", li
我正在使用 scipy.stats.linregress对某些二维数据进行简单线性回归的函数,例如: from scipy import stats x = [5.05, 6.75, 3.21, 2.
我想在 Pandas ByGroup 中应用 scipy.stats.linregress。我查看了文档,但我所能看到的只是如何将某些内容应用于单个列,例如 grouped.agg(np.sum) 或
我正在使用 scipy stats 模块来计算线性回归。即 slope, intercept, r_value, p_value, std_err = stats.linregress(data['
函数scipy.stats.linregress自动计算拟合斜率的标准误差。如何获得拟合截距的标准误差? 最佳答案 一种替代方法是使用 pyfinance.ols module ,它具有截距 (alp
scipy.stats.linregress返回对应于斜率的 p 值,但没有截距的 p 值。考虑文档中的以下示例: >>> from scipy import stats >>> import num
使用 Pandas,我从 CSV 文件中读取数据,然后尝试使用 linregress 对其执行线性回归。我能够从文件中提取和操作数据,但是,当我使用 linregress 时,虽然它似乎运行回归,但它
我想使用LinearRegression和linregress来计算Intercept,X_Variable_1,R_Square,Significance_F 就像 Excel 中的回归分析一样。
我正在尝试拟合 xlog 线性回归。我使用 Seaborn regplot 来绘制拟合,看起来很合适(绿线)。然后,因为 regplot 不提供系数。我使用 stats.linregress 来查找系
我正在尝试使用 scipy.stats.linregress在最小二乘意义上计算两组数据之间的比例因子。然而,尽管输入的 xi 变量是一个向量而不是 n X 2 矩阵,但它给了我一个截距。 所以,一个
我知道这条错误信息(ValueError: too many values to unpack (expected 4))当更多的变量被设置为值而不是函数返回时出现。 scipy.stats.linr
这三个函数似乎都可以做简单的线性回归,例如 scipy.stats.linregress(x, y) numpy.polynomial.polynomial.polyfit(x, y, 1) x =
我是一名优秀的程序员,十分优秀!