标签: linear-regression

约翰Tukey"中位数中位数"(或"耐药线")R和线性回归的统计检验

我正在搜索John Tukey算法,该算法使用R进行线性回归计算"抗性线"或"中位数线".

列表中的学生用以下术语解释此算法:

"它的计算方法是将数据分成三组,找到每组的x中位数和y中位数值(称为汇总点),然后使用这三个汇总点来确定该线.外部两个汇总点确定斜率,所有点的平均值决定了截距."

关于约翰·图基的好奇心中位数的文章:http://www.johndcook.com/blog/2009/06/23/tukey-median-ninther/

你知道我在哪里可以找到这个算法或R函数吗?在哪个包中,非常感谢!

testing algorithm r function linear-regression

7
推荐指数
1
解决办法
3453
查看次数

如何从R中的线性模型中获得交叉验证的r-square?

我在R中有一个线性模型

set.seed(1234)
x <- rnorm(100)
z <- rnorm(100)
y <- rnorm(100, x+z)
mydata <- data.frame(x,y,z)

fit <- lm(y ~ x + z, mydata)
Run Code Online (Sandbox Code Playgroud)

我想获得样本r-square的估计值.我正在考虑使用某种形式的k-fold交叉验证.

  • R中的代码采用线性模型拟合并返回交叉验证的r平方?
  • 或者是否有其他方法可以使用R获得交叉验证的r-square?

r linear-regression cross-validation

7
推荐指数
1
解决办法
5991
查看次数

如何使用c ++获得线性回归线的斜率?

我需要获得类似于以下链接中的excel函数实现方式的线性回归:

http://office.microsoft.com/en-gb/excel-help/slope-function-HP010342903.aspx
Run Code Online (Sandbox Code Playgroud)

是否有一个C++库或一个人创建的简单编码解决方案可以做到这一点?我已经根据这个公式实现了代码,但它并不总能给我正确的结果(取自这里http://easycalculation.com/statistics/learn-regression.php)....

Slope(b) = (N?XY - (?X)(?Y)) / (N?X2 - (?X)2)
         = ((5)*(1159.7)-(311)*(18.6))/((5)*(19359)-(311)2)
         = (5798.5 - 5784.6)/(96795 - 96721)
         = 13.9/74
         = 0.19 
Run Code Online (Sandbox Code Playgroud)

如果我对下面的向量进行尝试,我会得到错误的结果(我应该期待0.305556):x = 6,5,11,7,5,4,4 y = 2,3,9,1,8,7 ,5

提前致谢

c++ math linear-regression

7
推荐指数
3
解决办法
2万
查看次数

如何从R中的lm.fit返回预测值,残差,R平方?

这段代码将返回系数:intercept,slop1,slop2

set.seed(1)
n=10

y=rnorm(n)
x1=rnorm(n)
x2=rnorm(n)

lm.ft=function(y,x1,x2)
  return(lm(y~x1+x2)$coef)

res=list();
for(i in 1:n){
  x1.bar=x1-x1[i]
  x2.bar=x2-x2[i]
  res[[i]]=lm.ft(y,x1.bar,x2.bar)
}
Run Code Online (Sandbox Code Playgroud)

如果我输入:

   > res[[1]]
Run Code Online (Sandbox Code Playgroud)

我明白了:

      (Intercept)          x1          x2 
     -0.44803887  0.06398476 -0.62798646 
Run Code Online (Sandbox Code Playgroud)

我们如何返回预测值,残差,R square,..等?

我需要一些通用的东西从摘要中提取我需要的东西?

regression r linear-regression

7
推荐指数
2
解决办法
3万
查看次数

将OLS回归摘要打印到文本文件

pandas.stats.api.ols使用groupby带有以下代码的运行OLS回归:

from pandas.stats.api import ols
df=pd.read_csv(r'F:\file.csv')

result=df.groupby(['FID']).apply(lambda d: ols(y=d.loc[:, 'MEAN'], x=d.loc[:, ['Accum_Prcp', 'Accum_HDD']]))
for i in result:
    x=pd.DataFrame({'FID':i.index, 'delete':i.values})
    frame = pd.concat([x,DataFrame(x['delete'].tolist())], axis=1, join='outer')
    del frame['delete']
    print frame
Run Code Online (Sandbox Code Playgroud)

但是这会返回错误:

AttributeError: 'OLS' object has no attribute 'index'
Run Code Online (Sandbox Code Playgroud)

我的组中有大约2,000个项目,当我打印出每个项目时,它们看起来像这样:

-

------------------------Summary of Regression Analysis-------------------------

Formula: Y ~ <Accum_Prcp> + <Accum_HDD> + <intercept>

Number of Observations:         79
Number of Degrees of Freedom:   3

R-squared:         0.1242
Adj R-squared:     0.1012

Rmse:              0.1929

F-stat (2, 76):     5.3890, p-value:     0.0065

Degrees of Freedom: …
Run Code Online (Sandbox Code Playgroud)

python csv linear-regression pandas statsmodels

7
推荐指数
2
解决办法
8343
查看次数

在 R 中绘制回归线

我想在 R 中绘制一条简单的回归线。我已经输入了数据,但回归线似乎不正确。有人可以帮忙吗?

x <- c(10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120)
y <- c(10, 18, 25, 29, 30, 28, 25, 22, 18, 15, 11, 8)
df <- data.frame(x,y)
plot(y,x)
abline(lm(y ~ x))
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

在此处输入图片说明

plot regression r linear-regression lm

7
推荐指数
2
解决办法
4万
查看次数

对 Python 上的每个系数具有特定约束的多元线性回归

我目前正在数据集上运行多元线性回归。起初,我没有意识到我需要限制我的体重;事实上,我需要有特定的正负权重。

更准确地说,我正在做一个评分系统,这就是为什么我的一些变量应该对笔记产生积极或消极的影响。然而,在运行我的模型时,结果不符合我的预期,我的一些“正”变量得到负系数,反之亦然。

例如,假设我的模型是:

y = W0*x0 + W1*x1 + W2*x2 
Run Code Online (Sandbox Code Playgroud)

其中 x2 是一个“正”变量,我想将 W2 的约束设为正值!

我一直在寻找关于这个问题的很多东西,但我没有发现任何关于特定权重/系数的约束,我发现的只是将所有系数设置为正数或将它们相加为一。

我正在使用 ScikitLearn 包研究 Python。这就是我获得最佳模型的方式:

def ridge(Xtrain, Xtest, Ytrain, Ytest, position):
    param_grid={'alpha':[0.01 , 0.1, 1, 10, 50, 100, 1000]}
    gs = grid_search.GridSearchCV(Ridge(), param_grid=param_grid, n_jobs=-1, cv=3)
    gs.fit(Xtrain, Ytrain)
    hatytrain = gs.predict(Xtrain)
    hatytest = gs.predict(Xtest)
Run Code Online (Sandbox Code Playgroud)

知道如何为特定变量的系数分配约束吗?定义每个约束可能会很麻烦,但我不知道该怎么做。

python constraints machine-learning linear-regression scikit-learn

7
推荐指数
1
解决办法
4733
查看次数

Python:仅使用 1 个外生变量执行数百万个简单线性回归的最快方法

我正在对时间序列数据执行组件明智的回归。这基本上是在那里的,而不是倒退Ÿ对X 1,X 2,...,X ñ,我们会回归Ÿ对X 1只,对x和y 2只,...,并采取减少的总和回归平方残差最多,并将其添加为基础学习器。这被重复 M 次,这样最终模型是许多形式 y 与 x i(仅 1 个外生变量)的简单线性回归的总和,基本上是使用线性回归作为基础学习器的梯度提升。

问题是,由于我正在对时间序列数据执行滚动窗口回归,因此我必须进行 N × M × T 回归,这超过一百万个 OLS。虽然每个 OLS 都非常快,但在我性能较弱的笔记本电脑上运行需要几个小时。

目前,我正在使用statsmodels.OLS.fit()这样的方式来获取每个 y 的参数,而不是 x i线性回归。的z_matrix是数据矩阵和i表示第i列片的回归。行数约为 100,z_matrix大小约为 100 × 500。

    ols_model = sm.OLS(endog=endog, exog=self.z_matrix[:, i][..., None]).fit()
    return ols_model.params, ols_model.ssr, ols_model.fittedvalues[..., None]
Run Code Online (Sandbox Code Playgroud)

我从 2016 年的上一篇文章中阅读了在 python 中计算许多回归的最快方法?使用重复调用 statsmodels 效率不高,我尝试了建议 numpy 的答案之一,但pinv不幸的是速度较慢:

    # slower: 40sec vs 30sec for …
Run Code Online (Sandbox Code Playgroud)

python regression numpy linear-regression statsmodels

7
推荐指数
1
解决办法
981
查看次数

模块“numpy”没有属性“MachAr”?

我有个问题。当我从“statsmodels.stats.outliers_influence”导入“variance_inflation_factor”时,出现“模块“numpy”没有属性“MachAr””错误,原因是什么?

我曾经在一个项目中执行过这段代码,它工作没有任何问题,但它在后续项目中给出了这个错误

machine-learning linear-regression deep-learning jupyter-notebook

7
推荐指数
1
解决办法
1万
查看次数

使用sklearn时出现“RuntimeWarning: invalid value returned in matmul ret = a @ b”的原因是什么?

Ridge().fit(X_train, y_train)在数据集上使用时遇到了 RuntimeWarning,其中X_train.shape = (9440, 1900)

/Users/username/micromamba/envs/data-science/lib/python3.11/site-packages/sklearn/utils/extmath.py:189: RuntimeWarning: invalid value encountered in matmul
  ret = a @ b
Run Code Online (Sandbox Code Playgroud)

当我减小数据集的大小时,X_train.shape = (1000, 1900)运行时警告就会消失。

可能是什么原因导致此警告以及如何避免它?我确保没有 np.nan、np.inf 和 -np.inf。

python numpy linear-regression scikit-learn

7
推荐指数
1
解决办法
1291
查看次数