精华内容
下载资源
问答
  • R语言 一元线性回归

    2016-03-20 18:16:58
    r语言实现一元线性回归

    常用三种检验方法

    X<-matrix(c(
    194.5, 20.79, 1.3179, 131.79,
    194.3, 20.79, 1.3179, 131.79,
    197.9, 22.40, 1.3502, 135.02,
    198.4, 22.67, 1.3555, 135.55,
    199.4, 23.15, 1.3646, 136.46,
    199.9, 23.35, 1.3683, 136.83,
    200.9, 23.89, 1.3782, 137.82,
    201.1, 23.99, 1.3800, 138.00,
    201.4, 24.02, 1.3806, 138.06,
    201.3, 24.01, 1.3805, 138.05,
    203.6, 25.14, 1.4004, 140.04,
    204.6, 26.57, 1.4244, 142.44,
    209.5, 28.49, 1.4547, 145.47,
    208.6, 27.76, 1.4434, 144.34,
    210.7, 29.04, 1.4630, 146.30,
    211.9, 29.88, 1.4754, 147.54,
    212.2, 30.06, 1.4780, 147.80),
    ncol=4, byrow=T,
    dimnames = list(1:17, c("F", "h", "log", "log100")))
    forbes<-as.data.frame(X)
    plot(forbes$F, forbes$log100)
    lm.sol<-lm(log100 ~ F, data=forbes)
    summary(lm.sol) 

    Call:
    lm(formula = log100 ~ F, data = forbes)
    
    Residuals:
         Min       1Q   Median       3Q      Max 
    -0.32261 -0.14530 -0.06750  0.02111  1.35924 
    
    Coefficients:
                 Estimate Std. Error t value Pr(>|t|)    
    (Intercept) -42.13087    3.33895  -12.62 2.17e-09 ***
    F             0.89546    0.01645   54.45  < 2e-16 ***
    ---
    Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
    
    Residual standard error: 0.3789 on 15 degrees of freedom
    Multiple R-squared:  0.995,	Adjusted R-squared:  0.9946 
    F-statistic:  2965 on 1 and 15 DF,  p-value: < 2.2e-16
    


    abline(lm.sol)   将得到的直线方程画在散点图上
    y.res<-residuals(lm.sol) 计算回归方程的残差
    plot( y.res)

    new <- data.frame(x = 0.16)   预测x=0.16时Y的值并给出相应的预测区间
    lm.pred<-predict(lm.sol, new, interval="prediction", level=0.95)
     lm.pred

    fit lwr upr
    [1,] 49.42639 46.36621 52.48657




    
    
    展开全文
  • R语言 一元线性回归

    千次阅读 2014-10-14 11:35:10
    一元线性回归分析 首先介绍回归分析中最基础的情况:一元线性回归分析。它规定模型f函数只能是y=k*x+b的形式,即只使用一个变量x(故称为一元)的线性形式来预测目标变量y。 6.1.1引例 利用某网站历次促销...

    一元线性回归分析

    首先介绍回归分析中最基础的情况:一元线性回归分析。它规定模型f函数只能是y=k*x+b的形式,即只使用一个变量x(故称为一元)的线性形式来预测目标变量y。

    6.1.1引例

    利用某网站历次促销活动中促销让利费用和销售金额的数据(单位是十万元),将使用该数据集来说明线性回归分析的应用。

    使用如下语句来绘制其散点图:

    cost<-c(1.8,1.2,0.4,0.5,2.5,2.5,1.5,1.2,1.6,1.0,1.5,0.7,1.0,0.8)

    sales<-c(104,68,39,43,127,134,87,77,102,65,101,46,52,33)

    data<-data.frame(cost=cost,sales=sales)

    plot(data,pch=16,xlab="cost促销让利费用(十万元)",ylab="sales 促销销量(十万元)")

    sol.lm<-lm(sales~cost,data)

    abline(sol.lm,col="red")

    由上图可以看出,促销让利费用cost变量和促销销量sales变量之间呈直线形式。

    6.1.2 一元线性回归分析的原理及R语言实现

    1. 最小二乘法

    最小二乘法旨在使获得的模型最大限度地拟合样本数据

    2.样本方差和协方差

    3. 计算模型的参数k和b

    (1)估算参数k和b的典型值

    (k<-cov(cost,sales)/cov(cost,cost))#模型参数k

    (b<-mean(sales)-k*mean(cost))        #模型参数b

    也可使用回归方程建立函数lm来计算。代码如下:

    (sol.lm<-lm(sales~cost,data))

    Call:

    lm(formula= sales ~ cost, data = data)

     

    Coefficients:

    (Intercept)         cost 

          13.82        48.60 

    (2)估算参数k和b的取值范围

    在计算得到的回归模型y=k*x+b中,系数b和k只是一个真实模型的典型估算值,其估算范围是:

    [ki-sd(ki)tα/2(n-2),ki+sd(ki)tα/2(n-2)]

    其中,k0表示回归模型y=k×x+b中的b,k1表示k。sd(ki)是参数的标准差,可以使用summary(sol.lm)$coefficients[,2]直接读取,代码如下:

    df<-sol.lm$df.residual

    alpha=0.05

    left<-summary(sol.lm)$coefficients[,1]-summary(sol.lm)$coefficients[,2]*qt(1-alpha/2,df);left

    (Intercept)        cost

     1.667702  40.182861

    right<-summary(sol.lm)$coefficients[,1]+summary(sol.lm)$coefficients[,2]*qt(1-alpha/2,df);right

    (Intercept)        cost

     25.97978   57.01138

    在上述代码中,df为自由度,等于样本数n减去自变量数p,再减1,即为n-2,该自由度可以通过sol.lm$df.residual直接读取,alpha是置信度,典型取值0.05,left是取值范围的最小值,right是取值范围的最大值。

    4. 衡量相关程度

    (1)相关系数r和判定系数r2

    对于引例,可以使用如下代码来计算相关参数。

    (r<-cor(cost,sales))  #相关系数r

    (r2<-r^2)             #判定系数r2

    在lm函产生的结果中也包含了判定系数r的信息。

    summary(sol.lm)

    Call:

    lm(formula= sales ~ cost, data = data)

     

    Residuals:

        Min     1Q  Median      3Q    Max

    -19.701  -3.566  1.430   4.873  14.281

     

    Coefficients:

                Estimate Std. Error t valuePr(>|t|)   

    (Intercept)  13.824      5.579  2.478   0.0291 * 

    cost          48.597      3.862 12.584 2.84e-08 ***

    ---

    Signif.codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05‘.’ 0.1 ‘ ’ 1

     

    Residualstandard error: 9.106 on 12 degrees of freedom

    MultipleR-squared:  0.9296,       Adjusted R-squared:  0.9237

    F-statistic:158.4 on 1 and 12 DF,  p-value: 2.843e-08

     

    上述的Multiple R-squared就是判定系数r2,该系数也可以使用summary(sol.lm)$r.squared来直接读取。

    (2)修正判定系数adjusted.r2

    事实上,判定系数r2在用于多元回归分析时有一个缺点,自变量越多,判定系数r2越大。为了消除这个缺点,可以引入修正判定系数adjusted.r2的概念。

    lm函数产生的结果中也包含了修正判定系数adjusted.r2的信息

    summary(sol.lm)

    Call:

    lm(formula= sales ~ cost, data = data)

     

    Residuals:

        Min     1Q  Median      3Q    Max

    -19.701  -3.566  1.430   4.873  14.281

     

    Coefficients:

                Estimate Std. Error t valuePr(>|t|)   

    (Intercept)  13.824      5.579  2.478   0.0291 * 

    cost          48.597      3.862 12.584 2.84e-08 ***

    ---

    Signif.codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05‘.’ 0.1 ‘ ’ 1

     

    Residualstandard error: 9.106 on 12 degrees of freedom

    MultipleR-squared:  0.9296,       AdjustedR-squared:  0.9237

    F-statistic:158.4 on 1 and 12 DF,  p-value: 2.843e-08

    上述的Adjusted R-squared就是修正判定系数,该系数也可以使用summary(sol.lm)$adj.r.squared来直接读取。

    5. 回归系数的显著性检验

    (1)T检验

    T检验可以检验各个模型参数是否等于0,并计算其等于0时的概率。一般来说,当p.value小于0.05,时,可以认定k不会等于0,其模型结果可用并通过了检验。

    summary(sol.lm)

    Call:

    lm(formula= sales ~ cost, data = data)

     

    Residuals:

        Min     1Q  Median      3Q    Max

    -19.701  -3.566  1.430   4.873  14.281

     

    Coefficients:

                Estimate Std. Error t valuePr(>|t|)   

    (Intercept)  13.824      5.579  2.478   0.0291 *  

    cost          48.597      3.862 12.584 2.84e-08 ***

    ---

    Signif.codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05‘.’ 0.1 ‘ ’ 1

     

    Residualstandard error: 9.106 on 12 degrees of freedom

    MultipleR-squared:  0.9296,       Adjusted R-squared:  0.9237

    F-statistic:158.4 on 1 and 12 DF,  p-value: 2.843e-08

    也可以使用如下代码直接读取结果:

    summary(sol.lm)$coefficients[,4]

    (Intercept)         cost

    2.907896e-022.843305e-08

    (2) F检验

    与T检验不同,F检验用于在整体上检验模型参数是否为0,并计算等于0的概率。

    summary(sol.lm)

    Call:

    lm(formula= sales ~ cost, data = data)

     

    Residuals:

        Min     1Q  Median      3Q    Max

    -19.701  -3.566  1.430   4.873  14.281

     

    Coefficients:

                Estimate Std. Error t valuePr(>|t|)   

    (Intercept)  13.824      5.579  2.478   0.0291 * 

    cost          48.597      3.862 12.584 2.84e-08 ***

    ---

    Signif.codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05‘.’ 0.1 ‘ ’ 1

     

    Residualstandard error: 9.106 on 12 degrees of freedom

    MultipleR-squared:  0.9296,       Adjusted R-squared:  0.9237

    F-statistic:158.4 on 1 and 12 DF,  p-value: 2.843e-08

    其值为2.843e-08,远小于0.05,表示通过了F检验。

    在summary(sol.lm)中只给出了样本自由度\自变量自由度以及F值,可以使用如下代码来直接读取F检验的p-value值。

    (f<-summary(sol.lm)$fstatistic[1])

    (df1<-summary(sol.lm)$fstatistic[2])

    (df2<-summary(sol.lm)$fstatistic[3])

    pf(f,df1,df2,lower.tail=F)

           value

    2.843305e-08

    或者

    1-pf(f,df1,df2)

           value

    2.843305e-08

    6. 模型误差(残差)

    回归模型sol.lm的误差(残差residuals),可用于体现样本点模型预测值与实际数据的差异程度,可通过sol.lm$residuals直接读取误差数据。对已一个正确的回归模型,其误差要服从正态分布。

    shapiro.test(sol.lm$residuals)

    Shapiro-Wilknormality test

     

    data:  sol.lm$residuals

    W= 0.9669, p-value = 0.8329

    说明残差服从正态分布。

    残差的标准误(Residual standard error)可以从整体上体现一个模型的误差情况,它可以用于不同模型间性能的对比。

    summary(sol.lm)

    Call:

    lm(formula= sales ~ cost, data = data)

     

    Residuals:

        Min     1Q  Median      3Q    Max

    -19.701  -3.566  1.430   4.873  14.281

     

    Coefficients:

                Estimate Std. Error t valuePr(>|t|)   

    (Intercept)  13.824      5.579  2.478   0.0291 * 

    cost          48.597      3.862 12.584 2.84e-08 ***

    ---

    Signif.codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05‘.’ 0.1 ‘ ’ 1

     

    Residual standarderror: 9.106 on 12 degrees of freedom

    MultipleR-squared:  0.9296,       Adjusted R-squared:  0.9237

    F-statistic:158.4 on 1 and 12 DF,  p-value: 2.843e-08

    也可以使用summary(sol.lm)$sigma直接读取。

    7. 预测

    在R语言中,使用predict函数可以方便地计算预测值和取值范围。

    下面的代码返回原有14个样本的预测值数据。

    predict(sol.lm)

         1        2         3         4         5        6         7         8         9        10        11        12        13

    101.29856  72.14029 33.26259  38.12230 135.31655135.31655  86.71942  72.14029 91.57914  62.42086  86.71942 47.84173  62.42086

           14

     52.70144

     

    展开全文
  • R语言一元线性回归

    2017-01-08 12:02:25
    #利用residuals()函数计算回归方程的残差 y.res(lm.sol); plot(y.res) text(12,y.res[12], labels="残差异常点",adj=1.1) #剔除残差异常点 i; forbes12(X[i!=12, ]) lm12(log100~F, data=forbes12) summary(lm12) ...
    X <- matrix(c(
    194.5, 20.79, 1.3179, 131.79,
    194.3, 20.79, 1.3179, 131.79,
    197.9, 22.40, 1.3502, 135.02,
    198.4, 22.67, 1.3555, 135.55,
    199.4, 23.15, 1.3646, 136.46,
    199.9, 23.35, 1.3683, 136.83,
    200.9, 23.89, 1.3782, 137.82,
    201.1, 23.99, 1.3800, 138.00,
    201.4, 24.02, 1.3806, 138.06,
    201.3, 24.01, 1.3805, 138.05,
    203.6, 25.14, 1.4004, 140.04,
    204.6, 26.57, 1.4244, 142.44,
    209.5, 28.49, 1.4547, 145.47,
    208.6, 27.76, 1.4434, 144.34,
    210.7, 29.04, 1.4630, 146.30,
    211.9, 29.88, 1.4754, 147.54,
    212.2, 30.06, 1.4780, 147.80),
    ncol=4, byrow=T,
    dimnames = list(1:17, c("F", "h", "log", "log100")))
    forbes<-data.frame(X)
    x<-forbes$F
    y<-forbes$log100
    plot(x, y)
    lm.sol <- lm(y ~ 1+x)
    summary(lm.sol)
    abline(lm.sol)#将得到直线方程画在散点图上
    
    #利用residuals()函数计算回归方程的残差
    y.res<-residuals(lm.sol);
    plot(y.res)
    text(12,y.res[12], labels="残差异常点",adj=1.1)
    
    #剔除残差异常点
    i<-1:17; 
    forbes12<-as.data.frame(X[i!=12, ])
    lm12<-lm(log100~F, data=forbes12)
    summary(lm12)

    展开全文
  • 本节主要介绍了一元线性回归、多元线性、多项式回归。 重点介绍了summary里面每个参数的意义; 创建训练集、测试集; 多项式poly()函数以及I()函数的使用。 ###########一元线性回归############# > library...

    关注微信公共号:小程在线

    关注CSDN博客:程志伟的博客

    R版本:3.6.1

    本节主要介绍了一元线性回归、多元线性、多项式回归。

    重点介绍了summary里面每个参数的意义;

    创建训练集、测试集;

    多项式poly()函数以及I()函数的使用。

    ###########一元线性回归#############

    > library(MASS)
    > data(Boston)    # 506 obs and 14 variables
    > names(Boston)
     [1] "crim"    "zn"      "indus"   "chas"    "nox"     "rm"      "age"    
     [8] "dis"     "rad"     "tax"     "ptratio" "black"   "lstat"   "medv"   

    使用 lm()来拟合数据模型

    > lm1 <- lm(medv ~ rm, data=Boston)
    > lm1

    Call:
    lm(formula = medv ~ rm, data = Boston)

    Coefficients:
    (Intercept)           rm  
        -34.671        9.102  

    > summary(lm1)

    Call:
    lm(formula = medv ~ rm, data = Boston)

    Residuals:
        Min      1Q  Median      3Q     Max 
    -23.346  -2.547   0.090   2.986  39.433 

    Coefficients:
                Estimate Std. Error t value Pr(>|t|)    
    (Intercept)  -34.671      2.650  -13.08   <2e-16 ***
    rm             9.102      0.419   21.72   <2e-16 ***
    ---
    Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

    Residual standard error: 6.616 on 504 degrees of freedom
    Multiple R-squared:  0.4835,    Adjusted R-squared:  0.4825 
    F-statistic: 471.8 on 1 and 504 DF,  p-value: < 2.2e-16

    #Estimate 表示估计系数
    # Std. Error表示估计系数的差异性,这个值要比估计系数小一个数量级
    #t value 表示用于变量的回归系数是否对模型有帮助
    #Pr(>|t|)  变量之间不相关的概率,这个值越小越好
    # **** 表示显著性,*越多越显著

    > summary(lm1)$coefficients
                  Estimate Std. Error   t value     Pr(>|t|)
    (Intercept) -34.670621  2.6498030 -13.08423 6.950229e-34
    rm            9.102109  0.4190266  21.72203 2.487229e-74

    #残差是正态分布的,意味着预测值和实际值之间的差异接近 0

    > summary(lm1)$residuals[1:20]
             1          2          3          4          5          6          7 
    -1.1757458 -2.1740210  3.9719677  4.3740621  5.8178479  4.8440600  2.8487416 
             8          9         10         11         12         13         14 
     5.5924041 -0.0833549 -1.0784415 -8.3735282 -1.1239521  2.7683010  0.9221744 
            15         16         17         18         19         20 
    -2.6158356  1.4689170  3.7496040 -2.3510120  5.2095142  0.7428426 

    #评估模型拟合得好不好的标准,决定系数为 1 时,拟合程度最好

    > summary(lm1)$r.squared
    [1] 0.4835255

    #如果值超过 1,意味着它们之间有关联

    > summary(lm1)$fstatistic
       value    numdf    dendf 
    471.8467   1.0000 504.0000 

    #线性模型 lm1 使用 predict()函数

    > newdata <- data.frame(rm=6)
    > predict(lm1, newdata)
           1 
    19.94203 

    #第一张图是标准的残差曲线图,展示了拟合值下的残差。一些趋于异常值的点在图中标注了出来
    #第二张图是残差的正态百分位数图,残差是正态分布的
    #最后一张图展示了残差 vs.杠杆比率。在这张图中有标记的点表示我们可能想要审查的可疑情况

    > par(mfrow=c(2,2))
    > plot(lm1)

    #cook距离可以看出数据点的异常值
    > par(mfrow=c(1,1))
    > plot(cooks.distance(lm1))



    > ###########多元线性回归#################
    > library(car)
    > data(Prestige)
    > summary(Prestige)
       education          income          women           prestige    
     Min.   : 6.380   Min.   :  611   Min.   : 0.000   Min.   :14.80  
     1st Qu.: 8.445   1st Qu.: 4106   1st Qu.: 3.592   1st Qu.:35.23  
     Median :10.540   Median : 5930   Median :13.600   Median :43.60  
     Mean   :10.738   Mean   : 6798   Mean   :28.979   Mean   :46.83  
     3rd Qu.:12.648   3rd Qu.: 8187   3rd Qu.:52.203   3rd Qu.:59.27  
     Max.   :15.970   Max.   :25879   Max.   :97.510   Max.   :87.20  
         census       type   
     Min.   :1113   bc  :44  
     1st Qu.:3120   prof:31  
     Median :5135   wc  :23  
     Mean   :5402   NA's: 4  
     3rd Qu.:8312            
     Max.   :9517            
    > head(Prestige)
                        education income women prestige census type
    gov.administrators      13.11  12351 11.16     68.8   1113 prof
    general.managers        12.26  25879  4.02     69.1   1130 prof
    accountants             12.77   9271 15.70     63.4   1171 prof
    purchasing.officers     11.42   8865  9.11     56.8   1175 prof
    chemists                14.62   8403 11.68     73.5   2111 prof
    physicists              15.64  11030  5.13     77.6   2113 prof
    > #c创建新的数据集
    > Prestige_noNA <- na.omit(Prestige)
    > n <- nrow(Prestige_noNA)  # Number of observations = 102
    > ntrain <- round(n*0.6)    # 60% for training set
    > set.seed(333)             # Set seed for reproducible results
    > tindex <- sample(n, ntrain) # Create an index
    > trainPrestige <- Prestige_noNA[tindex,]  # Create training set
    > testPrestige <- Prestige_noNA[-tindex,]  # Create test set

    > #查看变量与因变量的关系
    > plot(trainPrestige$prestige, trainPrestige$education) #Trend
    > plot(trainPrestige$prestige, trainPrestige$income) #No trend
    > plot(trainPrestige$prestige, trainPrestige$women) #No trend
    > #线性回归
    > lm2 <- lm(prestige~., data=trainPrestige)
    Error: unexpected input in "lm2 <- lm(prestige?
    > #线性回归
    > lm2 <- lm(prestige ~., data=trainPrestige)
    > summary(lm2)

    Call:
    lm(formula = prestige ~ ., data = trainPrestige)

    Residuals:
         Min       1Q   Median       3Q      Max 
    -13.7864  -4.0290   0.8807   4.5369  16.9482 

    Coefficients:
                  Estimate Std. Error t value Pr(>|t|)    
    (Intercept) -1.544e+01  9.901e+00  -1.560  0.12492    
    education    4.562e+00  8.320e-01   5.483 1.24e-06 ***
    income       9.607e-04  3.204e-04   2.999  0.00415 ** 
    women        7.252e-03  4.543e-02   0.160  0.87379    
    census       1.031e-03  7.390e-04   1.396  0.16876    
    typeprof     5.981e+00  5.773e+00   1.036  0.30495    
    typewc      -1.137e+00  3.962e+00  -0.287  0.77531    
    ---
    Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

    Residual standard error: 7.145 on 52 degrees of freedom
    Multiple R-squared:  0.8406,    Adjusted R-squared:  0.8222 
    F-statistic: 45.71 on 6 and 52 DF,  p-value: < 2.2e-16

    > plot(lm2$fitted, lm2$residuals)
    > #预测
    > predict2 <- predict(lm2, newdata=testPrestige)
    > #相关性
    > cor(predict2, testPrestige$prestige)
    [1] 0.9151361
    > rs <- residuals(lm1)
    > qqnorm(rs)
    > qqline(rs)


    > library(MASS)
    > data(Boston)
    > names(Boston)
     [1] "crim"    "zn"      "indus"   "chas"    "nox"     "rm"     
     [7] "age"     "dis"     "rad"     "tax"     "ptratio" "black"  
    [13] "lstat"   "medv"   
    > # Scatterplot to show curvilinearity of data
    > plot(Boston$dis, Boston$nox)


    > # Fit simple model first
    > fit_d1 <- lm(nox ~ dis, data=Boston)
    > summary(fit_d1)

    Call:
    lm(formula = nox ~ dis, data = Boston)

    Residuals:
         Min       1Q   Median       3Q      Max 
    -0.12239 -0.05212 -0.01257  0.04391  0.23041 

    Coefficients:
                 Estimate Std. Error t value Pr(>|t|)    
    (Intercept)  0.715343   0.006796  105.26   <2e-16 ***
    dis         -0.042331   0.001566  -27.03   <2e-16 ***
    ---
    Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

    Residual standard error: 0.07412 on 504 degrees of freedom
    Multiple R-squared:  0.5917,    Adjusted R-squared:  0.5909 
    F-statistic: 730.4 on 1 and 504 DF,  p-value: < 2.2e-16

    > plot(Boston$dis, Boston$nox)
    > lines(Boston$dis, fit_d1$fitted.values, col=2, lwd=3)


    > # Fit model to predict nox (nitrogen oxides concentration)
    > # using polynomial degree 2 with dis (distances to emp centers)
    > fit_d2 <- lm(nox ~ poly(dis, 2, raw=TRUE), data=Boston)
    > summary(fit_d2)

    Call:
    lm(formula = nox ~ poly(dis, 2, raw = TRUE), data = Boston)

    Residuals:
          Min        1Q    Median        3Q       Max 
    -0.129559 -0.044514 -0.007753  0.025778  0.201882 

    Coefficients:
                               Estimate Std. Error t value Pr(>|t|)    
    (Intercept)                0.843991   0.011196   75.39   <2e-16 ***
    poly(dis, 2, raw = TRUE)1 -0.111628   0.005320  -20.98   <2e-16 ***
    poly(dis, 2, raw = TRUE)2  0.007135   0.000530   13.46   <2e-16 ***
    ---
    Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

    Residual standard error: 0.06361 on 503 degrees of freedom
    Multiple R-squared:  0.6999,    Adjusted R-squared:  0.6987 
    F-statistic: 586.4 on 2 and 503 DF,  p-value: < 2.2e-16

    > plot(Boston$dis, Boston$nox)
    > lines(sort(Boston$dis), fit_d2$fitted.values[order(Boston$dis)], col = 2, lwd = 3)


    > # Fit model to predict nox (nitrogen oxides concentration)
    > # using polynomial degree 3 with dis (distances to emp centers)
    > fit_d3 <- lm(nox ~ poly(dis, 3, raw=TRUE), data=Boston)
    > summary(fit_d3)

    Call:
    lm(formula = nox ~ poly(dis, 3, raw = TRUE), data = Boston)

    Residuals:
          Min        1Q    Median        3Q       Max 
    -0.121130 -0.040619 -0.009738  0.023385  0.194904 

    Coefficients:
                                Estimate Std. Error t value Pr(>|t|)    
    (Intercept)                0.9341281  0.0207076  45.110  < 2e-16 ***
    poly(dis, 3, raw = TRUE)1 -0.1820817  0.0146973 -12.389  < 2e-16 ***
    poly(dis, 3, raw = TRUE)2  0.0219277  0.0029329   7.476 3.43e-13 ***
    poly(dis, 3, raw = TRUE)3 -0.0008850  0.0001727  -5.124 4.27e-07 ***
    ---
    Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

    Residual standard error: 0.06207 on 502 degrees of freedom
    Multiple R-squared:  0.7148,    Adjusted R-squared:  0.7131 
    F-statistic: 419.3 on 3 and 502 DF,  p-value: < 2.2e-16

    > coef(summary(fit_d3))
                                   Estimate   Std. Error    t value      Pr(>|t|)
    (Intercept)                0.9341280720 0.0207076150  45.110365 9.853624e-179
    poly(dis, 3, raw = TRUE)1 -0.1820816950 0.0146973264 -12.388763  6.078843e-31
    poly(dis, 3, raw = TRUE)2  0.0219276580 0.0029329119   7.476412  3.428917e-13
    poly(dis, 3, raw = TRUE)3 -0.0008849957 0.0001727172  -5.123959  4.274950e-07
    > plot(Boston$dis, Boston$nox)
    > lines(sort(Boston$dis), fit_d3$fitted.values[order(Boston$dis)], col = 2, lwd = 3)

    展开全文
  • 基础知识需要了解正态分布,T检验值,P-value值,显著性检验等。 下面是代码与注释讲解: csvpath<-file.choose() csvpath df<...-lm(y~1+x) #建立线性回归模型 jhy xm<-mean(x) #调用me
  • R语言一元线性回归 1、准备数据,数据格式为CSV, 2、线性回归脚本, 3、获取回归参数 获取R2 获取截距和斜率 构造回归函数 将公式、R2贴到图形上 输出图形 ...
  • R语言一元线性回归

    2019-10-06 03:05:55
    只有两个变量,做相关性分析,先来个一元线性回归吧 因为未处理的x,y相关性不显著,于是用了ln(1+x)函数做了个处理(发现大家喜欢用ln,log,lg,指数函数做处理),处理完以后貌似就显著了。。虽然R方也比较小 ...
  • R语言解读一元线性回归模型 R的极客理想系列文章,涵盖了R的思想,使用,工具,创新等的一系列要点,以我个人的学习和体验去诠释R的强大。 R语言作为统计学一门语言,一直在小众领域闪耀着光芒。直到大数据的...
  • R语言——一元线性回归

    万次阅读 2017-06-04 15:42:00
    高尔顿被誉为现代回归的创始人,"回归效应"的发现源于高尔顿的豌豆遗传试验。在这个试验中,高尔顿发现,并非尺寸大的豌豆,其后代尺寸也大,尺寸小的豌豆,其后代尺寸也小。而是具有一种不同的趋势,...
  • 一元线性回归分析的R语言实现(RStudio

    万次阅读 多人点赞 2019-11-09 19:43:13
    回归分析是一种应用广泛的数理统计方法,它是研究变量与变量之间的相关关系,这种关系大致分为两类:确定性关系(能用函数精确描述)和非确定性关系(不能用函数描述)。 变量间的非确定性关系称为相关关系。 在回归...
  • 应用回归分析R语言初学者
  • **#第2章 一元线性回归 #2.1 #R软件读取数据——方法一** x<-c(3.4, 1.8, 4.6, 2.3, 3.1, 5.5, 0.7, 3.0, 2.6, 4.3, 2.1, 1.1, 6.1, 4.8,3.8) y<-c(26.2, 17.8, 31.3, 23.1, 27.5, 36.5, 14.1, 22.3, 19.6, ...
  • 一元线性回归R语言

    2017-12-21 13:04:00
    (https://mirrors.tuna.tsinghua.edu.cn/CRAN/)下载好R之后打开,就可以输入命令,如下,我输入 > y=c(61,57,58,40,90,35,68) 表示创建一个y向量,向量的值是c后面的内容> y 回显y[1] 61 57 58 40 90 35 ...
  • 一元线性回归(原理)

    千次阅读 2015-09-09 00:15:03
    本文主要讲解1)基础原理2)数学推导3)R语言演示,来介绍一元线性回归。 关键词:一元线性回归基础原理、最小二乘法、数学推导、R语言 整体思路: 根据已知点求一条直线,希望直线与各个点距离之和为最小,根据最小...
  • 使用R处理和分析数据,不能使用Excel处理数据。具体要求如下: (1) 展示数据集的结构。 (2) 显示前10条数据记录。 (3) 将变量名重新命名为英文变量名。不能使用Excel处理数据。 (4) 计算自变量的最小值、中位数、...
  • R语言简单(一元线性回归分析

    千次阅读 2016-08-27 18:45:08
    R语言简单(一元线性回归分析简单举一个例子某商业银行2002年主要业务数据 分行编号 不良贷款(亿元) 各项贷款余额(亿元) 1 0.9 67.3 2 1.1 111.3 3 4.8 173.0 4 3.2 80.8 5 7.8 199.7 6 ...
  • 使用lm(),根据已有数据求一元线性回归方程。具体代码如下: x <- c(1,2,3) y <- c(3,5,7) relation <- lm(y~x) # Apply the lm() function. print(relation) 运行代码,得到a = 2,b = 1。结果如下图: ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,635
精华内容 654
关键字:

r语言一元线性回归