Quantcast
Channel: Active questions tagged r - Stack Overflow
Viewing all articles
Browse latest Browse all 201945

Using predicted log change values from regression to predict future prices

$
0
0

I had this problem I was hoping someone could help me with. I have a data set which shows the prices of multiple goods (each a column) on a daily basis for some years. I've run a regression like below for part of my data frame, and then created predicted values for the rest of the time period I have. My predicted values are the log changes in price for pet. For clarification, I have all of the actual values for price of pet already, however I am just trying to predict them using this method.

lin <- lm(diff(log(pet)) ~ diff(log(bron)) + diff(log(yen)) + 
               diff(yal) - 1, data = codData[1:634,])

predictions <- (predict(lin, newdata = codData[635:1025,]))

My problem now is that I want to get the actual predicted value of the price of pet, which I would normally do by multiplying the first predicted log change + 1 by the first price of pet which I want to predict, which would get me the first predicted value of the price of pet. I would then multiply the second predicted log change + 1 by that newly predicted value of pet, and so on and so forth. I'm not sure how I can do this in R though. Does anyone have any ideas?

Thanks ahead of time!

Code to get sample data

codData <- structure(list(date = structure(c(1306800000, 1306886400, 1306972800, 
                                          1307059200, 1307318400, 1307404800, 1307491200, 1307577600, 1307664000, 
                                          1307923200, 1308009600, 1308096000, 1308182400, 1308268800, 1308528000, 
                                          1308614400, 1308700800, 1308787200, 1308873600, 1309132800, 1309219200, 
                                          1309305600, 1309392000, 1309478400, 1309824000, 1309910400, 1309996800, 
                                          1310083200, 1310342400, 1310428800, 1310515200, 1310601600, 1310688000, 
                                          1310947200, 1311033600, 1311120000, 1311206400, 1311292800, 1311552000, 
                                          1311638400, 1311724800, 1311811200, 1311897600, 1312156800, 1312243200, 
                                          1312329600, 1312416000, 1312502400, 1312761600, 1312848000, 1312934400, 
                                          1313020800, 1313107200, 1313366400, 1313452800, 1313539200, 1313625600, 
                                          1313712000, 1313971200, 1314057600, 1314144000, 1314230400, 1314316800, 
                                          1314576000, 1314662400, 1314748800), class = c("POSIXct", "POSIXt"
                                          ), tzone = "UTC"), yal = c(3.05, 2.96, 3.04, 2.99, 3.01, 3.01, 
                                                                     2.98, 3.01, 2.99, 3, 3.11, 2.98, 2.93, 2.94, 2.97, 2.99, 3.01, 
                                                                     2.93, 2.88, 2.95, 3.05, 3.14, 3.18, 3.22, 3.16, 3.12, 3.17, 3.03, 
                                                                     2.94, 2.92, 2.92, 2.98, 2.94, 2.94, 2.91, 2.96, 3.03, 2.99, 3.03, 
                                                                     2.99, 3.01, 2.98, 2.82, 2.77, 2.66, 2.64, 2.47, 2.58, 2.4, 2.2, 
                                                                     2.17, 2.34, 2.24, 2.29, 2.23, 2.17, 2.08, 2.07, 2.1, 2.15, 2.29, 
                                                                     2.23, 2.19, 2.28, 2.19, 2.23), sp = c(1345.2, 1314.55, 1312.9399, 
                                                                                                           1300.16, 1286.17, 1284.9399, 1279.5601, 1289, 1270.98, 1271.83, 
                                                                                                           1287.87, 1265.42, 1267.64, 1271.5, 1278.36, 1295.52, 1287.14, 
                                                                                                           1283.5, 1268.45, 1280.1, 1296.67, 1307.41, 1320.64, 1339.67, 
                                                                                                           1337.88, 1339.22, 1353.22, 1343.8, 1319.49, 1313.64, 1317.72, 
                                                                                                           1308.87, 1316.14, 1305.4399, 1326.73, 1325.84, 1343.8, 1345.02, 
                                                                                                           1337.4301, 1331.9399, 1304.89, 1300.67, 1292.28, 1286.9399, 1254.05, 
                                                                                                           1260.34, 1200.0699, 1199.38, 1119.46, 1172.53, 1120.76, 1172.64, 
                                                                                                           1178.8101, 1204.49, 1192.76, 1193.89, 1140.65, 1123.53, 1123.8199, 
                                                                                                           1162.35, 1177.6, 1159.27, 1176.8, 1210.08, 1212.92, 1218.89), 
                       pet = c(102.63, 100.13, 100.54, 100.49, 98.85, 98.98, 100.93, 
                               101.71, 99.02, 96.98, 99.17, 95.29, 94.96, 92.96, 93.25, 
                               93.4, 94.59, 91.75, 91.25, 90.81, 92.89, 94.93, 94.92, 94.7, 
                               96.8, 96.64, 98.49, 96.31, 95.05, 96.77, 97.89, 95.73, 97.32, 
                               96, 97.7, 98.14, 99.25, 99.82, 99.13, 99.44, 97.31, 97.13, 
                               95.92, 95.33, 93.25, 91.93, 86.44, 87.07, 80.74, 81.12, 81.55, 
                               85.46, 85.25, 87.89, 86.93, 87.45, 81.58, 82.63, 84.12, 86.12, 
                               85.17, 84.94, 85.42, 87.45, 88.76, 88.91), bron = c(419.25, 
                                                                                   409.5, 409.7, 412.4, 412.25, 414.65, 411.25, 410.5, 404.45, 
                                                                                   403.38, 415.85, 411.63, 412.3, 410.05, 407.7, 408.35, 405.85, 
                                                                                   406.58, 408.45, 407.2, 409.85, 421.8, 426.45, 430.25, 432.95, 
                                                                                   432.4, 442.15, 439.08, 434.5, 438.52, 438.52, 437.95, 440.73, 
                                                                                   440.55, 446.45, 442.42, 437.92, 440.2, 440.33, 447.3, 443.15, 
                                                                                   447.3, 448.3, 441, 438.3, 433.65, 421.4, 412.35, 393.05, 
                                                                                   403.55, 389.5, 404.1, 399.5, 403.67, 399.25, 404, 394.13, 
                                                                                   396.85, 393.98, 401.25, 401.27, 409.17, 409.8, 409.5, 414.7, 
                                                                                   418.2), yen = c(929.87, 932.16, 927.79, 922.76, 925.77, 921.77, 
                                                                                                   925.73, 926.87, 934, 929.98, 928.28, 939.99, 939.99, 934.44, 
                                                                                                   934.93, 929.78, 932.43, 936.68, 940.12, 938.95, 935.56, 930.47, 
                                                                                                   927.23, 925.86, 929.43, 932.42, 930.49, 931.15, 939.64, 938.86, 
                                                                                                   929.71, 930.59, 929.31, 931.59, 929.23, 925.3, 919.2, 919.95, 
                                                                                                   918.83, 912.58, 917.17, 919.02, 915.52, 918.61, 920.61, 918.09, 
                                                                                                   932.46, 926.3, 931.17, 921.45, 931.42, 929.27, 929.41, 922.31, 
                                                                                                   923.17, 920.27, 926.05, 924.52, 926.53, 923.23, 926.24, 929.12, 
                                                                                                   923.74, 922.74, 924.79, 925.04)), row.names = c(NA, -66L), class = c("tbl_df", 
                                                                                                                                                                        "tbl", "data.frame"))

Data picture


Viewing all articles
Browse latest Browse all 201945

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>