gpt4 book ai didi

r - 对数对数图上的线性回归 - 手动绘制 lm() 系数,因为 abline() 产生了不合适的结果

转载 作者:行者123 更新时间:2023-12-02 05:08:53 26 4
gpt4 key购买 nike

我很抱歉,因为我之前也问过类似的问题,但直到现在答案都很好。我用这种方法制作了六个看起来不错的图,但现在我得到了两个奇怪的图。您可以使用此示例看到这种“不合适”:

x=c(9222,187720,42162,7005,3121,7534,21957,272901,109667,1394312,12230,69607471,79183,6389,64859,32479,3535,9414098,2464,67917,59178,2278,33064,357535,11876,21036,11018,12499632,5160,84574)
y=c(0,4,1,0,1,0,0,1,5,13,0,322,0,0,1,1,1,32,0,0,0,0,0,0,0,0,0,33,1,1)
lin=lm(y~x)
plot(x, y, log="xy")
abline(lin, col="blue", untf=TRUE)

这是我使用真实数据绘制的图(左侧为 log-log,右侧为 normal):

freaky slope

我并不太担心丢失的 0 值,因为我假设 lin 仍会考虑这些值,但是正如您在对数图上看到的那样,该线甚至没有在 (1,1) 附近开始。从现在的情况来看,我希望看到 (1000,10) 左右的点。

有人知道这是怎么回事吗?手动绘制 lin 的系数会有帮助吗?如果是这样,谁能向我解释我将如何做到这一点?

最佳答案

首先让我们看一下线性模型的杠杆图:

plot(lin,which=5)

leverage plot of linear model

如您所见,点 12 (y=322) 和 28 (y=33) 影响最大。此外,随着 x 值的增加,拟合线周围的散点变大。因此,做加权回归似乎是合适的:

lin2 <- lm(y~x,weights=1/x)
summary(lin2)

Call:
lm(formula = y ~ x, weights = 1/x)

Weighted Residuals:
Min 1Q Median 3Q Max
-0.006699 -0.003383 -0.002407 0.002521 0.012733

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 3.099e-01 1.092e-01 2.838 0.00835 **
x 4.317e-06 5.850e-07 7.381 4.89e-08 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.005674 on 28 degrees of freedom
Multiple R-squared: 0.6605, Adjusted R-squared: 0.6484
F-statistic: 54.47 on 1 and 28 DF, p-value: 4.888e-08


plot(lin2,which=5)

leverage plot of weighted linear model

这已经更好了。

plot(x, y, log="xy",ylim=c(0.1,350))
abline(lin, col="blue", untf=TRUE)
abline(lin2, col="green", untf=TRUE)

results(请记住,此处未绘制 0 值)

根据您的数据实际描述的内容,您可以考虑使用广义线性模型。

关于r - 对数对数图上的线性回归 - 手动绘制 lm() 系数,因为 abline() 产生了不合适的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15835641/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com