【问题标题】:Generating a function in R incorporating a pdf在 R 中生成包含 pdf 的函数
【发布时间】:2026-02-20 03:35:01
【问题描述】:

如何在 R 中生成函数 y=2+3*xi+ei where ei=i.i.d.N(0,3^2)?然后我想使用 x 绘制并应用线性回归模型,这只是一个简单的数据序列

【问题讨论】:

    标签: r rstudio


    【解决方案1】:

    定义函数

    f <- function(x, a=2, b=3) a + b * x + rnorm(length(x), mean=0, sd=3^2)
    

    产生一些点

    set.seed(123)
    data <- data.frame(x=0:10, y=f(0:10))
    

    拟合线性模型

    fit <- lm(y~x, data=data)
    summary(fit)
    #Call:
    #lm(formula = y~x, data=data)
    #
    #Residuals:
    #    Min      1Q  Median      3Q     Max
    #-12.832  -6.181  -1.144   6.220  13.823
    #
    #Coefficients:
    #            Estimate Std. Error t value Pr(>|t|)
    #(Intercept)    4.027      5.183   0.777   0.4570
    #x              2.917      0.876   3.330   0.0088 **
    #---
    #Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
    #
    #Residual standard error: 9.188 on 9 degrees of freedom
    #Multiple R-squared:  0.552,    Adjusted R-squared:  0.5022
    #F-statistic: 11.09 on 1 and 9 DF,  p-value: 0.008802
    

    由于较大的误差项,我们看到(Intercept) 存在很大的不确定性。

    显示数据和拟合

    ggplot(data, aes(x=x, y=y)) +
      geom_point() +
      geom_smooth(method='lm', formula=y~x)
    

    【讨论】: