2015-07-13 25 views
0

我正在執行多元迴歸以找到預測價格的最佳模型。有關R控制檯中的輸出,請參閱以下內容。R-如何將控制檯數據保存到行/矩陣或數據框中以供將來使用?

我想將第一列(Estimates)存儲到行/矩陣或數據框中以供將來使用,例如使用R shiny在Web上部署。

*(價格= 698.8 + 0.116 *電壓 - 70.72 * VendorCHICONY -36.6 * VendorDELTA-66.8 * VendorLITEON-14.86 * H)*

有人可以請告知??提前致謝。

Call: 
    lm(formula = Price ~ Voltage + Vendor + H, data = PSU2) 

    Residuals: 
    Min  1Q Median  3Q  Max 
    -10.9950 -0.6251 0.0000 3.0134 11.0360 

    Coefficients: 
        Estimate Std. Error t value Pr(>|t|)  
    (Intercept) 698.821309 276.240098 2.530 0.0280 * 
    Voltage   0.116958 0.005126 22.818 1.29e-10 *** 
    VendorCHICONY -70.721088 9.308563 -7.597 1.06e-05 *** 
    VendorDELTA -36.639685 5.866688 -6.245 6.30e-05 *** 
    VendorLITEON -66.796531 6.120925 -10.913 3.07e-07 *** 
    H    -14.869478 6.897259 -2.156 0.0541 . 
    --- 
    Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

    Residual standard error: 7.307 on 11 degrees of freedom 
    Multiple R-squared: 0.9861, Adjusted R-squared: 0.9799 
    F-statistic: 156.6 on 5 and 11 DF, p-value: 7.766e-10 
+3

[掃帚(https://github.com/dgrtwo/。掃帚)可能是有用的 – hrbrmstr

+0

感謝您的回覆,但我不明白,你會解釋更詳細?謝謝。 – Samoth

+0

'coef(模型)'會給你估計。如果您將模型(使用'save')保存到.RData對象中,稍後可以導入它並使用'predict'根據您的值預測價格。 –

回答

2

使用coeflm輸出。

例如

m <- lm(Sepal.Length ~ Sepal.Width + Species, iris) 
summary(m) 

# Call: 
# lm(formula = Sepal.Length ~ Sepal.Width + Species, data = iris) 

# Residuals: 
#  Min  1Q Median  3Q  Max 
# -1.30711 -0.25713 -0.05325 0.19542 1.41253 
# 
# Coefficients: 
#     Estimate Std. Error t value Pr(>|t|)  
# (Intercept)   2.2514  0.3698 6.089 9.57e-09 *** 
# Sepal.Width   0.8036  0.1063 7.557 4.19e-12 *** 
# Speciesversicolor 1.4587  0.1121 13.012 < 2e-16 *** 
# Speciesvirginica 1.9468  0.1000 19.465 < 2e-16 *** 
# --- 
# Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
# 
# Residual standard error: 0.438 on 146 degrees of freedom 
# Multiple R-squared: 0.7259, Adjusted R-squared: 0.7203 
# F-statistic: 128.9 on 3 and 146 DF, p-value: < 2.2e-16 

coef(m) 
#  (Intercept)  Sepal.Width Speciesversicolor Speciesvirginica 
#   2.2513932   0.8035609   1.4587431   1.9468166 

又見names(m)這表明你有些東西可以提取,例如m$residuals(或等同地,resid(m))。

而且methods(class='lm')會告訴你一些在lm上工作的其他函數。

> methods(class='lm') 
[1] add1   alias   anova   case.names  coerce   confint  cooks.distance deviance  dfbeta   dfbetas  drop1   dummy.coef  effects  extractAIC  family   
[16] formula  hatvalues  influence  initialize  kappa   labels   logLik   model.frame model.matrix nobs   plot   predict  print   proj   qr    
[31] residuals  rstandard  rstudent  show   simulate  slotsFromS3 summary  variable.names vcov  

(奇怪的是,「COEF」是不是在裏面嗎?不錯啊)

+0

感謝您的回覆!但是,我強烈建議使用軟件包「掃帚」,它可以很好地將數據存儲爲數據幀類型以便於使用。 – Samoth

0

此外,我想知道是否有命令,以顯示「剩餘百分比」 =(實際值 - 擬合值)/實際值「;目前的‘殘差()’命令可以 只顯示以下信息,但我需要的百分比,而不是

residuals(fit3ab) 
1    2    3    4    5    6  
-5.625491e-01 -5.625491e-01 7.676578e-15 -8.293815e+00 -5.646900e+00 3.443652e+00 
相關問題