আর জিস্ট্যাট ক্রিজে () - কোভেরিয়েন্স ম্যাট্রিক্স একক স্থানে [৫.৮৮,47.4.৪,০]: এড়িয়ে চলেছে


10

আমি যখন ক্রিগিংটি সম্পাদন করতে চাই তখন কেবল কখনও কখনও এটি কার্যকর হয়, আমার ডেটাটেটেলে আমি কোন মানগুলি ব্যবহার করি তার উপর নির্ভর করে। ক্রিজে ফাংশনের ফলস্বরূপ আমি পেয়েছি var1.pred: NA NA NA ...এবং var1.var: NA NA NA ...(তবে কেবল যখন আমি আমার ডেটাটেবলে "ভুল" মান ব্যবহার করি))

উদাহরণ স্বরূপ:

  • এটি সর্বদা কাজ করে (এখনও অবধি) যখন আমি কেবল 10 টি মান ব্যবহার করি
  • এটা কাজ করে যখন আমি 50 মান ব্যবহার করেন, কিন্তু শুধুমাত্র নির্দিষ্ট ব্যক্তিদের সঙ্গে
  • যখন আমি 50 টি মান এবং "ভুল" মান ব্যবহার করি তা কার্যকর হয় না
  • এটা কাজ করে যখন আমি 25 মূল্যবোধ ও আগে উল্লেখ "ভুল" মান ব্যবহার

এটি কেন কখনও কখনও কাজ করে এবং কখনও কখনও হয় না তা আমি পাই না। আশ্চর্যের বিষয়টি হ'ল আমি যখন Zwiesel;49.02999878;13.22999954;2.2ডেটাটেবলে যুক্ত করি তখন যখন আমি কম less 20 মান ব্যবহার করি তখন এটি কাজ করে তবে আমি 50 টির বেশি মান ব্যবহার করলে এটি কার্যকর হয় না ...

আমার ভুল কোথায়?

myWeatherTable.csv:

Place;Latitude;Longitude;Temperature
Aachen;50.77999878;6.09999990;3
Abbikenhausen;53.52999878;8.00000000;7.9
Adelbach;49.04000092;9.76000023;3.1
Adendorf;51.61999893;11.69999981;1.9
Alberzell;48.45999908;11.34000015;4.6
...
...

ক্রিগিং ইন্টারপোলেশন সম্পাদনের জন্য আমার কোড

WeatherData <- read.csv(file="myWeatherTable", header = TRUE, sep ";")

coordinates(WeatherData) = ~Longitude + Latitude

vario <-  variogram(log(Temperature) ~1, WeatherData)
vario.fit <- fit.variogram(vario, vgm("Sph"))

min_lon <- min(WeatherData$Longitude)
max_lon <- max(WeatherData$Longitude)
min_lat <- min(WeatherData$Latitude)
max_lat <- max(WeatherData$Latitude)
Longitude.range <- as.numeric(c(min_lon,max_lon))
Latitude.range <- as.numeric(c(min_lat,max_lat))
grd <- expand.grid(Longitude = seq(from = Longitude.range[1], to = Longitude.range[2], by = 0.1),
  Latitude = seq(from = Latitude.range[1],to = Latitude.range[2], by = 0.1))
coordinates(grd) <- ~Longitude + Latitude
gridded(grd) <- TRUE

plot1 <- WU_data_spatial %>% as.data.frame %>%
  ggplot(aes(Longitude, Latitude)) + geom_point(size=1) + coord_equal() + 
  ggtitle("Points with measurements")

plot2 <- grd %>% as.data.frame %>%
  ggplot(aes(Longitude, Latitude)) + geom_point(size=1) + coord_equal() + 
  ggtitle("Points at which to estimate")

grid.arrange(plot1, plot2, ncol = 2)

kriged <- krige(Temperature~ 1, WeatherData, grd, model=variogram_fit)

সতর্কতা :

1: In predict.gstat(g, newdata = newdata, block = block,  ... :
Covariance matrix singular at location [5.88,47.4,0]: skipping...
2: In predict.gstat(g, newdata = newdata, block = block,  ... :
Covariance matrix singular at location [5.98,47.4,0]: skipping...
3: In predict.gstat(g, newdata = newdata, block = block,  ... :
Covariance matrix singular at location [6.08,47.4,0]: skipping...
4: In predict.gstat(g, newdata = newdata, block = block,  ... :
Covariance matrix singular at location [6.18,47.4,0]: skipping...
...
...

উত্তর:


16

এই ত্রুটিটি সাধারণত ফিরে আসে কারণ আপনার সদৃশ অবস্থান রয়েছে। আপনি sp::zerodistফাংশনটি ব্যবহার করে এটি পরীক্ষা করতে পারেন ।

সদৃশ অবস্থানগুলি সরাতে আপনি sp::zerodistবন্ধনী সূচকের মধ্যে কল করেন ।

WeatherData <- WeatherData[-zerodist(WeatherData)[,1],] 
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.