标签: linear-regression

回归与PCA的视觉比较

我正在尝试完善一种比较回归和PCA的方法,其灵感来自博客脑瘫痪,这也是从SO的不同角度进行讨论的.在我忘记之前,非常感谢JD Long和Josh Ulrich的大部分核心.我将在下学期的课程中使用它.对不起,这很长!

更新:我找到了一种几乎可以使用的不同方法(如果可以,请修复它!).我把它贴在了底部.比我能想出的更智能,更简洁的方法!

我基本上遵循了之前的方案,直到某一点:生成随机数据,找出最佳拟合线,绘制残差.这显示在下面的第二个代码块中.但我也在挖掘并编写了一些函数来通过随机点(在这种情况下为数据点)绘制垂直于直线的直线.我认为这些工作正常,它们在First Code Chunk中显示,并且证明它们有效.

现在,第二个代码块使用与@JDLong相同的流程显示整个操作,我正在添加一个结果图的图像.黑色,红色的数据是回归,残差是粉红色,蓝色是第一个PC,浅蓝色应该是法线,但显然它们不是.第一代码块中绘制这些法线的函数似乎很好,但是演示中的某些东西是不正确的:我认为我必须误解某些东西或传递错误的值.我的法线是水平的,这似乎是一个有用的线索(但到目前为止,不是我).有谁能看到这里有什么问题?

谢谢,这让我烦恼了一会儿...... 情节显示问题

第一个代码块(绘制法线和证明它们起作用的函数):

##### The functions below are based very loosely on the citation at the end

pointOnLineNearPoint <- function(Px, Py, slope, intercept) {
    # Px, Py is the point to test, can be a vector.
    # slope, intercept is the line to check distance.

    Ax <- Px-10*diff(range(Px))
    Bx <- Px+10*diff(range(Px))
    Ay <- Ax * slope + intercept
    By <- Bx * slope + intercept
    pointOnLine(Px, Py, Ax, Ay, …
Run Code Online (Sandbox Code Playgroud)

regression r linear-regression pca

9
推荐指数
1
解决办法
2382
查看次数

如何使用R在散点图上创建线性回归线?

我尝试使用abline函数在散点图上创建一个线性回归线.

x= c (1.0325477, 0.6746901, 1.0845737, 1.1123872, 1.1060822, 0.8595918, 0.8512941, 1.0148842, 1.0722369, 0.9019220 , 0.8809147, 1.0358256, 0.9903858, 1.0715174 , 1.1034405, 1.0143966,0.9802365, 0.7177169 , 0.9190783, 0.8408701 ) 
y= c (0.8550177, 0.8352162 ,1.0236998, 1.1071665, 0.6768144, 0.8449983 ,0.7616483, 0.8259199, 1.1539598, 1.4125006, 1.0511816, 0.9366184, 1.4101268, 1.2937913, 1.4147219 ,1.2943105 ,0.7859749, 0.6689330, 0.6940164, 0.8093392)
plot(x,y) 
abline(lm(y ~ x))
Error in int_abline(a = a, b = b, h = h, v = v, untf = untf, ...) : 
 plot.new has not been called yet
Run Code Online (Sandbox Code Playgroud)

请给我任何建议

r linear-regression

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

模型矩阵,列之间具有所有成对交互

假设我有一个带有列的数值数据矩阵,w, x, y, z我还想添加相当于的列,w*x, w*y, w*z, x*y, x*z, y*z因为我希望我的协变量矩阵包含所有成对交互.

有一个干净有效的方法吗?

regression r matrix linear-regression

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

三维线性回归

我想编写一个程序,给定3D空间中的点列表,表示为浮点的x,y,z坐标数组,在此空间中输出最佳拟合线.该线可以/应该是单位矢量和线上的点的形式.

问题是我不知道如何做到这一点.我发现最接近的是这个链接,但老实说,我不明白他是如何从等式到等式的,当我们得到矩阵时,我很丢失.

是否有一个简单的二维线性回归的推广,我可以使用/可以有人解释(数学上)上述链接方法是否有效(以及使用它来计算最佳拟合线需要做什么)?

algorithm linear-regression

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

`poly()`如何生成正交多项式?如何理解"coefs"归来?

我对正交多项式的理解是它们采用的形式

y(x)= a1 + a2(x - c1)+ a3(x - c2)(x - c3)+ a4(x - c4)(x - c5)(x - c6)......最多为期望的条款

其中a1,a2 是每个正交项的系数(在拟合之间变化),并且c1,c2 是正交项内的系数,确定使得这些项保持正交性(使用相同x值的拟合之间一致)

我理解poly()用于拟合正交多项式.一个例子

x = c(1.160, 1.143, 1.126, 1.109, 1.079, 1.053, 1.040, 1.027, 1.015, 1.004, 0.994, 0.985, 0.977) # abscissae not equally spaced

y = c(1.217395, 1.604360, 2.834947, 4.585687, 8.770932, 9.996260, 9.264800, 9.155079, 7.949278, 7.317690, 6.377519, 6.409620, 6.643426)

# construct the orthogonal polynomial
orth_poly <- poly(x, degree …
Run Code Online (Sandbox Code Playgroud)

regression r matrix linear-regression lm

9
推荐指数
1
解决办法
2359
查看次数

在没有拦截的情况下执行戴明回归

我想执行Deming回归(或任何等效的回归方法,包括X和Y变量的不确定性,例如York回归).

在我的应用程序中,我有一个非常好的科学理由来故意将拦截设置为零.但是,我无法找到将其设置为零的方法,无论是在R包中deming,当我-1在公式中使用时都会出错:

df=data.frame(x=rnorm(10), y=rnorm(10), sx=runif(10), sy=runif(10))
library(deming)
deming(y~x-1, df, xstd=sy, ystd=sy)
Error in lm.wfit(x, y, wt/ystd^2) : 'x' must be a matrix
Run Code Online (Sandbox Code Playgroud)

在其他包(如mcr::mcregIsoplotR::yorkMethComp::Deming)中,输入是两个向量x和y,因此我无法输入模型矩阵或修改公式.

你对如何实现这个有任何想法吗?谢谢.

regression r linear-regression least-squares coefficients

9
推荐指数
1
解决办法
279
查看次数

torch.no_grad() 的目的是什么:

考虑以下使用 PyTorch 实现的线性回归代码:

X是输入,Y是训练集的输出,w是需要优化的参数
import torch

X = torch.tensor([1, 2, 3, 4], dtype=torch.float32)
Y = torch.tensor([2, 4, 6, 8], dtype=torch.float32)

w = torch.tensor(0.0, dtype=torch.float32, requires_grad=True)

def forward(x):
    return w * x

def loss(y, y_pred):
    return ((y_pred - y)**2).mean()

print(f'Prediction before training: f(5) = {forward(5).item():.3f}')

learning_rate = 0.01
n_iters = 100

for epoch in range(n_iters):
    # predict = forward pass
    y_pred = forward(X)

    # loss
    l = loss(Y, y_pred)

    # calculate gradients = backward pass
    l.backward()

    # update weights
    #w.data = …
Run Code Online (Sandbox Code Playgroud)

python gradient machine-learning linear-regression pytorch

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

如何用scikit-learn做高斯/多项式回归?

scikit-learn是否提供使用高斯或多项式内核进行回归的工具?我查看了API,但我没有看到.有人在scikit之上构建了一个包 - 学习这样做吗?

machine-learning linear-regression scikit-learn

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

为什么我的线性回归拟合线看起来不对?

我已经绘制了一个二维直方图,我可以用线,点等添加到图中.现在我试图在密集点的区域应用线性回归拟合,但是我的线性回归线似乎完全偏离它的位置应该?为了证明这里是我左边的情节,有一个低回归拟合和线性拟合.

lines(lowess(na.omit(a),na.omit(b),iter=10),col='gray',lwd=3)

abline(lm(b[cc]~a[cc]),lwd=3)
Run Code Online (Sandbox Code Playgroud)

这里a和b是我的值,cc是最密集部分内的点(即大多数点在那里),红色+黄色+蓝色.

在此输入图像描述

为什么我的回归线看起来不像右边那样(手绘合身)?如果我正在绘制一条最合适的线,它会在那里吗?

我有很多类似的情节,但我仍然得到相同的结果....

在此输入图像描述

是否有任何替代线性回归拟合对我来说可能更好?

r scatter-plot linear-regression best-fit

8
推荐指数
1
解决办法
1796
查看次数

在R中提取回归P值

我在查询文件中的不同列上执行多次回归.我的任务是从R中的回归函数lm中提取某些结果.

到目前为止,我有,

> reg <- lm(query$y1 ~ query$x1 + query$x2)
> summary(reg)

Call:
lm(formula = query$y1 ~ query$x1 + query$x2)

Residuals:
    1     2     3     4 
  7.68 -4.48 -7.04  3.84 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)
(Intercept)  1287.26     685.75   1.877    0.312
query$x1      -29.30      20.92  -1.400    0.395
query$x2     -116.90      45.79  -2.553    0.238

Residual standard error: 11.97 on 1 degrees of freedom
Multiple R-squared:  0.9233,    Adjusted R-squared:  0.7699 
F-statistic: 6.019 on 2 and 1 DF,  p-value: 0.277
Run Code Online (Sandbox Code Playgroud)

要提取系数,r平方和F统计,我使用以下内容:

reg$coefficients
summary(reg)$r.squared
summary(reg)$fstatistic
Run Code Online (Sandbox Code Playgroud)

我想提取0.2值的p值. …

r linear-regression p-value

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