Tôi đã cố gắng tự động hóa một đoạn mã của mình để chương trình trở nên ít tẻ nhạt. Về cơ bản, tôi đã cố gắng thực hiện lựa chọn biến theo từng bước bằng cách sử dụng fastbw()
trong gói rms. Tôi muốn vượt qua danh sách các biến bởi fastbw()
chọn vào một công thức như y ~ x1+x2+x3
, "x1" "x2" "x3" là danh sách các biến bởi fastbw()
chuyển một vectơ biến thành công thức lm()
Ở đây chọn là mã tôi đã cố gắng và đã không làm việc
olsOAW0.r060 <- ols(roll_pct~byoy+trans_YoY+change18m,
subset= helper=="POPNOAW0_r060",
na.action = na.exclude,
data = modelready)
OAW0 <- fastbw(olsOAW0.r060, rule="p", type="residual", sls= 0.05)
vec <- as.vector(OAW0$names.kept, mode="any")
b <- paste(vec, sep ="+") ##I even tried b <- paste(OAW0$names.kept, sep="+")
bestp.OAW0.r060 <- lm(roll_pct ~ b ,
data = modelready,
subset = helper =="POPNOAW0_r060",
na.action = na.exclude)
Tôi mới đến R và vẫn còn havent kéo theo đường cong học tập dốc, vì vậy xin lỗi vì những sai lầm lập trình rõ ràng. Bất kỳ trợ giúp nào được đánh giá cao
JJoran, thankyou, tôi vẫn gặp lỗi. Hãy xem hpi <- paste ("byoy", "change18m", "change24m", "change18m0", "change24m0", "lag3byoy", "lag3change18m" , "lag3change24m", "lag6byoy", "lag6change18m", "lag6change24m", "trans_YoY", sep = "+") hpi.form <- as.formula (dán ("roll_pct ~", "hpi", sep = "")) lmNGC0.r060 <- lm (hpi.form, tập hợp con = helper == "POPNOANGC0_r060", na.action = na.exclude, data = modelready) > Lỗi trong model.frame.default (công thức = như .công thức (dán ("roll_pct ~", "hpi",: độ dài biến khác nhau (được tìm thấy cho 'hpi') – Anand
@ user1199861 Bạn đặt 'hpi' trong dấu ngoặc kép ở dòng thứ hai. Nhập' hpi.form' vào bảng điều khiển và bạn sẽ thấy lý do tại sao điều này là sai – joran
Joran, cảm ơn một lần nữa, tôi nghĩ rằng lm() không phải là nén đối tượng "hpi" vào công thức như chuỗi ký tự. Khi tôi đã thử gõ các biến vào công thức lm(), nó đã làm việc – Anand