如何在R中绘制图形上的趋势线

6

我已经到处查找资料,但看到的示例都让我无法理解(是的,我有点慢)。请问是否可以有人解释一下如何在R中构建对数趋势线?

以下是一个可行的示例:

myds <- c(23.0415,13.1965,10.4110,12.2560,9.5910,10.7160,9.9665,8.5845,8.9855,8.8920,10.3425,9.3820,9.0860,9.6870,8.5635,9.0755,8.5960,7.9485,8.3235,8.1910)
plot(myds)

我找不到一种简单的方法来应用回归趋势线。我特别关注对数和线性趋势线。是否可以在不连接任何新包的情况下完成?

亲爱的先生们,请友善地澄清一下!


在两组变量之间绘制趋势,你的示例只有一组。你可以从这里开始:http://www.statmethods.net/graphs/scatterplot.html - katya
@katya 你说得对!另一组是 'x <- c(1:20)'。我会更新我的问题。感谢您的澄清。 - LoomyBear
“对数趋势线”是什么意思,确切地说?是 $y$ 对 $\ln(x)$ 的线性回归还是其他什么? - Glen_b
请确保您的数据示例在R中可执行。 - Glen_b
@Glen_b 感谢您的回复!我已经更新了问题,并提供了一个可行的R示例,请告诉我它是否有效。 - LoomyBear
2个回答

7

由于您的一些数据点缺失,我使用了您提供的六个点:

编辑 - 现在完整的示例可用了

  1. 趋势线只是回归线,而最简单的回归方式就像这样运行:a<-lm(outcome~predictor) -- 在此示例中,对象a将保存您的回归参数。要获取新趋势线模型的值,只需使用predict(model_name)或在您的情况下使用predict(a)

  2. 向图表添加线非常简单。只需使用plot()函数后说出lines(b),其中b指定您想要绘制的线。

总之:

[![myds <- c(23.0415,13.1965,10.4110,12.2560,9.5910,10.7160,9.9665,8.5845,8.9855,8.8920,10.3425,9.3820,9.0860,9.6870,8.5635,9.0755,8.5960,7.9485,8.3235,8.1910)
x <- (1:length(myds))
plot(myds)

#make the main plot
plot(x,myds,ylim=c(5,30),xlim=c(0,20))

#add linear trend
lines(predict(lm(myds~x)),col='green')

#one more trend
lines(predict(lm(myds~log(x))),col='red')][1]][1] 

resulting plot image


谢谢您的回复!请查看我的更新答案,其中包含可工作的示例代码。 - LoomyBear
请问您能否解释一下这里到底发生了什么?为什么要使用那些函数? - LoomyBear
@LoomyBear,你具体是哪一部分感到困惑了? - coulminer
对我来说,把所有的内容都翻译一下吧,因为我不明白正在发生什么。我不想在没有意识到实际发生的情况下使用代码片段。问题是我想要理解它的工作原理,以便在某个时候掌握它。无论如何,谢谢您的答复! - LoomyBear
我建议(这是我让R为我工作的方法)你可以尝试以下步骤:将这个可行的示例粘贴到你的Rstudio/R中,并进行调试。观察每个调用的结果,然后逐步去除函数,例如调用lines(predict(lm(mydsx)),col='green'),然后是predict(lm(mydsx)),最后是lm(myds~x)。通过这种方式,你将理解每个步骤的作用,并为将来自己提供帮助。 - coulminer

2

谢谢你的回复!我已经更新了问题并提供了可工作的示例代码。期间我会检查你给我的链接! - LoomyBear
1
光滑函数链接损坏。 - Zaz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接