ggplot中的回归线函数

时间:2020-05-06 12:27:24

标签: 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)

,您将获得所有数据。但是我已经使用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)

但是在这里,summary函数根本没有提供line函数,R平方值或任何其他结果。

我尝试环顾四周,但是所有答案都是关于如何将结果输入图表的方法。我不想要那样,我只想要您在R中进行正常回归时通常获得的结果。我也尝试使用常规编码,但是该回归似乎与一个ggplot对我不匹配。 / p>

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

1 个答案:

答案 0 :(得分:1)

您说您已使用ggplot进行回归,但尚未使用。您已使用ggplot在数据上绘制回归线

是的,内部ggplot将必须执行回归以生成线,但其工作不是返回可用于数学描述结果的模型对象。它的工作是在正确的位置画一条线。进行ggplot的summary时看到的内容是对制作完全可自定义绘图所涉及的许多元素的总结。回归线只是其中的一小部分,不应期望ggplot对象为您提供适当线性回归模型的所有功能。

您已经在问题中给出了答案。您需要进行单独的回归。

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

library(ggplot2)

set.seed(69)
odds <- data.frame(Date = 1:182, RorderOT1 = cumsum(rbinom(182, 1, 0.5)))

然后创建图。请注意,如果您希望回归直线,则需要在method = "lm"中指定geom_smooth

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')

现在您可以分别进行回归了:


my_model <- lm(RorderOT1 ~ Date, data = odds)
summary(my_model)
#> 
#> Call:
#> lm(formula = RorderOT1 ~ Date, data = odds)
#> 
#> Residuals:
#>     Min      1Q  Median      3Q     Max 
#> -4.3970 -1.9570  0.1362  1.9126  3.6045 
#> 
#> Coefficients:
#>              Estimate Std. Error t value Pr(>|t|)    
#> (Intercept) -1.610528   0.321253  -5.013 1.27e-06 ***
#> Date         0.514329   0.003045 168.924  < 2e-16 ***
#> ---
#> Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#> 
#> Residual standard error: 2.158 on 180 degrees of freedom
#> Multiple R-squared:  0.9937, Adjusted R-squared:  0.9937 
#> F-statistic: 2.854e+04 on 1 and 180 DF,  p-value: < 2.2e-16

现在,您可以浏览有关回归的所有信息,将其插入predict函数,将拟合与其他模型进行比较,查看其协方差矩阵等,因为它是模型对象。

reprex package(v0.3.0)于2020-05-06创建