একটি নির্ভরশীল পরিবর্তনশীল আছে?
এক্সেলের ট্রেন্ড লাইনটি স্বতন্ত্র ভেরিয়েবল "দীর্ঘ " এর উপর নির্ভরশীল পরিবর্তনশীল "ল্যাট" এর রিগ্রেশন থেকে । আপনি যখন নির্ভরশীল পরিবর্তনশীলকে মনোনীত না করেন এবং অক্ষাংশ এবং দ্রাঘিমাংশ উভয়কে সমানভাবে বিবেচনা করেন তখন আপনি যাকে "সাধারণ জ্ঞান রেখা" বলছেন তা পাওয়া যাবে । আধুনিক পিসিএ প্রয়োগ করে প্রাপ্ত করা যেতে পারে । বিশেষত, এই ভেরিয়েবলগুলির কোভারিয়েন্স ম্যাট্রিক্সের ইগেন ভেক্টরগুলির মধ্যে এটি একটি। আপনি এটিকে কোনও প্রদত্ত থেকে স্বল্পতম দূরত্বকে একটি লাইনের দিকে নির্দেশিত রেখা হিসাবে ভাবতে পারেন , যেমন আপনি একটি লাইনের একটি লম্ব আঁকেন এবং প্রতিটি পর্যবেক্ষণের জন্য তাদের যোগফলকে হ্রাস করুন।(xi,yi)
আপনি কীভাবে এটি আর তে করতে পারেন তা এখানে:
> para <- read.csv("para.csv")
> plot(para)
>
> # run PCA
> pZ=prcomp(para,rank.=1)
> # look at 1st PC
> pZ$rotation
PC1
lon 0.09504313
lat 0.99547316
>
> colMeans(para) # PCA was centered
lon lat
-0.7129371 53.9368720
> # recover the data from 1st PC
> pc1=t(pZ$rotation %*% t(pZ$x) )
> # center and show
> lines(pc1 + t(t(rep(1,123))) %*% c)
আপনি এক্সেল থেকে যে ট্রেন্ড লাইনটি পেয়েছেন তা পিসিএর আইগান ভেক্টর হিসাবে একটি সাধারণ জ্ঞান হিসাবে যখন আপনি বুঝতে পারবেন যে এক্সেল রিগ্রেশনে ভেরিয়েবলগুলি সমান নয়। এখানে আপনি থেকে পর্যন্ত একটি উল্লম্ব দূরত্ব হ্রাস করছেন , যেখানে y- অক্ষটি দ্রাঘিমাংশ এবং এক্স-অক্ষ একটি দ্রাঘিমাংশ। y ( x i )yiy(xi)
আপনি ভেরিয়েবলগুলি সমানভাবে চিকিত্সা করতে চান কিনা তা লক্ষ্য নির্ভর করে। এটি ডেটার সহজাত গুণ নয় quality তথ্য বিশ্লেষণের জন্য আপনাকে সঠিক পরিসংখ্যানের সরঞ্জামটি বেছে নিতে হবে, এক্ষেত্রে রিগ্রেশন এবং পিসিএর মধ্যে নির্বাচন করুন।
জিজ্ঞাসা করা হয়নি এমন একটি প্রশ্নের উত্তর
সুতরাং, আপনার ক্ষেত্রে কেন এক্সেলের একটি (রিগ্রেশন) ট্রেন্ড লাইন আপনার ক্ষেত্রে উপযুক্ত সরঞ্জাম বলে মনে হচ্ছে না? কারণটি হ'ল ট্রেন্ড লাইনটি এমন প্রশ্নের উত্তর যা জিজ্ঞাসা করা হয়নি। কারণটা এখানে.
এক্সেল রিগ্রেশন প্যারামিটারগুলি অনুমান করার চেষ্টা করছে । সুতরাং, প্রথম সমস্যাটি হল অক্ষাংশটি এমনকি দ্রাঘিমাংশের কোনও ক্রিয়াকলাপ নয়, কঠোরভাবে বলা (পোস্টের শেষে নোটটি দেখুন), এবং এটি এমনকি মূল সমস্যাও নয়। আসল সমস্যাটি হ'ল আপনি প্যারাগ্লাইডারের অবস্থান সম্পর্কেও আগ্রহী নন, আপনি বাতাসে আগ্রহী।lat=a+b×lon
ভাবুন তো বাতাস নেই। একটি প্যারাগ্লাইডার বার বার একই বৃত্ত তৈরি করবে। ট্রেন্ড লাইন কি হবে? স্পষ্টতই, এটি সমতল অনুভূমিক রেখা হবে, এর opeাল শূন্য হবে, তবুও এর অর্থ এই নয় যে বাতাসটি অনুভূমিক দিকে প্রবাহিত হচ্ছে!
যখন y- অক্ষ বরাবর একটি শক্ত বায়ু আছে তার জন্য এখানে একটি সিমুলেটেড প্লট রয়েছে, যখন কোনও প্যারাগ্লাইডার নিখুঁত বৃত্ত তৈরি করছে making আপনি দেখতে পারেন যে লিনিয়ার রিগ্রেশন অযৌক্তিক ফলাফল, একটি অনুভূমিক প্রবণতা রেখা উত্পাদন করে। আসলে এটি কিছুটা নেতিবাচক হলেও তাৎপর্যপূর্ণ নয়। বাতাসের দিকটি একটি লাল রেখার সাথে দেখানো হয়েছে:y∼x
সিমুলেশন জন্য আর কোড:
t=1:123
a=1 #1
b=0 #1/10
y=10*sin(t)+a*t
x=10*cos(t)+b*t
plot(x,y,xlim=c(-60,60))
xp=-60:60
lines(b*t,a*t,col='red')
model=lm(y~x)
lines(xp,xp*model$coefficients[2]+model$coefficients[1])
সুতরাং, বাতাসের দিকটি স্পষ্টভাবে ট্রেন্ড লাইনের সাথে একত্রিত নয়। তারা অবশ্যই লিঙ্কযুক্ত, তবে একটি অযৌক্তিক উপায়ে। সুতরাং, আমার বক্তব্য যে এক্সেল ট্রেন্ড লাইনটি কিছু প্রশ্নের উত্তর, তবে আপনি যা জিজ্ঞাসা করেছিলেন তা নয়।
পিসিএ কেন?
আপনি যেমনটি লক্ষ্য করেছেন যে প্যারাগ্লাইডারের গতির কমপক্ষে দুটি উপাদান রয়েছে: একটি প্যারাগ্লাইডার দ্বারা নিয়ন্ত্রিত একটি বায়ু এবং বৃত্তাকার গতি সহ প্রবাহ। আপনি যখন আপনার প্লটের বিন্দুগুলি সংযুক্ত করেন তখন এটি স্পষ্টভাবে দেখা যায়:
একদিকে, বৃত্তাকার গতি আপনার কাছে সত্যই উপদ্রব: আপনি বাতাসে আগ্রহী। অন্যদিকে, আপনি বাতাসের গতি পর্যবেক্ষণ করেন না, আপনি কেবল প্যারাগ্লাইডারটি পর্যবেক্ষণ করেন। সুতরাং, আপনার লক্ষ্য পর্যবেক্ষণযোগ্য প্যারাগ্লাইডারের লোকেশন পঠন থেকে অব্যবহারযোগ্য বাতাস অনুমান করা। এটি হ'ল পরিস্থিতি যেখানে ফ্যাক্টর বিশ্লেষণ এবং পিসিএ-এর মতো সরঞ্জাম কার্যকর হতে পারে।
পিসিএর উদ্দেশ্য হ'ল আউটপুটগুলির মধ্যে সম্পর্কগুলি বিশ্লেষণ করে একাধিক আউটপুট নির্ধারণ করে এমন কয়েকটি কারণকে বিচ্ছিন্ন করা। এটি কার্যকর হয় যখন আউটপুটটি লৌকিকভাবে ফ্যাক্টরের সাথে যুক্ত হয়, যা আপনার উপাত্তের ক্ষেত্রে ঘটে থাকে: বায়ু প্রবাহটি বৃত্তাকার গতির স্থানাঙ্কগুলিতে কেবল যুক্ত করে, এজন্যই এখানে পিসিএ কাজ করছে।
পিসিএ সেটআপ
সুতরাং, আমরা প্রতিষ্ঠিত করেছি যে পিসিএর এখানে একটি সুযোগ থাকা উচিত তবে আমরা কীভাবে এটি সেট আপ করব? একটি তৃতীয় ভেরিয়েবল, সময় যোগ করে শুরু করা যাক। আমরা ধ্রুবক নমুনার ফ্রিকোয়েন্সি ধরে ধরে প্রতিটি 123 টি পর্যবেক্ষণের জন্য 1 থেকে 123 সময় নির্ধারণ করতে যাচ্ছি। 3 ডি প্লটটি এর সর্পিল কাঠামোটি প্রকাশ করে ডেটার মতো দেখতে কেমন তা এখানে রয়েছে:
পরের প্লটটি প্যারাগ্লাইডারকে বাদামী বৃত্ত হিসাবে ঘোরানোর কল্পিত কেন্দ্র দেখায়। আপনি দেখতে পাবেন কীভাবে এটি বাতাসের সাথে ল্যাট-লোন বিমানের দিকে প্রবাহিত হয়, যখন নীল বিন্দুর সাথে দেখানো প্যারাগ্লাইডার চারদিকে ঘুরছে। সময়টি উল্লম্ব অক্ষে। আমি আবর্তনের কেন্দ্রটিকে কেবলমাত্র প্রথম দুটি বৃত্ত দেখায় এমন একটি প্যারাগ্লাইডারের সাথে সম্পর্কিত স্থানে সংযুক্ত করেছি।
সংশ্লিষ্ট আর কোড:
library(plotly)
para <- read.csv("C:/Users/akuketay/Downloads/para.csv")
n=24
para$t=1:123 # add time parameter
# run PCA
pZ3=prcomp(para)
c3=colMeans(para) # PCA was centered
# look at PCs in columns
pZ3$rotation
# get the imaginary center of rotation
pc31=t(pZ3$rotation[,1] %*% t(pZ3$x[,1]) )
eye = pc31 + t(t(rep(1,123))) %*% c3
eyedata = data.frame(eye)
p = plot_ly(x=para[1:n,1],y=para[1:n,2],z=para[1:n,3],mode="lines+markers",type="scatter3d") %>%
layout(showlegend=FALSE,scene=list(xaxis = list(title = 'lat'),yaxis = list(title = 'lon'),zaxis = list(title = 't'))) %>%
add_trace(x=eyedata[1:n,1],y=eyedata[1:n,2],z=eyedata[1:n,3],mode="markers",type="scatter3d")
for( i in 1:n){
p = add_trace(p,x=c(eyedata[i,1],para[i,1]),y=c(eyedata[i,2],para[i,2]),z=c(eyedata[i,3],para[i,3]),color="black",mode="lines",type="scatter3d")
}
subplot(p)
প্যারাগ্লাইডারের ঘোরের কেন্দ্রের প্রবাহটি মূলত বাতাসের কারণে ঘটে এবং ড্রিফটের গতিপথ এবং গতিটি বাতাসের গতিবেগ এবং স্বাবের সাথে অবিচ্ছিন্ন পরিবর্তনশীলগুলির সাথে সম্পর্কিত হয়। ল্যাট-লোন প্লেনের পূর্বাভাস দেওয়ার সময় ড্রিফ্টটি এ জাতীয় দেখাচ্ছে:
পিসিএ রিগ্রেশন
সুতরাং, আগে আমরা প্রতিষ্ঠিত করেছি যে নিয়মিত লিনিয়ার রিগ্রেশন এখানে খুব ভাল কাজ করে না বলে মনে হয়। আমরা এও বুঝতে পেরেছিলাম কেন: কারণ এটি অন্তর্নিহিত প্রক্রিয়াটি প্রতিফলিত করে না, কারণ প্যারাগ্লাইডারের গতি উচ্চ নৈরৈখিক। এটি বৃত্তাকার গতি এবং একটি লিনিয়ার ড্রিফ্টের সংমিশ্রণ। আমরা আরও আলোচনা করেছি যে এই পরিস্থিতিতে ফ্যাক্টর বিশ্লেষণ সহায়ক হতে পারে। এই ডেটা মডেলিংয়ের একটি সম্ভাব্য পদ্ধতির একটি রূপরেখা এখানে দেওয়া হয়েছে: পিসিএ রিগ্রেশন । তবে প্রথমে আমি আপনাকে পিসিএ রিগ্রেশন লাগানো বাঁক দেখাব :
এটি নিম্নলিখিত হিসাবে প্রাপ্ত করা হয়েছে। পূর্বে আলোচিত হিসাবে অতিরিক্ত সেট কলাম টি = 1: 123 রয়েছে এমন ডেটা সেটটিতে পিসিএ চালান। আপনি তিনটি প্রধান উপাদান পেতে। প্রথমটি কেবল টি। দ্বিতীয়টি লম্ব কলামের সাথে তৃতীয় এবং ল্যাট কলামের সাথে সামঞ্জস্য।
আমি পরের দুটি প্রধান উপাদানটি আকারের ভেরিয়েবলের সাথে ফিট করি , যেখানে উপাদানগুলির বর্ণালী বিশ্লেষণ থেকে বের করা হয়। তারা একই ফ্রিকোয়েন্সি কিন্তু বিভিন্ন ধাপে ঘটতে থাকে, যা বিজ্ঞপ্তি গতি প্রদানে অবাক করা হয় না।ω , φ φasin(ωt+φ)ω,φ
এটাই. লাগানো মানগুলি পেতে আপনি পূর্বাভাসিত মূল উপাদানগুলিতে পিসিএ রোটেশন ম্যাট্রিক্সের ট্রান্সপোজ প্লাগ করে লাগানো উপাদানগুলি থেকে ডেটা পুনরুদ্ধার করেন। উপরের আমার আর কোডটি পদ্ধতির অংশগুলি দেখায় এবং বাকিগুলি আপনি সহজেই বের করতে পারেন।
উপসংহার
অন্তর্নিহিত প্রক্রিয়াগুলি স্থিতিশীল যেখানে শারীরিক ঘটনার ক্ষেত্রে পিসিএ এবং অন্যান্য সাধারণ সরঞ্জামগুলি কতটা শক্তিশালী তা দেখতে আকর্ষণীয় এবং ইনপুটগুলি লিনিয়ার (বা লিনিয়ারযুক্ত) সম্পর্কের মাধ্যমে আউটপুটগুলিতে অনুবাদ করে। সুতরাং আমাদের ক্ষেত্রে বিজ্ঞপ্তি গতিটি খুব অ-রৈখিক তবে আমরা খুব সহজেই টাইম প্যারামিটারে সাইন / কোসাইন ফাংশন ব্যবহার করে এটি রৈখিক করে তুলি। আমার প্লটগুলি আর-কোডের কয়েকটি লাইন দিয়ে তৈরি হয়েছিল যেমনটি আপনি দেখেছিলেন।
রিগ্রেশন মডেলটির অন্তর্নিহিত প্রক্রিয়াটি প্রতিফলিত হওয়া উচিত, তবে কেবলমাত্র আপনি আশা করতে পারেন যে এর পরামিতিগুলি অর্থবহ। যদি এটি বাতাসে প্যারাগ্লাইডারটি প্রবাহিত হয়, তবে মূল প্রশ্নের মতো একটি সাধারণ স্ক্যাটার প্লট প্রক্রিয়াটির সময় কাঠামোটি আড়াল করবে।
এছাড়াও এক্সেল রিগ্রেশন একটি ক্রস বিভাগীয় বিশ্লেষণ ছিল, যার জন্য লিনিয়ার রিগ্রেশন সবচেয়ে ভাল কাজ করে, যখন আপনার ডেটা একটি সময় সিরিজ প্রক্রিয়া, যেখানে পর্যবেক্ষণগুলি যথাসময়ে অর্ডার করা হয়। সময় সিরিজ বিশ্লেষণ এখানে প্রয়োগ করা আবশ্যক, এবং এটি পিসিএ রিগ্রেশন মধ্যে সম্পন্ন হয়েছিল।
একটি ফাংশন নোট
যেহেতু কোনও প্যারাগ্লাইডার চেনাশোনা তৈরি করছে, তাই একক দ্রাঘিমাংশের সাথে একাধিক অক্ষাংশ থাকবে। গণিত একটি ফাংশন একটি মান মানচিত্র একটি একক মান । এটি বহু-এক-এক সম্পর্ক, যার অর্থ একাধিক সাথে থাকতে পারে তবে একক সাথে একাধিক নয় । এই কারণেই কোনও ফাংশন নয়, কঠোরভাবে বলা।x y x y y x l a t = f ( l o n )y=f(x)xyxyyxlat=f(lon)