R ggplot中回归的线函数

R ggplot中回归的线函数,r,R,所以我有一个数据集,其中有一个变量是“Date”,它是“1,2,3,…,182”。然后我有另一个变量,它要么增加1,要么增加0。所以它就像“0,1,2,2,2,3,4,…等等,直到95 我做了一个回归,一切都很好。但我似乎无法得到直线函数或R平方值。通常你会使用 lm_eq <- lm(var1 ~var2 + var3) summary(lm_eq) 但是这里的summary函数并没有给出直线函数、R平方值或任何其他结果 我试过四处看看,但所有的答案都是关于如何将结果放入图表中。我不想

所以我有一个数据集,其中有一个变量是“Date”,它是“1,2,3,…,182”。然后我有另一个变量,它要么增加1,要么增加0。所以它就像“0,1,2,2,2,3,4,…等等,直到95

我做了一个回归,一切都很好。但我似乎无法得到直线函数或R平方值。通常你会使用

lm_eq <- lm(var1 ~var2 + var3)
summary(lm_eq)
但是这里的summary函数并没有给出直线函数、R平方值或任何其他结果

我试过四处看看,但所有的答案都是关于如何将结果放入图表中。我不想要这样,我只想要在R中进行正态回归时通常得到的结果。我也尝试过使用常用的编码,但回归似乎与ggplot为我做的不匹配


那么,有没有什么简单的方法可以像通常那样获得结果,或者我需要在代码中指定一些内容?

您说您已经使用ggplot进行了回归,但您没有。您已经使用ggplot在数据上绘制了回归线

是的,ggplot必须在内部执行回归以生成直线,但它的工作不是返回一个模型对象,您可以使用该模型对象以数学方式描述您的结果。它的工作是在正确的位置绘制一条直线。当您对ggplot进行
摘要
时,您所看到的内容是所有许多元素的摘要回归线只是其中的一小部分,而ggplot对象不应该为您提供正确线性回归模型的所有功能

你已经自己给出了问题的答案。你需要做一个单独的回归

首先,我将加载ggplot并创建一些可复制的伪数据,这些数据应该与您的数据非常匹配:

库(ggplot2)
种子(69)
赔率电话:
#>lm(公式=RorderOT1~日期,数据=赔率)
#> 
#>残差:
#>最小1季度中值3季度最大值
#> -4.3970 -1.9570  0.1362  1.9126  3.6045 
#> 
#>系数:
#>估计标准误差t值Pr(>t)
#>(截距)-1.610528 0.321253-5.013 1.27e-06***
#>日期0.514329 0.003045 168.924<2e-16***
#> ---
#>符号代码:0'***'0.001'***'0.01'*'0.05'.'0.1''1
#> 
#>剩余标准误差:180自由度时为2.158
#>倍数R平方:0.9937,调整后的R平方:0.9937
#>F-统计量:1和180 DF上的2.854e+04,p值:<2.2e-16
现在,您可以探索有关回归的所有信息,将其插入
predict
函数,将拟合与其他模型进行比较,查看其协方差矩阵,等等,因为它是一个模型对象


由(v0.3.0)于2020-05-06创建。

除了Allan Camero anwer之外,
geom_smooth
中的默认方法是“黄土”回归,而不是“lm”。这就是为什么lm图与ggplot的线不匹配。谢谢!您知道是否可以使用“黄土”而不是“lm”来获得结果,或者我必须使用“lm”或“多边形”吗“等等?非常感谢!我现在看到了区别。ggplot只是将其可视化,但正如您所说,它没有返回数据的任务。但是我没有在ggplot中使用method=“lm”,这就是为什么我的回归看起来不一样。(ggplot和线性回归中的曲线)。我会尝试做一个不同的回归,这样我现在就可以得到曲线了。但是非常感谢,我终于明白了!
t1 = ggplot() +
   geom_line(data = odds, aes(x = Date, y = RorderOT1), colour="red") +
   geom_smooth(data = odds, aes(x = Date, y = RorderOT1), colour="red") +
   xlab('Match points') +
   ylab('Number of outcomes')
print(t1)
summary(t1)
ggplot(data = odds) +
   geom_line(aes(x = Date, y = RorderOT1), colour="red") +
   geom_smooth(method = "lm", aes(x = Date, y = RorderOT1), colour="red") +
   xlab('Match points') +
   ylab('Number of outcomes')