当我尝试使用 dLagM 包构造 ADL(1,3) 时遇到问题。问题是我想删除 $X_t$ 和截距,因为两者的 p 值都超过 0.05。但当我努力去做的时候。它要么删除 Intercept,要么删除 X_t。因此,我想问你们是否可以帮助我解决这个问题,以便两者都从模型中删除。我已经尝试阅读该软件包的文档,但它也没有帮助我。我的代码如下所示
# Define your data
x <- var_data_chow$Electricity_price
y <- var_data_chow$Electricity_consumption
# Parameters to remove
rem.p <- 0 # 0 removes the main effect of X.t
rem.q <- -1 # remove lagged terms
# Create the remove list
remove <- list(p = rem.p, q = rem.q)
# Adjusted model with parameters removed
model.ardl <- ardlDlm(x = x, y = y, p = 1, q = 3, remove = remove,)
# Display the summary of the adjusted model
summary(model.ardl)
我已经尝试阅读 R 包的文档,并尝试更改参数并对 rem.q 使用 -1 减号,正如文档所说可以解决问题,但事实并非如此。
在我提供答案之前,我不得不指出你正在做的事情是一个非常糟糕的主意。你说:
问题是我想删除 $X_t$ 和截距,因为两者的 p 值都超过 0.05
请、请、请不要仅仅因为 p 值高于某个任意阈值就从模型中删除变量(包括截距)。这是非常糟糕的做法,只会导致各种偏见。 SO 的姊妹网站Cross Validated 上有大量有关此主题的信息。如果您确实需要这样做,那么您可以使用此代码或其变体:
library(dLagM)
library(dynlm)
set.seed(123)
n <- 100 # Number of observations
time <- 1:n
electricity_price <- 0.5 * time + rnorm(n, mean = 0, sd = 2)
electricity_consumption <- 2 * electricity_price + rnorm(n, mean = 0, sd = 3)
var_data_chow <- data.frame(Electricity_price = electricity_price, Electricity_consumption = electricity_consumption)
x <- var_data_chow$Electricity_price
y <- var_data_chow$Electricity_consumption
# Lagged variables
y_lag1 <- c(NA, y[-length(y)])
y_lag2 <- c(NA, NA, y[-(length(y)-1):-(length(y))])
y_lag3 <- c(NA, NA, NA, y[-(length(y)-2):-(length(y))])
x_lag1 <- c(NA, x[-length(x)])
data <- data.frame(y = y, y_lag1 = y_lag1, y_lag2 = y_lag2, y_lag3 = y_lag3, x_lag1 = x_lag1)
# Remove rows with NA values
data <- na.omit(data)
# Fit the model without intercept and main effect of X.t
model <- dynlm(y ~ y_lag1 + y_lag2 + y_lag3 - 1, data = data)
summary(model)