আমি একটি সিমুলেশন তৈরি করেছি যা ব্রেইমানের বর্ণনার জবাব দেবে এবং কেবল স্পষ্টতই খুঁজে পেলাম: ফলাফলটি প্রসঙ্গে এবং "চরম" বলতে কী বোঝায় তার উপর নির্ভর করে।
একটি বিস্ময়কর অনেক কিছুই বলা যেতে পারে, তবে R
আগ্রহী পাঠকদের তাদের নিজস্ব তদন্তে ব্যবহার করার জন্য সহজেই পরিবর্তিত কোডের মাধ্যমে পরিচালিত কেবলমাত্র একটি উদাহরণের মধ্যে সীমাবদ্ধ রাখি । এই কোডটি প্রায় অর্থগোনাল (যাতে আমরা বহুবিশেষের সমস্যায় না পড়ি) প্রায় একইরূপে বিতরণ করা স্বাধীন মানগুলির সমন্বয়ে একটি ডিজাইন ম্যাট্রিক্স স্থাপন করে শুরু হয়। এটি প্রথম দুটি ভেরিয়েবলের মধ্যে একটি একক চতুর্ভুজ (অর্থাত্ ননলাইনার) মিথস্ক্রিয়াকে গণনা করে: এটি বিভিন্ন ধরণের "ননলাইনারি "গুলির মধ্যে কেবল একটি যা অধ্যয়ন করা যেতে পারে, তবে কমপক্ষে এটি একটি সাধারণ, সু-বোঝা একটি। তারপরে এটি সবকিছুকে মানিক করে তোলে যাতে সহগের তুলনাযোগ্য হয়:
set.seed(41)
p <- 7 # Dimensions
n <- 2^p # Observations
x <- as.matrix(do.call(expand.grid, lapply(as.list(1:p), function(i) c(-1,1))))
x <- x + runif(n*p, min=-1, max=1)
x <- cbind(x, x.12 = x[,1]*x[,2]) # The nonlinear part
x <- apply(x, 2, function(y) (y - mean(y))/sd(y)) # Standardization
বেস ওএলএস মডেলের জন্য (অ-লাইন ছাড়াই) আমাদের অবশ্যই কিছু সহগ এবং অবশিষ্টাংশের ত্রুটির মানক বিচ্যুতি নির্দিষ্ট করতে হবে। এখানে ইউনিট সহগের একটি সেট এবং তুলনীয় এসডি রয়েছে:
beta <- rep(c(1,-1), p)[1:p]
sd <- 1
1 / 41- 1
gamma = 1/4 # The standardized interaction term
df <- data.frame(x)
df$y <- x %*% c(beta, gamma) + rnorm(n, sd=sd)
summary(df)
cor(df)*100
plot(df, lower.panel=function(x,y) lines(lowess(y~x)),
upper.panel=function(x,y) points(x,y, pch=".", cex=4))
summary(lm(df$y ~ x))
এখানে সমস্ত আউটপুট ওয়েড না করে কমান্ডের আউটপুট ব্যবহার করে এই ডেটাগুলি দেখুনplot
:
নিম্ন ত্রিভুজটিতে নিম্নমানের চিহ্নগুলি মূলত ইন্টারঅ্যাকশন ( x.12
) এবং নির্ভরশীল ভেরিয়েবল ( y
) এবং অন্যান্য ভেরিয়েবল এবং এর মধ্যে মাঝারি লিনিয়ার সম্পর্কের মধ্যে কোনও লিনিয়ার সম্পর্ক প্রদর্শন করে না y
। ওএলএসের ফলাফলগুলি নিশ্চিত করে যে; মিথস্ক্রিয়া খুব কমই গুরুত্বপূর্ণ:
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.0263 0.0828 0.32 0.751
xVar1 0.9947 0.0833 11.94 <2e-16 ***
xVar2 -0.8713 0.0842 -10.35 <2e-16 ***
xVar3 1.0709 0.0836 12.81 <2e-16 ***
xVar4 -1.0007 0.0840 -11.92 <2e-16 ***
xVar5 1.0233 0.0836 12.24 <2e-16 ***
xVar6 -0.9514 0.0835 -11.40 <2e-16 ***
xVar7 1.0482 0.0835 12.56 <2e-16 ***
xx.12 0.1902 0.0836 2.27 0.025 *
আমি অরৈখিকতার পরীক্ষা হিসাবে ইন্টারঅ্যাকশন শব্দটির পি-মান নেব: যখন এই পি-মানটি যথেষ্ট কম হয় (আপনি ঠিক কতটা কম বেছে নিতে পারেন), আমরা অরৈখিকতাটি সনাক্ত করব।
(আমরা ঠিক কীটি সন্ধান করছি সে সম্পর্কে এখানে একটি সূক্ষ্মতা রয়েছে practice বাস্তবে আমাদের কোনও term * / / ২ = ২১ টি সম্ভাব্য চতুষ্কোণ ইন্টারঅ্যাকশনগুলি পাশাপাশি একক শর্তের উপর মনোনিবেশ করার চেয়ে আরও 7 টি চতুর্ভুজ শর্তাদি পরীক্ষা করতে হবে practice যেমনটি এখানে করা হয়েছে। আমরা এই 28 আন্তঃ সম্পর্কিত পরীক্ষাগুলির জন্য একটি সংশোধন করতে চাই I আমি এখানে স্পষ্টভাবে এই সংশোধন করব না, পরিবর্তে আমি পি-মানগুলির সিমুলেটেড বিতরণ প্রদর্শন করি You আপনি সরাসরি সনাক্তকরণের হারগুলি পড়তে পারেন উপর ভিত্তি করে শেষে histograms আপনার তাত্পর্য প্রান্তিক মান।)
তবে আসুন একবার এই বিশ্লেষণটি না করে; y
একই মডেল এবং একই ডিজাইনের ম্যাট্রিক্স অনুযায়ী প্রতিটি পুনরাবৃত্তির নতুন মান উত্পন্ন করে অনেক সময় এটি করা যাক । এটি সম্পাদন করার জন্য, আমরা একটি পুনরাবৃত্তি চালিয়ে ফাংশনটি ব্যবহার করি এবং মিথস্ক্রিয়া শব্দটির পি-মানটি ফিরিয়ে আনি:
test <- function(gamma, sd=1) {
y <- x %*% c(beta, gamma) + rnorm(n, sd=sd)
fit <- summary(lm(y ~ x))
m <- coef(fit)
n <- dim(m)[1]
m[n, 4]
}
আমি আন্তঃসংযোগ gamma
শব্দটির মানক সহগের পরিবর্তিত, পি-মানগুলির হিস্টোগ্রাম হিসাবে সিমুলেশন ফলাফলগুলি উপস্থাপন করতে পছন্দ করি । প্রথমত, হিস্টোগ্রামগুলি:
h <- function(g, n.trials=1000) {
hist(replicate(n.trials, test(g, sd)), xlim=c(0,1),
main=toString(g), xlab="x1:x2 p-value")
}
par(mfrow=c(2,2)) # Draw a 2 by 2 panel of results
এখন কাজ করতে। সিমুলেশন প্রতি 1000 ট্রায়ালগুলির জন্য এটি কয়েক সেকেন্ড সময় নেয় (এবং চারটি স্বতন্ত্র সিমুলেশন, ইন্টারঅ্যাকশন শব্দটির প্রদত্ত মান দিয়ে শুরু করে এবং প্রতিটি সময় এটি ক্রমান্বয়ে অর্ধেক করে):
temp <- sapply(2^(-3:0) * gamma, h)
ফলাফলগুলো:
x
sd
beta
1 / 41 / 81 / 16gamma
1 / 2
1 / 32 থেকে 1 / 4, "চরম" হতে পারে আবার নাও আপনার দৃষ্টিকোণ উপর নির্ভর করবে রিগ্রেশন পরিস্থিতির উপর (যেমন দ্বারা প্রকাশ x
, sd
এবং beta
), nonlinearity কত স্বাধীন পরীক্ষার আপনি পরিচালনার কল্পনা উপর, এবং, গতি Breiman, যাঁকে আমি অতিশয় সম্মান করি, সম্ভবত উপর আপনার পিঠে কুড়াল আছে কিনা। আপনি অনাবলম্বতা সনাক্ত করতে ওএলএসের পক্ষে অবশ্যই এটি কঠিন করে তুলতে পারেন: কেবল স্ফীত করুন sd
যাতে এটি অরৈখিকতা জলাবদ্ধ করে এবং একসাথে ফিটের সচ্ছলতার জন্য বিভিন্ন পরীক্ষা চালায়।
সংক্ষেপে, এর মতো একটি সিমুলেশন আপনি যা পছন্দ করেন তা প্রমাণ করতে পারে যদি আপনি কেবল এটি সেট আপ করেন এবং সঠিকভাবে ব্যাখ্যা করেন। এটি সুপারিশ করে যে পৃথক পরিসংখ্যানবিদরা তাদের ব্যবহার করা পদ্ধতিগুলির দক্ষতা এবং দুর্বলতাগুলির জন্য ব্যক্তিগত এবং গভীর বোঝার জন্য, তারা যে বিশেষ সমস্যার মুখোমুখি হন তাদের উপযুক্ত, তাদের নিজস্ব অনুসন্ধান চালানো উচিত।