R语言 基于文献方程的模型

i5desfxk  于 2023-04-27  发布在  其他
关注(0)|答案(1)|浏览(116)

首先,我不是很精通R。我想将我的模型与文献中已经存在的方程进行比较。我的模型如下所示:lm(y ~ x1 + x2 + x3, data = train_df),并且已经拟合到我的数据。最好,我想将我的模型与文献中已经存在的模型进行比较,如下所示:y ~ a + bx1 + cx2 + dx3 .我如何将这个已知的公式写成模型,而不需要拟合任何数据?
我尝试运行以下代码Model <- lm(y - a ~ offset(bx1)+ offset(0.89*cx2) + offset (dx3), data = df),但这不起作用,并导致新的系数被拟合。

nfzehxib

nfzehxib1#

这听起来像是你想将你的拟合模型与文献中已知系数a、B、c和d的固定模型进行比较。在这种情况下,你不需要拟合另一个线性模型。相反,你可以编写一个函数,使用给定的系数计算预测值,并将这些预测与你自己的模型的预测进行比较。
下面是一个使用虚构数据集和系数的示例:

1.创建虚拟数据集:

# Load libraries
library(tidyverse)

# Create a fictional dataset
set.seed(123)
train_df <- tibble(
  x1 = rnorm(100),
  x2 = rnorm(100),
  x3 = rnorm(100),
  y = 3 - 2 * x1 + 0.5 * x2 + 1.5 * x3 + rnorm(100, sd = 0.5)
)

2.适合您的型号:

# Fit your model
my_model <- lm(y ~ x1 + x2 + x3, data = train_df)

3.将已知公式写成函数形式:

# Replace a, b, c, and d with the known coefficients from the literature
a <- 1
b <- -1
c <- 0.9
d <- 1.4

known_model_function <- function(x1, x2, x3) {
  a + b * x1 + c * x2 + d * x3
}

4.计算两个模型的预测值并进行比较:

# Calculate predictions
train_df <- train_df %>%
  mutate(my_model_pred = predict(my_model),
         known_model_pred = known_model_function(x1, x2, x3))

5.绘制结果:

# Plot the results
ggplot(train_df) +
  geom_point(aes(x = my_model_pred, y = known_model_pred)) +
  geom_abline(intercept = 0, slope = 1, linetype = "dashed", color = "red") +
  labs(title = "Comparison of Predictions: My Model vs. Known Model",
       x = "My Model Predictions",
       y = "Known Model Predictions")

这将创建一个散点图,比较您的模型和文献中已知模型的预测。如果点落在虚线附近,则表明您的模型的预测与已知模型的预测相似。
此外,如果您有测试数据集,您可以使用其他指标(如均方误差(MSE)或平均绝对误差(MAE))来比较模型和已知模型的性能。

相关问题