如何将已知的线性方程拟合到我在 R 中的数据以获得 R2 和 AIC

问题描述 投票:0回答:0

我知道我想拟合我的 x,y 数据的直线方程,我想将其拟合与

lm
为相同的 x,y 数据生成的 OLS 模型进行比较。这是我的代表:

# data

dat<-structure(list(Q.x = c(26.25, 8.66, 6.4, 4.11, 5.95, 7.82, 2.75, 
1.36, 8.69, 11.16, 2.89, 1.21, 3.11, 7.11, 15.21, 2.41, 3.09, 
8.98, 2.72, 1.17, 4.5, 2.83, 2.6, 13.17, 2.33, 2.29, 2.08, 3.37, 
7.9, 3.11, 4.53, 4.7, 3.82, 4.81, 1.62, 3.96, 3.96, 2.92, 10.45, 
4.36), Q.y = c(8.47, 2.49, 1.27, 1.7, 1.35, 2.08, 0.72, 0.36, 
2.41, 3.06, 0.71, 0.25, 0.76, 1.55, 3.77, 0.46, 0.85, 1.15, 0.65, 
0.29, 0.96, 0.69, 0.75, 5.8, 0.62, 0.65, 0.45, 1.05, 1.81, 0.92, 
1.08, 0.86, 0.94, 1.19, 0.45, 0.96, 0.91, 0.85, 4.28, 1.67), 
    Q.DA = c(6.19, 2.04, 1.51, 0.97, 1.4, 1.84, 0.65, 0.32, 2.05, 
    2.63, 0.68, 0.28, 0.73, 1.68, 3.58, 0.57, 0.73, 2.12, 0.64, 
    0.27, 1.06, 0.67, 0.61, 3.1, 0.55, 0.54, 0.49, 0.79, 1.86, 
    0.73, 1.07, 1.11, 0.9, 1.13, 0.38, 0.93, 0.93, 0.69, 2.46, 
    1.03)), row.names = c(NA, 40L), class = "data.frame")

# OLS model to the x,y data

OLS<-lm(dat$Q.y~dat$Q.x)

# AIC for OLS model

AIC(OLS)

# plot of what I want:

plot(dat$Q.x, dat$Q.y)

abline(OLS)

points(dat$Q.x, dat$Q.DA, col = 'red')

dat$Q.DA
中的数据与
dat$Q.x
中的数据相同乘以一个比例因子(在本例中比例因子为0.2357143)。因此,我试图与 x,y 数据的 OLS 模型进行比较的模型也是方程 y = m*x + b 的直线,其中 y 是
dat$Q.y
,x 是
dat$Q.x
,而不是使用 OLS 求解 m 和 b,m 是比例因子,b 为 0。与 OLS 线(图中的黑线)相比,我如何确定这条已知线与数据(图中的黑点)的拟合程度?我的想法是使用 R-square 和 AIC。

这里提出了这个问题:How to fit a known linear equation to my data in R?

在 Allan Cameron 的回答中,他说试图将

lm
强制到已知的斜率并截距并不是回答 OP 问题的最佳方法。但是,我的情况有所不同,因为除了 R 平方之外我还需要 AIC,所以我的想法是我需要强制
lm
这样我就可以获得一个模型对象来使用
AIC()
。也许解决方案在于不同的方法(即不使用
lm
)?任何帮助深表感谢。谢谢。

r lm
© www.soinside.com 2019 - 2024. All rights reserved.