আমি আরএল ব্যবহার করে একটি জিএলএমের জন্য একটি স্প্লাইন ফিট করার চেষ্টা করছি Once
উদাহরণস্বরূপ, ধরা যাক যে আমার কাছে একটি ডেটা সেট রয়েছে যেখানে y এক্স এর র্যান্ডম ফাংশন এবং pointালটি হঠাৎ করে একটি নির্দিষ্ট পয়েন্টে পরিবর্তিত হয় (এই ক্ষেত্রে @ x = 500)।
set.seed(1066)
x<- 1:1000
y<- rep(0,1000)
y[1:500]<- pmax(x[1:500]+(runif(500)-.5)*67*500/pmax(x[1:500],100),0.01)
y[501:1000]<-500+x[501:1000]^1.05*(runif(500)-.5)/7.5
df<-as.data.frame(cbind(x,y))
plot(df)
আমি এখন এটি ব্যবহার করে ফিট করি
library(splines)
spline1 <- glm(y~ns(x,knots=c(500)),data=df,family=Gamma(link="log"))
এবং আমার ফলাফল প্রদর্শন
summary(spline1)
Call:
glm(formula = y ~ ns(x, knots = c(500)), family = Gamma(link = "log"),
data = df)
Deviance Residuals:
Min 1Q Median 3Q Max
-4.0849 -0.1124 -0.0111 0.0988 1.1346
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 4.17460 0.02994 139.43 <2e-16 ***
ns(x, knots = c(500))1 3.83042 0.06700 57.17 <2e-16 ***
ns(x, knots = c(500))2 0.71388 0.03644 19.59 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for Gamma family taken to be 0.1108924)
Null deviance: 916.12 on 999 degrees of freedom
Residual deviance: 621.29 on 997 degrees of freedom
AIC: 13423
Number of Fisher Scoring iterations: 9
এই মুহুর্তে, আমি r এর মধ্যে পূর্বাভাস ফাংশনটি ব্যবহার করতে পারি এবং পুরোপুরি গ্রহণযোগ্য উত্তর পেতে পারি। সমস্যাটি হ'ল আমি এক্সেলের একটি ওয়ার্কবুক তৈরি করতে মডেল ফলাফলগুলি ব্যবহার করতে চাই।
পূর্বাভাস ফাংশন সম্পর্কে আমার বোঝা হল যে একটি নতুন "x" মান দেওয়া হয়েছে, আর সেই নতুন এক্সটিকে যথাযথ স্প্লাইন ফাংশনে (500 টিরও বেশি মানের জন্য ফাংশন বা 500 এর নীচের মানের জন্য একটি) প্লাগ করে, তারপরে এটি ফলাফল নেয় এবং বহুগুণ হয় এটি যথাযথ সহগ দ্বারা এবং সেদিক থেকে এটি অন্য কোনও মডেল শর্তাদির মতো আচরণ করে। আমি এই স্প্লাইন কার্যগুলি কীভাবে পেতে পারি?
(দ্রষ্টব্য: আমি বুঝতে পেরেছি যে লগ-লিঙ্কযুক্ত গামা জিএলএম সরবরাহিত ডেটা সেটের জন্য উপযুক্ত নাও হতে পারে G আমি কীভাবে বা কখন জিএলএম ফিট করব সে বিষয়ে জিজ্ঞাসা করছি না I আমি সেই সেটটি পুনরুত্পাদনযোগ্যতার উদ্দেশ্যে উদাহরণ হিসাবে সরবরাহ করছি))
rm(list=ls())
) মুছে ফেলা এমন কোড সহ এড়াতে বিশেষত কোনও সতর্কতা ছাড়াই নয়। কেউ পারে আপনার কোড আর একটি খোলা সেশন যেখানে তারা ইতিমধ্যে কিছু ভেরিয়েবল (কিন্তু কেউই নামের কপি-পেস্ট করুনx
,y
,df
বাspline1
) এবং মিস যে আপনার কোড তাদের কাজ মিটিয়ে দেন। তাদের পক্ষে কি করুণা বোবা? হ্যাঁ. তবে তাদের নিজস্ব ভেরিয়েবলগুলি কখন মুছবেন তা তাদের সিদ্ধান্ত নিতে এখনও ভদ্র।