R:将lm()的结果转换为方程式

R:将lm()的结果转换为方程式,r,R,我用的是R,我想把lm()的结果转换成一个方程 我的模型是: Residuals: Min 1Q Median 3Q Max -0.048110 -0.023948 -0.000376 0.024511 0.044190 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 3.17691

我用的是R,我想把lm()的结果转换成一个方程

我的模型是:

 Residuals:
  Min        1Q    Median        3Q       Max 
-0.048110 -0.023948 -0.000376  0.024511  0.044190 

Coefficients:
                    Estimate Std. Error t value Pr(>|t|)    
(Intercept)          3.17691    0.00909  349.50  < 2e-16 ***
poly(QPB2_REF1, 2)1  0.64947    0.03015   21.54 2.66e-14 ***
poly(QPB2_REF1, 2)2  0.10824    0.03015    3.59  0.00209 ** 
B2DBSA_REF1DONSON   -0.20959    0.01286  -16.30 3.17e-12 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Residual standard error: 0.03015 on 18 degrees of freedom
Multiple R-squared: 0.9763, Adjusted R-squared: 0.9724 
F-statistic: 247.6 on 3 and 18 DF,  p-value: 8.098e-15 
残差:
最小1季度中值3季度最大值
-0.048110 -0.023948 -0.000376  0.024511  0.044190 
系数:
估计标准误差t值Pr(>t)
(截距)3.17691 0.00909 349.50<2e-16***
聚(QPB2_参考1,2)1 0.64947 0.03015 21.54 2.66e-14***
聚(QPB2_参考1,2)2 0.10824 0.03015 3.59 0.00209**
B2DBSA_参考1donson-0.20959 0.01286-16.30 3.17e-12***
---
签名。代码:0'***'0.001'***'0.01'*'0.05'.'0.1''1
剩余标准误差:18个自由度上的0.03015
倍数R平方:0.9763,调整后的R平方:0.9724
F-统计量:247.6在3和18 DF上,p-值:8.098e-15
你知道吗

我试着吃点类似的东西

 f <- function(x) {3.17691 + 0.64947*x +0.10824*x^2 -0.20959*1 + 0.03015^2}

f如果您想根据模型计算y-hat,您可以使用
predict

例如:

set.seed(123)
my_dat <- data.frame(x=1:10, e=rnorm(10))
my_dat$y <- with(my_dat, x*2 + e)
my_lm <- lm(y~x, data=my_dat)

summary(my_lm)
现在,我不再手动创建类似于
0.5255+x*1.9180
的函数,而是为
my_lm
调用predict:

predict(my_lm, data.frame(x=11:20))
与此相同的结果(不计算斜率/截距估计值四舍五入的微小误差):


如果要根据模型计算y-hat,可以使用
预测

例如:

set.seed(123)
my_dat <- data.frame(x=1:10, e=rnorm(10))
my_dat$y <- with(my_dat, x*2 + e)
my_lm <- lm(y~x, data=my_dat)

summary(my_lm)
现在,我不再手动创建类似于
0.5255+x*1.9180
的函数,而是为
my_lm
调用predict:

predict(my_lm, data.frame(x=11:20))
与此相同的结果(不计算斜率/截距估计值四舍五入的微小误差):


如果要根据模型计算y-hat,可以使用
预测

例如:

set.seed(123)
my_dat <- data.frame(x=1:10, e=rnorm(10))
my_dat$y <- with(my_dat, x*2 + e)
my_lm <- lm(y~x, data=my_dat)

summary(my_lm)
现在,我不再手动创建类似于
0.5255+x*1.9180
的函数,而是为
my_lm
调用predict:

predict(my_lm, data.frame(x=11:20))
与此相同的结果(不计算斜率/截距估计值四舍五入的微小误差):


如果要根据模型计算y-hat,可以使用
预测

例如:

set.seed(123)
my_dat <- data.frame(x=1:10, e=rnorm(10))
my_dat$y <- with(my_dat, x*2 + e)
my_lm <- lm(y~x, data=my_dat)

summary(my_lm)
现在,我不再手动创建类似于
0.5255+x*1.9180
的函数,而是为
my_lm
调用predict:

predict(my_lm, data.frame(x=11:20))
与此相同的结果(不计算斜率/截距估计值四舍五入的微小误差):


您的输出表明该模型包括使用默认正交多项式的
poly
函数(包括将x和其他东西居中)。在您的公式中没有进行正交化,这就是可能的区别。您可以在调用
poly
中使用
raw=TRUE
重新调整模型,以获得可乘以$x$和$x^2$的原始系数

您可能还对rms软件包中的
功能
感兴趣,该功能可自动从安装的型号创建功能

编辑

以下是一个例子:

library(rms)

xx <- 1:25
yy <- 5 - 1.5*xx + 0.1*xx^2 + rnorm(25)
plot(xx,yy)

fit <- ols(yy ~ pol(xx,2))

mypred <- Function(fit)
curve(mypred, add=TRUE)

mypred( c(1,25, 3, 3.5))
库(rms)

xx您的输出表明模型包括使用默认正交多项式的
poly
函数(包括将x和其他东西居中)。在您的公式中没有进行正交化,这就是可能的区别。您可以在调用
poly
中使用
raw=TRUE
重新调整模型,以获得可乘以$x$和$x^2$的原始系数

您可能还对rms软件包中的
功能
感兴趣,该功能可自动从安装的型号创建功能

编辑

以下是一个例子:

library(rms)

xx <- 1:25
yy <- 5 - 1.5*xx + 0.1*xx^2 + rnorm(25)
plot(xx,yy)

fit <- ols(yy ~ pol(xx,2))

mypred <- Function(fit)
curve(mypred, add=TRUE)

mypred( c(1,25, 3, 3.5))
库(rms)

xx您的输出表明模型包括使用默认正交多项式的
poly
函数(包括将x和其他东西居中)。在您的公式中没有进行正交化,这就是可能的区别。您可以在调用
poly
中使用
raw=TRUE
重新调整模型,以获得可乘以$x$和$x^2$的原始系数

您可能还对rms软件包中的
功能
感兴趣,该功能可自动从安装的型号创建功能

编辑

以下是一个例子:

library(rms)

xx <- 1:25
yy <- 5 - 1.5*xx + 0.1*xx^2 + rnorm(25)
plot(xx,yy)

fit <- ols(yy ~ pol(xx,2))

mypred <- Function(fit)
curve(mypred, add=TRUE)

mypred( c(1,25, 3, 3.5))
库(rms)

xx您的输出表明模型包括使用默认正交多项式的
poly
函数(包括将x和其他东西居中)。在您的公式中没有进行正交化,这就是可能的区别。您可以在调用
poly
中使用
raw=TRUE
重新调整模型,以获得可乘以$x$和$x^2$的原始系数

您可能还对rms软件包中的
功能
感兴趣,该功能可自动从安装的型号创建功能

编辑

以下是一个例子:

library(rms)

xx <- 1:25
yy <- 5 - 1.5*xx + 0.1*xx^2 + rnorm(25)
plot(xx,yy)

fit <- ols(yy ~ pol(xx,2))

mypred <- Function(fit)
curve(mypred, add=TRUE)

mypred( c(1,25, 3, 3.5))
库(rms)

xx如果您希望实际可视化或写出一个复杂的方程(例如,具有受限三次样条曲线变换的东西),我建议使用
rms
包,拟合您的模型,并使用latex函数在latex中查看它

my_lm <- ols(y~x, data=my_dat)
latex(my_lm)

my_lm如果您希望实际可视化或写出一个复杂的方程(例如,具有受限三次样条曲线变换的东西),我建议使用
rms
包,拟合您的模型,并使用latex函数在latex中查看它

my_lm <- ols(y~x, data=my_dat)
latex(my_lm)

my_lm如果您希望实际可视化或写出一个复杂的方程(例如,具有受限三次样条曲线变换的东西),我建议使用
rms
包,拟合您的模型,并使用latex函数在latex中查看它

my_lm <- ols(y~x, data=my_dat)
latex(my_lm)

my_lm如果您希望实际可视化或写出一个复杂的方程(例如,具有受限三次样条变换的东西),我建议使用
rms
包,拟合您的模型,并使用