标签: regression

Python中的逐步回归

如何在python中执行逐步回归?在SCIPY中有OLS的方法,但我不能逐步进行.在这方面的任何帮助都将是一个很大的帮助.谢谢.

编辑:我正在尝试建立一个线性回归模型.我有5个自变量并使用前向逐步回归,我的目标是选择变量,使我的模型具有最低的p值.以下链接解释了目标:

https://www.google.co.in/url?sa=t&rct=j&q=&esrc=s&source=web&cd=4&ved=0CEAQFjAD&url=http%3A%2F%2Fbusiness.fullerton.edu%2Fisds%2Fjlawrence%2FStat-On-行%2FExcel%2520Notes%2FExcel%2520Notes%2520-%2520STEPWISE%2520REGRESSION.doc&EI = YjKsUZzXHoPwrQfGs4GQCg&USG = AFQjCNGDaQ7qRhyBaQCmLeO4OD2RVkUhzw&BVM = bv.47244034,d.bmk

再次感谢.

python regression scipy

22
推荐指数
3
解决办法
4万
查看次数

R - locfit()与locpoly()的局部线性回归

在给出明显等效的输入时,我试图理解这两个平滑函数的不同行为.我的理解是,locpoly只需要一个固定的带宽参数,同时locfit也可以在其平滑参数中包含一个变化的部分(最近邻分数," nn").我认为将这个变化部分设置为零locfit应该使" h"组件像所用的固定带宽一样locpoly,但显然不是这种情况.

一个工作的例子:

library(KernSmooth)
library(locfit)
set.seed(314)

n <- 100
x <- runif(n, 0, 1)
eps <- rnorm(n, 0, 1)
y <- sin(2 * pi * x) + eps

plot(x, y)
lines(locpoly(x, y, bandwidth=0.05, degree=1), col=3)
lines(locfit(y ~ lp(x, nn=0, h=0.05, deg=1)), col=4)
Run Code Online (Sandbox Code Playgroud)

产生这个情节:

平滑的情节

locpoly给出平滑的绿线,并locfit给出摇摆的蓝线.显然,这里locfit具有较小的"有效"带宽,即使假定的带宽参数对于每个具有相同的值.

这些功能有何不同?

regression r smoothing

22
推荐指数
1
解决办法
6301
查看次数

如何正确使用scikit-learn的高斯过程进行2D输入,1D输出回归?

在发布之前我做了很多搜索,发现这个问题可能正是我的问题.但是,我尝试了答案中提出的建议,但不幸的是,这并没有解决它,我无法添加评论以请求进一步解释,因为我是这里的新成员.

无论如何,我想在Python中使用带有scikit-learn的高斯过程来开始一个简单但真实的案例(使用scikit-learn文档中提供的示例).我有一个名为X的2D输入集(8对2个参数).我有8个相应的输出,聚集在1D阵列y中.

#  Inputs: 8 points 
X = np.array([[p1, q1],[p2, q2],[p3, q3],[p4, q4],[p5, q5],[p6, q6],[p7, q7],[p8, q8]])

# Observations: 8 couples
y = np.array([r1,r2,r3,r4,r5,r6,r7,r8])
Run Code Online (Sandbox Code Playgroud)

我定义了一个输入测试空间x:

# Input space
x1 = np.linspace(x1min, x1max) #p
x2 = np.linspace(x2min, x2max) #q
x = (np.array([x1, x2])).T
Run Code Online (Sandbox Code Playgroud)

然后我实例化GP模型,使其适合我的训练数据(X,y),并在我的输入空间x上进行1D预测y_pred:

from sklearn.gaussian_process import GaussianProcessRegressor
from sklearn.gaussian_process.kernels import RBF, ConstantKernel as C

kernel = C(1.0, (1e-3, 1e3)) * RBF([5,5], (1e-2, 1e2))
gp = GaussianProcessRegressor(kernel=kernel, …
Run Code Online (Sandbox Code Playgroud)

python regression gaussian

22
推荐指数
2
解决办法
6787
查看次数

使用glm在R中指定公式而不明确声明每个协变量

我想强制特定的变量进入glm回归而不完全指定每个变量.我的真实数据集有大约200个变量.到目前为止,我还没有在我的在线搜索中找到这样的样本.

例如(只有3个变量):

n=200
set.seed(39) 
samp = data.frame(W1 = runif(n, min = 0, max = 1), W2=runif(n, min = 0, max = 5)) 
samp = transform(samp, # add A
A = rbinom(n, 1, 1/(1+exp(-(W1^2-4*W1+1))))) 
samp = transform(samp, # add Y
Y = rbinom(n, 1,1/(1+exp(-(A-sin(W1^2)+sin(W2^2)*A+10*log(W1)*A+15*log(W2)-1+rnorm(1,mean=0,sd=.25))))))
Run Code Online (Sandbox Code Playgroud)

如果我想包含所有主要术语,这有一个简单的快捷方式:

glm(Y~., family=binomial, data=samp)
Run Code Online (Sandbox Code Playgroud)

但是说我想要包括所有主要术语(W1,W2和A)加上W2 ^ 2:

glm(Y~A+W1+W2+I(W2^2), family=binomial, data=samp)
Run Code Online (Sandbox Code Playgroud)

这有什么捷径吗?

[在发布之前编辑自己:]这个有效! glm(formula = Y ~ . + I(W2^2), family = binomial, data = samp)

好的,那么这个呢!

我想省略一个主要的术语变量,只包括两个主要术语(A,W2)和W2 ^ 2和W2 ^ 2:A:

glm(Y~A+W2+A*I(W2^2), family=binomial, data=samp)
Run Code Online (Sandbox Code Playgroud)

显然只有几个变量不需要快捷方式,但我使用高维数据.当前数据集"仅"有200个变量,但其他一些变量有成千上万个.

program-entry-point regression r glm

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

逻辑回归的成本函数

在最小二乘模型中,成本函数被定义为预测值和实际值之间的差的平方,作为输入的函数.

当我们进行逻辑回归时,我们将成本函数更改为对数函数,而不是将其定义为sigmoid函数(输出值)和实际输出之间差异的平方.

是否可以更改和定义我们自己的成本函数来确定参数?

regression machine-learning data-mining

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

具有numpy的多元多项式回归

我有很多样本(y_i, (a_i, b_i, c_i)),y假设在a,b,c 多达一定程度上变化为多项式.例如,对于给定的一组数据和2级,我可能会生成该模型

y = a^2 + 2ab - 3cb + c^2 +.5ac

这可以使用最小二乘法完成,并且是numpy的polyfit例程的略微扩展.Python生态系统中是否存在标准实现?

python statistics regression numpy

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

偏最小二乘图书馆

已经有这样的问题,但没有回答,所以我尝试再次发布.有谁知道在C++(或C)中使用偏最小二乘算法的开源实现?或者也许是一个图书馆呢?

c c++ statistics regression least-squares

20
推荐指数
2
解决办法
3942
查看次数

Newey-West标准误差与Mean Groups/Fama-MacBeth估计

我试图让Newey-West标准错误与包中的pmg()(Mean Groups/Fama-MacBeth估算器)输出一起使用plm.

按照这里的例子:

require(foreign)
require(plm)
require(lmtest)
test <- read.dta("http://www.kellogg.northwestern.edu/faculty/petersen/htm/papers/se/test_data.dta")

fpmg <- pmg(y~x, test, index=c("firmid", "year")) # Time index in second position, unlike the example
Run Code Online (Sandbox Code Playgroud)

我可以coeftest直接使用,以获得Fama-MacBeth标准错误:

# Regular “Fama-MacBeth” standard errors
coeftest(fpmg)

# t test of coefficients:
#   
#             Estimate Std. Error t value Pr(>|t|)    
# (Intercept) 0.032470   0.071671   0.453   0.6505    
# x           0.969212   0.034782  27.866   <2e-16 ***
# ---
# Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ …
Run Code Online (Sandbox Code Playgroud)

regression r standard-error

20
推荐指数
1
解决办法
2247
查看次数

在分割训练和测试数据之前或之后标准化数据?

我想将我的数据分成火车和测试集,我应该在拆分之前或之后对数据进行规范化吗?在构建预测模型时是否有任何区别?提前致谢.

split regression machine-learning normalization train-test-split

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

简单的多维曲线拟合

我有一堆数据,通常是a,b,c,...,y形式

其中y = f(a,b,c ......)

它们中的大多数是三个和四个变量,并且有10k到10M的记录.我的一般假设是它们本质上是代数的,例如:

y = P1 a ^ E1 + P2 b ^ E2 + P3 c ^ E3

不幸的是,我上次的统计分析课是在20年前.获得f近似值的最简单方法是什么?开源工具具有非常小的学习曲线(即我可以在一小时左右得到合适的近似值)是理想的.谢谢!

statistics regression best-fit-curve

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