rloopsfor-loopprecisiongeostatistics

Strange difference of result when in a for loop in R


The first part of the context is not the important part, but here it is: So I'm trying to fit a matern model with the variofit function in R for a school project. When trying fix.kappa == FALSE for it to find itself the best value for kappa failed for some reason. Therefore I tried to find it manually, by trying a series of values for kappa, and searching manually for one that would minimise the MSE.

Here is the strange part : I made this code that calculates the the MSE for each value of kappa between 0.5 and 50:

kappa_list = seq(0.5, 50, length.out = 50)
  MSE_list = c()
  for(kappa_temp in kappa_list){
    
    variofit_temp = variofit(
      emp_variog2,
      fix.nugget = FALSE, nugget = nugget_0,
      fix.kappa = TRUE, kappa = kappa_temp,
      ini.cov.pars = c(part_sill_0,range_0),
      cov.model = "matern",
      messages = F
    )
    
    MSE_list = append(variofit_temp$value, MSE_list)
  }
    
  plot(kappa_list, MSE_list)

Then I remembered that kappa could take a tinier value than 0.5, so I re wrote the code:

kappa_list = seq(0.1, 50, length.out = 50)
  MSE_list = c()
  for(kappa_temp in kappa_list){
    
    variofit_temp = variofit(
      emp_variog2,
      fix.nugget = FALSE, nugget = nugget_0,
      fix.kappa = TRUE, kappa = kappa_temp,
      ini.cov.pars = c(part_sill_0,range_0),
      cov.model = "matern",
      messages = F
    )
    
    MSE_list = append(variofit_temp$value, MSE_list)
  }
    
  plot(kappa_list, MSE_list)

But I realised the value it shows for kappa = 50 is different for this loop than the previous one. I thought at first that it was just a precision error, because the MSE is very sensitive around 50, so I looked if the last value of the sequence was really exactly 50 or 50.00000001, but it seems that it's exactly 50.

I tried some other things, but figured out that "simulating" the loop by playing each line one by one, strangly didn't the problem ! That's the weird part. Here's the code that a played in the console :

> min_kappa = 0.1
> kappa_list = seq(min_kappa, 50, length.out = 5)
> kappa_temp = kappa_list[length(kappa_list)]
> kappa_temp
[1] 50
> variofit_temp = variofit(
+     emp_variog2,
+     fix.nugget = FALSE, nugget = nugget_0,
+     fix.kappa = TRUE, kappa = kappa_temp,
+     ini.cov.pars = c(part_sill_0,range_0),
+     cov.model = "matern",
+     messages = F
+ )
> variofit_temp$value
[1] 1721348178
> variofit_temp = variofit(
+     emp_variog2,
+     fix.nugget = FALSE, nugget = nugget_0,
+     fix.kappa = TRUE, kappa = 50,
+     ini.cov.pars = c(part_sill_0,range_0),
+     cov.model = "matern",
+     messages = F
+ )
> variofit_temp$value
[1] 1721348178
> kappa_list = seq(min_kappa, 50, length.out = 5)
>   print(paste0("kappa_list = ", kappa_list))
[1] "kappa_list = 0.1"    "kappa_list = 12.575" "kappa_list = 25.05"  "kappa_list = 37.525" "kappa_list = 50"    
>   MSE_list = c()
>   for(kappa_temp in kappa_list){
+     set.seed(123)
+     print(paste0("kappa_temp = ", format(kappa_temp, digits = 22, scientific = FALSE)))
+     
+     kappa_temp <- round(kappa_temp, digits = 1)
+     
+     variofit_temp = variofit(
+       emp_variog2,
+       fix.nugget = FALSE, nugget = nugget_0,
+       fix.kappa = TRUE, kappa = kappa_temp,
+       ini.cov.pars = c(part_sill_0,range_0),
+       cov.model = "matern",
+       messages = F
+     )
+     
+     MSE_list = append(variofit_temp$value, MSE_list)
+   }
[1] "kappa_temp = 0.1000000000000000055511"
[1] "kappa_temp = 12.57499999999999928946"
[1] "kappa_temp = 25.05000000000000071054"
[1] "kappa_temp = 37.52499999999999857891"
[1] "kappa_temp = 50"
>   
>   print(paste0("MSE for kappa = ", kappa_list[length(kappa_list)],
+                " is ", MSE_list[length(MSE_list)]))
[1] "MSE for kappa = 50 is 21781768624.2714"

Here is the full code :

# ---- Libraries ----
library(ggplot2)
library(geoR)
library(sp)

# ---- Data importation ----
parana = structure(
  list(
    east = c(
      402.95294, 501.70493, 556.32618, 573.40431, 
      702.42284, 668.54416, 435.8477, 434.01245, 432.46225, 162.14585, 
      169.47663, 717.84675, 713.34332, 726.66302, 618.46885, 661.88082, 
      506.71667, 561.7874, 585.63949, 531.71056, 308.97183, 306.10469, 
      150.12196, 155.3399, 620.00181, 475.05766, 366.87187, 479.49527, 
      615.72353, 599.07288, 566.56758, 484.6613, 445.54377, 498.29528, 
      477.94465, 353.18336, 338.52463, 267.23204, 676.87847, 538.88998, 
      340.96468, 203.93695, 254.26247, 719.46243, 768.50871, 721.65469, 
      687.75359, 599.06043, 541.89327, 449.6865, 357.51524, 222.33953, 
      297.32299, 184.17268, 401.98944, 365.36206, 331.68065, 294.95009, 
      674.31593, 518.6908, 562.79775, 399.91232, 309.69511, 308.21592, 
      397.59888, 206.29791, 289.38003, 246.80304, 279.55302, 231.82964, 
      245.59459, 410.80902, 400.01532, 405.11185, 422.47533, 457.73378, 
      388.47179, 299.07823, 320.4695, 317.7274, 328.1532, 341.96468, 
      346.05942, 371.75809, 377.09969, 395.46678, 244.79297, 232.08612, 
      212.36295, 250.92841, 249.11474, 262.98869, 264.83559, 277.18097, 
      267.48289, 287.42489, 291.21859, 296.594, 295.11083, 211.66139, 
      189.31521, 165.97002, 164.28177, 184.98705, 711.89977, 749.59433, 
      702.73299, 650.76351, 640.73071, 600.65702, 421.28296, 451.44393, 
      419.33262, 377.71707, 357.49565, 372.27262, 287.35834, 285.6835, 
      224.32153, 218.99256, 262.66451, 217.24028, 212.63015, 249.35852, 
      245.90862, 251.23978, 197.7439, 172.85298, 187.83331, 568.34196, 
      541.68923, 493.34111, 471.68756, 445.03235, 479.99208, 333.22941, 
      400.32814, 343.6607, 320.24316, 331.8482, 235.32685, 226.53333, 
      692.54456
    ),
    north = c(
      164.52841, 428.771, 445.27065, 447.04177, 
      272.2959, 261.6707, 286.54044, 317.90506, 288.37001, 286.29984, 
      334.53158, 181.56741, 214.88336, 207.27952, 127.43265, 128.81455, 
      212.86691, 138.89773, 212.59809, 131.62153, 181.97682, 148.69468, 
      162.12624, 154.86652, 112.64927, 83.6448399999998, 92.2122400000002, 
      461.96806, 400.63795, 456.12037, 445.22857, 423.22788, 400.9933, 
      426.92592, 356.79285, 446.50166, 381.74695, 373.39454, 254.18138, 
      308.77851, 271.01967, 309.41998, 240.19632, 177.84707, 199.12352, 
      209.20941, 187.56295, 210.66083, 185.11924, 196.16437, 188.1198, 
      154.59123, 176.26524, 211.03701, 70.3728200000003, 77.4256500000004, 
      110.26775, 113.43465, 185.89772, 378.94032, 362.2088, 354.61628, 
      375.85998, 359.22457, 443.1808, 359.3556, 370.04023, 374.89923, 
      345.88871, 450.35979, 445.05926, 242.10715, 339.85273, 338.04194, 
      262.48003, 306.9234, 299.16275, 285.24334, 329.84407, 279.96009, 
      256.09127, 271.01967, 313.5301, 278.71589, 247.38436, 267.83959, 
      297.28745, 343.23287, 311.44174, 238.28897, 339.84732, 321.6157, 
      312.41223, 281.21777, 255.20257, 273.991, 246.34864, 340.60144, 
      325.80878, 263.38789, 281.3855, 267.90686, 267.86614, 323.79426, 
      124.40728, 175.47115, 179.95796, 178.79807, 180.7536, 199.57391, 
      177.57037, 174.02255, 223.70296, 179.08881, 189.96577, 223.34289, 
      170.56964, 170.54282, 139.84991, 154.52067, 146.1385, 158.17924, 
      217.21353, 142.19763, 147.67415, 131.14844, 205.80201, 192.283, 
      198.18379, 114.86877, 120.51877, 98.4340199999995, 103.94229, 
      105.70264, 118.72419, 119.52053, 70.36, 84.566, 93.49421, 97.3436600000001, 
      92.0340700000003, 114.02601, 170.87504
    ),
    data = c(306.09, 200.88, 
      167.07, 162.77, 163.57, 178.61, 301.54, 282.07, 319.12, 244.67, 
      233.31, 224.46, 206.12, 248.99, 237.87, 222.87, 263.1, 236.91, 
      247.01, 240.58, 304.28, 351.73, 277.92, 323.08, 253.32, 315.33, 
      379.94, 197.09, 199.91, 167, 182.88, 197.1, 257.5, 205.16, 224.07, 
      212.5, 242.08, 247.79, 187.27, 222.54, 313.6, 269.92, 321.69, 
      208.89, 238.62, 248.76, 193.48, 240.48, 265.56, 302.13, 335.41, 
      330.87, 329.49, 262.81, 365.88, 359.08, 344.59, 366.1, 201.84, 
      218.27, 200.38, 229.4, 235.07, 236.25, 228.82, 258.12, 232.17, 
      248.17, 240.66, 184.59, 165.46, 320.31, 232.8, 266.27, 301.1, 
      244.78, 248.57, 299, 269.49, 300.89, 311.81, 317.34, 286.93, 
      306.64, 349.09, 289.11, 280.49, 237.11, 269.68, 307.47, 253.57, 
      226.71, 299.69, 266.62, 331.46, 270.67, 321.15, 258.2, 288.85, 
      255.76, 264.77, 271.76, 313.63, 252.94, 246.75, 215.95, 299.71, 
      203.4, 209.47, 185.63, 304.3, 320.05, 273.01, 295.62, 334.95, 
      350.18, 291.35, 319.57, 367.32, 332.04, 332.18, 323.82, 334.22, 
      345.33, 345.24, 383.13, 348.67, 282.54, 291.07, 245.42, 291.63, 
      288.5, 314.65, 331.85, 305.43, 285.05, 359.51, 356.82, 372.56, 
               413.7, 412.44, 400.96, 199.37
    )
  ), class = "data.frame", row.names = c(NA, -143L)
)

parana_borders = structure(
  list(
    east = c(
      670.204875, 663.718688, 656.066688, 649.971438, 
      642.634563, 635.271688, 628.742125, 622.755875, 617.270813, 610.457, 
      604.42175, 600.262, 592.621, 585.444625, 581.92875, 574.871563, 
      567.99075, 565.6725, 560.5745, 553.86975, 546.261688, 542.435063, 
      537.837375, 534.376563, 529.409438, 528.1835, 520.268156, 513.789781, 
      509.833156, 505.105344, 499.977219, 491.988906, 486.094406, 478.869313, 
      474.045719, 470.925344, 473.2195, 476.876406, 476.248156, 468.888031, 
      462.077594, 457.88275, 453.517656, 448.93925, 440.925281, 433.288844, 
      425.385563, 417.613313, 409.689906, 402.012969, 395.090313, 388.905156, 
      381.620781, 373.674125, 365.810969, 358.028781, 350.718188, 343.347406, 
      336.159188, 329.237156, 321.329844, 313.663188, 305.80225, 298.281313, 
      290.861594, 284.227281, 277.077844, 271.504219, 263.543781, 256.520563, 
      248.8575, 241.656109, 235.520094, 231.700766, 226.547563, 225.8555, 
      219.657406, 216.403594, 215.340656, 216.788484, 213.318719, 212.552734, 
      206.664047, 201.807359, 199.6235, 192.151453, 187.422156, 188.983141, 
      184.399016, 178.437156, 174.949359, 170.373547, 163.837438, 157.839297, 
      155.134688, 150.051703, 144.086359, 138.815359, 138.297594, 137.987281, 
      144.653203, 149.781453, 148.382547, 153.388125, 159.686078, 155.62975, 
      153.212984, 154.687313, 157.737141, 163.658594, 160.675313, 164.211328, 
      172.130047, 165.728922, 158.935609, 157.750344, 159.271844, 158.399938, 
      155.783297, 157.487594, 158.247594, 162.589, 165.391719, 157.077922, 
      157.754734, 160.412781, 162.614203, 166.648797, 163.022797, 163.530688, 
      166.652172, 171.481313, 171.281031, 165.928656, 165.506375, 165.3565, 
      167.316813, 170.03325, 167.977563, 163.491438, 161.473719, 163.997516, 
      170.930609, 178.861531, 185.087641, 190.730766, 190.762938, 193.086672, 
      195.451828, 198.341609, 200.613078, 203.828609, 204.428203, 208.680922, 
      214.333047, 221.180953, 224.122406, 226.760719, 229.690422, 231.72975, 
      231.220078, 235.038641, 240.402063, 247.119406, 254.061875, 261.190891, 
      268.550156, 275.370188, 282.111844, 287.672, 293.985563, 301.211688, 
      307.937906, 315.517, 323.409656, 331.151406, 336.672156, 343.911, 
      351.417813, 356.621688, 362.441, 367.828219, 368.792531, 375.514781, 
      381.666813, 383.534469, 387.002438, 394.258938, 396.523313, 396.644688, 
      402.613531, 408.970906, 416.527875, 423.576406, 430.054938, 437.537875, 
      444.892563, 452.482813, 459.560219, 464.211406, 465.268031, 467.336875, 
      465.45875, 472.983781, 476.725063, 480.198531, 478.720594, 479.167094, 
      480.899469, 482.783188, 483.727938, 483.194875, 485.376531, 488.530688, 
      491.747375, 494.156156, 499.878813, 496.505469, 499.45075, 502.862656, 
      495.062781, 491.5965, 498.709813, 504.852094, 500.144813, 500.993125, 
      505.134438, 503.235969, 506.228938, 508.160219, 509.2235, 503.473406, 
      509.178344, 516.034031, 520.147219, 521.236875, 527.753063, 531.995563, 
      538.783625, 545.707125, 553.139188, 560.024625, 566.74675, 574.19725, 
      582.02375, 589.887375, 597.229313, 603.811188, 605.871, 612.286938, 
      613.857063, 621.287813, 628.639063, 631.817438, 637.492438, 634.20475, 
      629.226563, 630.906875, 638.968875, 632.025, 625.798625, 631.953125, 
      632.155188, 639.860125, 641.00775, 637.589125, 637.24325, 636.01825, 
      638.107625, 641.851813, 642.569438, 647.145438, 646.820625, 642.397875, 
      646.79425, 651.9535, 655.33225, 660.207125, 666.556125, 668.464313, 
      671.055375, 674.749375, 682.068125, 678.8675, 676.1265, 672.481563, 
      670.703063, 672.062563, 679.603063, 686.332625, 694.170375, 700.403375, 
      707.086875, 715.055063, 722.802563, 730.246063, 738.165688, 745.08375, 
      751.146, 748.617188, 746.678813, 746.024563, 742.908813, 745.792625, 
      750.472063, 754.7605, 756.962, 764.113563, 766.416875, 773.6025, 
      779.524438, 780.54775, 781.245688, 782.124438, 785.844, 786.494, 
      793.205188, 798.625563, 793.336563, 788.13475, 783.140375, 779.378563, 
      777.683813, 780.69875, 787.14325, 779.648813, 772.613438, 769.153125, 
      769.227688, 765.929875, 763.41925, 758.943313, 758.803438, 755.02475, 
      758.635313, 755.889125, 749.726063, 741.674063, 735.94675, 729.9425, 
      729.948, 732.53975, 724.347438, 732.07725, 739.425688, 747.238313, 
      749.815563, 757.045125, 765.36825, 761.700813, 756.485438, 752.37975, 
      748.731938, 744.853563, 738.498438, 733.378375, 731.44225, 739.654313, 
      743.952688, 740.586188, 734.3525, 726.756313, 718.759688, 710.763438, 
      702.864375, 695.90125, 688.046, 680.367938, 670.204875),
    north = c(111.761, 
      107.051, 105.242, 100.7915, 97.993, 101.1545, 105.5405, 110.7495, 
      116.397, 120.5795, 119.667, 121.898, 119.9675, 120.177, 115.782, 
      119.532, 115.8975, 110.499, 117.333, 120.929, 121.4415, 119.9445, 
      117.39, 110.527, 104.375, 97.7945, 98.896, 97.3895, 94.0785, 
      94.73, 98.2715, 98.26, 93.482, 90.0065, 83.768, 76.4215, 69.7315, 
      62.9205, 55.255, 52.0755, 49.4895, 46.7695, 53.727, 59.958, 58.8065, 
      60.247, 60.1965, 58.7055, 58.782, 61.107, 64.9245, 70.0245, 72.88, 
      73.6025, 74.997, 75.2305, 77.7445, 78.171, 80.7555, 84.688, 84.1965, 
      83.564, 83.2995, 82.2695, 80.292, 84.5905, 87.9925, 93.4435, 
      94.249, 90.7505, 88.96, 92.3015, 96.4505, 103.246, 109.2565, 
      116.906, 122.0885, 128.354, 136.198, 143.92, 151.001, 158.5445, 
      163.667, 166.2495, 167.25, 169.1685, 165.457, 173.248, 174.298, 
      169.808, 168.851, 169.669, 165.8305, 161.0635, 154.883, 161.614, 
      164.554, 167.945, 176.129, 183.5995, 179.9475, 181.639, 189.343, 
      190.8625, 188.6405, 192.2815, 196.7395, 201.929, 202.4355, 198.6235, 
      201.474, 207.0945, 206.12, 207.3115, 205.5975, 210.408, 213.2685, 
      216.1175, 220.7955, 222.779, 224.8275, 225.788, 228.3695, 228.715, 
      233.218, 242.7005, 248.682, 249.457, 253.9695, 258.6515, 265.281, 
      265.8665, 266.8735, 272.053, 279.341, 286.609, 293.7815, 301.3105, 
      309.0375, 315.479, 323.254, 330.385, 334.1935, 335.4215, 340.129, 
      345.8245, 353.308, 360.851, 368.452, 375.9125, 383.465, 390.732, 
      398.7125, 405.3755, 411.065, 415.045, 422.3715, 429.8395, 437.277, 
      444.9855, 453.0285, 459.9115, 465.8625, 470.151, 474.1165, 477.7425, 
      480.8905, 485.017, 489.3505, 495.0075, 499.934, 503.1085, 499.2055, 
      496.7625, 495.3895, 496.865, 500.318, 497.055, 497.705, 494.4745, 
      496.3685, 491.1985, 491.6935, 489.49, 493.9795, 501.523, 507.9295, 
      504.9965, 497.152, 503.3365, 502.907, 498.0905, 497.7135, 496.94, 
      493.1595, 492.287, 489.9165, 492.5375, 493.548, 490.967, 483.0055, 
      482.201, 490.2815, 491.8335, 484.8545, 482.781, 474.8165, 473.0705, 
      480.3425, 472.1715, 468.8685, 476.651, 481.32, 474.7985, 475.4645, 
      479.503, 474.766, 470.4505, 467.3145, 465.864, 463.654, 461.1125, 
      459.3925, 454.5375, 452.687, 443.8865, 444.3065, 451.4485, 457.7515, 
      463.096, 470.414, 475.6315, 476.1755, 473.357, 467.075, 459.4815, 
      459.3755, 464.782, 464.875, 465.694, 462.5555, 464.8, 463.1885, 
      462.725, 461.2715, 462.521, 465.8655, 464.5585, 460.5085, 456.086, 
      449.595, 446.604, 444.8285, 437.737, 432.025, 425.496, 422.555, 
      420.4055, 419.884, 416.7505, 413.4625, 414.2685, 411.1705, 411.021, 
      403.435, 401.2055, 400.3325, 397.1535, 394.517, 389.9, 382.0995, 
      375.437, 367.535, 361.227, 355.1195, 349.3295, 342.219, 335.8645, 
      330.8, 324.334, 317.356, 310.5265, 307.0365, 300.0215, 292.5305, 
      285.4165, 277.625, 269.8635, 267.0335, 269.963, 269.5365, 273.576, 
      269.09, 269.743, 269.0615, 267.9115, 267.6705, 267.2245, 261.5795, 
      255.2725, 247.9015, 240.0395, 232.673, 226.0275, 222.804, 230.096, 
      237.04, 239.545, 247.0055, 246.4635, 241.737, 235.974, 228.906, 
      221.1565, 214.5615, 208.1565, 204.8215, 205.266, 199.1955, 193.133, 
      186.8895, 180.5855, 187.108, 194.386, 199.101, 198.6915, 194.921, 
      197.2955, 205.304, 200.563, 199.8925, 205.232, 196.9885, 193.748, 
      188.6695, 181.1865, 182.4225, 182.355, 185.664, 190.334, 185.579, 
      179.157, 179.706, 177.326, 175.5195, 176.2825, 172.8805, 171.5365, 
      170.572, 165.084, 159.1015, 152.2355, 145.1195, 138.108, 141.5515, 
      139.683, 135.9955, 136.1905, 133.044, 125.3875, 126.208, 124.2705, 
      124.561, 124.8235, 124.122, 121.1025, 122.3335, 121.7645, 111.761
    )
  ), class = "data.frame", row.names = c(NA, -369L)
)




# ---- Variogram ----
geodat_parana = as.geodata(parana, coords.col = 1:2, data.col = 3)

dist_mat = dist(parana[1:2])
min_dist = min(dist_mat)
max_dist = 500
breaks = seq(from = min_dist, to = max_dist, length.out = 50)

emp_variog = variog(geodat_parana, breaks = breaks, option = "bin")


# ---- Matern Variofit ----
# initial values
nugget_0 = 0
sill_0 = 7000
part_sill_0 = sill_0 - nugget_0
range_0 = 400

for(min_kappa in c(0.1, 0.2, 0.3, 0.4, 0.5)){
  kappa_list = seq(min_kappa, 50, length.out = 5)
  print(paste0("kappa_list = ", kappa_list))
  MSE_list = c()
  for(kappa_temp in kappa_list){
    set.seed(123)
    print(paste0("kappa_temp = ", format(kappa_temp, digits = 22, scientific = FALSE)))
    
    kappa_temp <- round(kappa_temp, digits = 1)
    
    variofit_temp = variofit(
      emp_variog,
      fix.nugget = FALSE, nugget = nugget_0,
      fix.kappa = TRUE, kappa = kappa_temp,
      ini.cov.pars = c(part_sill_0,range_0),
      cov.model = "matern",
      messages = F
    )
    
    MSE_list = append(variofit_temp$value, MSE_list)
  }
  
  print(paste0("MSE for kappa = ", kappa_list[length(kappa_list)],
               " is ", MSE_list[length(MSE_list)]))
  
  plot(kappa_list, MSE_list, ylim = c(1.5e+09, 2e+10))
}

Full output :

[1] "kappa_list = 0.1"    "kappa_list = 12.575" "kappa_list = 25.05"  "kappa_list = 37.525" "kappa_list = 50"    
[1] "kappa_temp = 0.1000000000000000055511"
[1] "kappa_temp = 12.57499999999999928946"
[1] "kappa_temp = 25.05000000000000071054"
[1] "kappa_temp = 37.52499999999999857891"
[1] "kappa_temp = 50"
[1] "MSE for kappa = 50 is 21781768624.2714"
[1] "kappa_list = 0.2"   "kappa_list = 12.65" "kappa_list = 25.1"  "kappa_list = 37.55" "kappa_list = 50"   
[1] "kappa_temp = 0.2000000000000000111022"
[1] "kappa_temp = 12.64999999999999857891"
[1] "kappa_temp = 25.09999999999999786837"
[1] "kappa_temp = 37.54999999999999715783"
[1] "kappa_temp = 50"
[1] "MSE for kappa = 50 is 13067343235.6359"
[1] "kappa_list = 0.3"    "kappa_list = 12.725" "kappa_list = 25.15"  "kappa_list = 37.575" "kappa_list = 50"    
[1] "kappa_temp = 0.2999999999999999888978"
[1] "kappa_temp = 12.72500000000000142109"
[1] "kappa_temp = 25.15000000000000213163"
[1] "kappa_temp = 37.57500000000000284217"
[1] "kappa_temp = 50"
[1] "MSE for kappa = 50 is 7316447596.3402"
[1] "kappa_list = 0.4"  "kappa_list = 12.8" "kappa_list = 25.2" "kappa_list = 37.6" "kappa_list = 50"  
[1] "kappa_temp = 0.4000000000000000222045"
[1] "kappa_temp = 12.80000000000000071054"
[1] "kappa_temp = 25.19999999999999928946"
[1] "kappa_temp = 37.60000000000000142109"
[1] "kappa_temp = 50"
[1] "MSE for kappa = 50 is 4028582940.74542"
[1] "kappa_list = 0.5"    "kappa_list = 12.875" "kappa_list = 25.25"  "kappa_list = 37.625" "kappa_list = 50"    
[1] "kappa_temp = 0.5"
[1] "kappa_temp = 12.875"
[1] "kappa_temp = 25.25"
[1] "kappa_temp = 37.625"
[1] "kappa_temp = 50"
[1] "MSE for kappa = 50 is 2728655320.43029"

Solution

  • The problem is with your reporting. When you print MSE for kappa = 50 is 21781768624.271 you're actually printing the MSE value for some other kappa value, because you're putting new values at the start of the list, not the end of the list, in this expression:

    MSE_list = append(variofit_temp$value, MSE_list)
    

    To fix things, just use

    MSE_list = c(MSE_list, variofit_temp$value)
    

    (or use append() in place of c(), they do the same thing here.)