从 ADL 模型中删除截距和参数

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

当我尝试使用 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 减号,正如文档所说可以解决问题,但事实并非如此。

r statistics time-series
1个回答
0
投票

在我提供答案之前,我不得不指出你正在做的事情是一个非常糟糕的主意。你说:

问题是我想删除 $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)



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