জিএলএম-এ ডামি (ম্যানুয়াল বা স্বয়ংক্রিয়) পরিবর্তনশীল সৃষ্টি বোঝা


13

যদি কোনও ফ্যাক্টর ভেরিয়েবল (উদাহরণস্বরূপ এম এবং এফ এর সাথে লিঙ্গ) গ্ল্যাম ফর্মুলায় ব্যবহার করা হয় তবে ডামি ভেরিয়েবল (গুলি) তৈরি হয় এবং তাদের সম্পর্কিত সহগের সাথে উদাহরণস্বরূপ গ্ল্যাম মডেল সংক্ষেপে পাওয়া যায় (যেমন লিঙ্গম)

যদি, ফ্যাক্টরটিকে এভাবে বিভক্ত করার জন্য আর এর উপর নির্ভর না করে ফ্যাক্টরটি সংখ্যা 0/1 ভেরিয়েবলের (যেমন জেন্ডারএম (এম এর জন্য 1, 0 এফের জন্য 0), জেন্ডারএফ (এফের জন্য 1, 0 এম) এবং এই ভেরিয়েবলগুলি তখন গ্ল্যাম ফর্মুলায় সংখ্যার ভেরিয়েবল হিসাবে ব্যবহৃত হয়, গুণফলের ফলাফলটি কি অন্যরকম হবে?

মূলত প্রশ্নটি হল: সংখ্যার ভেরিয়েবল বনাম ফ্যাক্টর ভেরিয়েবলের সাথে কাজ করার সময় কি আর একটি পৃথক সহগ গণনা ব্যবহার করে?

ফলো-আপ প্রশ্ন (সম্ভবত উপরে বর্ণিত উত্তর দেওয়া হয়েছে): আর ডমি ভেরিয়েবলগুলি তৈরি করার সুযোগ দেওয়ার পাশাপাশি, সংখ্যার 0,1 ভেরিয়েবলগুলির সিরিজ হিসাবে পুনরায় কোডিং ফ্যাক্টরগুলির সাথে মডেলটিতে সেগুলি ব্যবহার করার ক্ষেত্রে কি কোনও সমস্যা আছে?


2
গুণাগুলি একই হবে, কারণগুলির জন্য আর এর ডিফল্ট কোডিং হ'ল আপনার বর্ণনার মতো (একে "ডামি" কোডিং বলা হয়)। যদি ম্যানুয়ালি এটি করা হয় তবে আপনাকে "ডামি ভেরিয়েবল ট্র্যাপ" সম্পর্কে সচেতন করতে হবে - আপনি সমস্ত তৈরি ভেরিয়েবলগুলি অন্তর্ভুক্ত করতে পারবেন না , তবে কেবল অন্তর্ভুক্ত করতে পারবেন (পর্যায়ক্রমে, বিরতি বাদ দিন); অন্যথায় আপনার মডেল অপরিচিত। এছাড়াও এনকোডিং ফ্যাক্টর ভেরিয়েবলের অন্যান্য পদ্ধতি রয়েছে। এন - 1এনএন-1
এফাইন

@ আমার ধারণাটি এই যে আমি যদি লিঙ্গএম এবং জেন্ডারএফ উভয়কেই খাওয়াতাম তবে তাদের মধ্যে একটি সহগের জন্য এনএ ফিরিয়ে দেবে (এই বার্তাটি দিয়ে যে এককতার কারণে একটি পরিবর্তনশীল বাদ দেওয়া হয়েছিল)। এটি অর্থবোধ করে কারণ তারা এক্ষেত্রে সম্পূর্ণরূপে রৈখিকভাবে সম্পর্কিত। তবে আপনি বলেছেন যে আমি সমস্ত এনকে অন্তর্ভুক্ত করতে পারি না; এর অর্থ কি, জেন্ডারএফটি এনএ তে সেট করা থাকলেও, এর ফলে জেন্ডারএম সহগের পক্ষে পার্থক্য / সমস্যা দেখা দিতে পারে? অথবা, আরও সহজভাবে, যদি জিএলএম / এলএম এককতার কারণে ভেরিয়েবলগুলি বাদ দেয়, তবে কোনও অতিপরিচিত মডেলটি কোনও সমস্যা ব্যবহার করছে? (আমি আপনার বক্তব্যের সাথে একমত - কেবল ব্যবহারিক বিশৃঙ্খলা অনুসন্ধান করছি)
ব্রায়ান

উত্তর:


22

শ্রেণিবদ্ধ ভেরিয়েবলগুলি ( আর এর মধ্যে " ফ্যাক্টর " নামে পরিচিত ) একাধিক রিগ্রেশন মডেলগুলিতে সংখ্যাসূচক কোড দ্বারা প্রতিনিধিত্ব করা প্রয়োজন। সংখ্যাগত কোডগুলি যথাযথভাবে নির্মাণের জন্য খুব অনেকগুলি উপায় রয়েছে ( ইউসিএলএর পরিসংখ্যান সহায়তা সাইটে এই দুর্দান্ত তালিকাটি দেখুন )। ডিফল্টরূপে আর রেফারেন্স লেভেল কোডিং ব্যবহার করে (যা আর্টকে "কনট্রিট্রেটমেন্ট" বলে), এবং এটি ডিফল্ট পরিসংখ্যান-প্রশস্তের চেয়ে অনেক বেশি। আপনার পুরো আর সেশনের জন্য ? বিকল্পগুলি ব্যবহার করে বা নির্দিষ্ট বিশ্লেষণ / ভেরিয়েবলগুলি "বিপরীতে বা " সি ব্যবহার করে (মূলধনটি নোট করুন) ব্যবহার করে সমস্ত বৈসাদৃশ্যগুলির জন্য এটি পরিবর্তন করা যেতে পারে । আপনার যদি রেফারেন্স লেভেল কোডিং সম্পর্কে আরও তথ্যের প্রয়োজন হয় তবে আমি এখানে এটি ব্যাখ্যা করছি: সপ্তাহের দিনগুলিতে উদাহরণস্বরূপ রিগ্রেশন based

কিছু লোকেরা রেফারেন্স লেভেল কোডিংকে বিভ্রান্ত করে খুঁজে পান এবং আপনাকে এটি ব্যবহার করতে হবে না। আপনি যদি চান তবে আপনার কাছে পুরুষ এবং মহিলা দুটি পরিবর্তনশীল থাকতে পারে; এটিকে স্তর বলা হয় কোডিং। যাইহোক, আপনি যদি এটি করেন তবে আপনাকে ইন্টারসেপ্টটি দমন করতে হবে বা মডেল ম্যাট্রিক্স একক হবে এবং রেজিস্ট্রেশন উপরের @ আফাইন নোটগুলির মতো উপযুক্ত হতে পারে না এবং আমি এখানে যেমন বর্ণনা করছি: গুণগত পরিবর্তনশীল কোডিং একাকিত্বের দিকে নিয়ে যায় । ইন্টারসেপটি দমন করতে, আপনি নিজের সূত্রটি যুক্ত -1বা +0পছন্দ করে: y~... -1বা দ্বারা পরিবর্তন করে y~... +0

(constant)sexMsexMটি0sexMটি0

set.seed(1)
y    = c(    rnorm(30), rnorm(30, mean=1)         )
sex  = rep(c("Female",  "Male"          ), each=30)
fem  = ifelse(sex=="Female", 1, 0)
male = ifelse(sex=="Male", 1, 0)

ref.level.coding.model   = lm(y~sex)
level.means.coding.model = lm(y~fem+male+0)

summary(ref.level.coding.model)
# ...
# Coefficients:
#             Estimate Std. Error t value Pr(>|t|)    
# (Intercept)  0.08246    0.15740   0.524    0.602    
# sexMale      1.05032    0.22260   4.718 1.54e-05 ***
#   ---
#   Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
# ...
summary(level.means.coding.model)
# ...
# Coefficients:
#      Estimate Std. Error t value Pr(>|t|)    
# fem   0.08246    0.15740   0.524    0.602    
# male  1.13277    0.15740   7.197 1.37e-09 ***
#   ---
#   Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
# ...

1
কোড সংযোজনের জন্য ধন্যবাদ: এটি স্পষ্টভাবে প্রমাণ করে যে রেফারেন্স সেল কোডিংয়ের মধ্যে ইন্টেরসেপ্ট = সেলফেমেল মানে কোডিং (আমি N-1 ভেরিয়েবলের সাথে "কী ঘটেছিল" তা ছাড়া আমি বিভ্রান্ত হয়ে পড়েছিলাম ...) অন্য কোনও প্রশ্নের প্রয়োজন হতে পারে তবে এটি একটি ভেরিয়েবলের সাথে বোঝা সহজ, 2 বা আরও বেশি কি? যেমন বয়স: "পুরাতন" "তরুণ"। রেফ সেল সেলিংয়ে, সহগগুলি সেক্সমেল, বয়স ইউং (উদাহরণস্বরূপ) এবং উভয় যৌনপরিচয়ের জন্য ইন্টারসেপ্ট অ্যাকাউন্ট প্রদর্শন করবে ফিমেল এবং এজল্ড?
ব্রায়ান

1
আপনার যদি ডাব্লু / 3 স্তর ফ্যাক্টর থাকে তবে ইন্টারসেপ্টটি রেফ স্তরের গড় এবং অন্যান্য 2 আউটপুটটিতে উপস্থাপন করা হবে। তাদের সহগ উভয়ই তাদের পার্থক্য এবং বিভক্ত স্তর এবং রেফারেন্স স্তরগুলি এই ভিন্নতার তাত্পর্য হবে। আপনার যদি ২ টি উপাদান থাকে তবে উভয়ের উভয়ই রেফার স্তর থাকবে এবং উভয় রেফ গ্রুপে থাকা (যেমন, young F) অন্যান্য ব্যক্তির মধ্যস্থতাটি হবে এবং অন্যান্য স্তরগুলি ফ্যাক্টর 1 ডাব্লু / এর প্রদত্ত স্তরটির চেয়ে আলাদা হবে অন্যান্য ফ্যাক্টরের রেফ স্তর এবং উভয় রেফারেন্স স্তর গ্রুপ। যেমন oldহয় old F- 'তরুণ এফ , & m` হয় young M- young F
গুং - মনিকা পুনরায়

1
আমি এটি দিয়ে কিছুটা খেলেছি এবং R^2উভয় পদ্ধতির মধ্যে যথেষ্ট পার্থক্য অনুভব করেছি । আমি জানি এটি কেবল একটি R^2, তবে এর কি কোনও ব্যাখ্যা আছে?
hans0l0

@ hans0l0, আমার কোনও ধারণা নেই। কোন পার্থক্য থাকা উচিত।
গুং - মনিকা পুনরায়

1
@confused, আপনি খুঁজে পেতে পারে ডকুমেন্টেশনে, ? glm
গুং - মনিকা পুনরায়

2

অনুমানযুক্ত সহগগুলি সেই শর্তের সাথে সমান হবে যে আপনি নিজের ডামি ভেরিয়েবলগুলি তৈরি করেন (অর্থাত্ সংখ্যাসূচকগুলি) আর এর সাথে সামঞ্জস্যপূর্ণ example উদাহরণস্বরূপ: আসুন 'একটি জাল তথ্য তৈরি করতে পারি এবং ফ্যাক্টর ব্যবহার করে একটি পোয়েসন গ্লাম ফিট করতে পারি। নোট করুন যে glফাংশনটি একটি ফ্যাক্টর ভেরিয়েবল তৈরি করে।

> counts <- c(18,17,15,20,10,20,25,13,12)
> outcome <- gl(3,1,9)
> outcome
[1] 1 2 3 1 2 3 1 2 3
Levels: 1 2 3
> class(outcome)
[1] "factor"
> glm.1<- glm(counts ~ outcome, family = poisson())
> summary(glm.1)

Call:
glm(formula = counts ~ outcome, family = poisson())

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-0.9666  -0.6713  -0.1696   0.8471   1.0494  

Coefficients:
            Estimate Std. Error z value Pr(>|z|)    
(Intercept)   3.0445     0.1260  24.165   <2e-16 ***
outcome2     -0.4543     0.2022  -2.247   0.0246 *  
outcome3     -0.2930     0.1927  -1.520   0.1285    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

(Dispersion parameter for poisson family taken to be 1)

    Null deviance: 10.5814  on 8  degrees of freedom
Residual deviance:  5.1291  on 6  degrees of freedom
AIC: 52.761

Number of Fisher Scoring iterations: 4

যেহেতু ফলাফলের তিনটি স্তর থাকে, তাই আমি দুটি ডামি ভেরিয়েবল তৈরি করি (ডামি 1 = 0 যদি ফলাফল = 2 এবং ডামি ২ = 1 যদি ফলাফল = 3 হয়) এবং এই সংখ্যাসূচক মানগুলি ব্যবহার করে পুনরায় প্রত্যাখ্যান করুন:

> dummy.1=rep(0,9)
> dummy.2=rep(0,9)
> dummy.1[outcome==2]=1
> dummy.2[outcome==3]=1
> glm.2<- glm(counts ~ dummy.1+dummy.2, family = poisson())
> summary(glm.2)

Call:
glm(formula = counts ~ dummy.1 + dummy.2, family = poisson())

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-0.9666  -0.6713  -0.1696   0.8471   1.0494  

Coefficients:
            Estimate Std. Error z value Pr(>|z|)    
(Intercept)   3.0445     0.1260  24.165   <2e-16 ***
dummy.1      -0.4543     0.2022  -2.247   0.0246 *  
dummy.2      -0.2930     0.1927  -1.520   0.1285    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

(Dispersion parameter for poisson family taken to be 1)

    Null deviance: 10.5814  on 8  degrees of freedom
Residual deviance:  5.1291  on 6  degrees of freedom
AIC: 52.761

Number of Fisher Scoring iterations: 4

আপনি দেখতে পাচ্ছেন অনুমানের সহগগুলি একই। আপনি যদি একই ফলাফল পেতে চান তবে আপনার ডামি ভেরিয়েবলগুলি তৈরি করার সময় আপনার যত্নবান হওয়া দরকার। উদাহরণস্বরূপ, যদি আমি দুটি ডামি ভেরিয়েবল তৈরি করি (ডামি .১ = 0 যদি ফলাফল = 1 এবং ডামি ২ = 1 যদি ফলাফল = 2) তবে আনুমানিক ফলাফলগুলি নিম্নলিখিত হিসাবে পৃথক:

> dummy.1=rep(0,9)
> dummy.2=rep(0,9)
> dummy.1[outcome==1]=1
> dummy.2[outcome==2]=1
> glm.3<- glm(counts ~ dummy.1+dummy.2, family = poisson())
> summary(glm.3)

Call:
glm(formula = counts ~ dummy.1 + dummy.2, family = poisson())

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-0.9666  -0.6713  -0.1696   0.8471   1.0494  

Coefficients:
            Estimate Std. Error z value Pr(>|z|)    
(Intercept)   2.7515     0.1459   18.86   <2e-16 ***
dummy.1       0.2930     0.1927    1.52    0.128    
dummy.2      -0.1613     0.2151   -0.75    0.453    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

(Dispersion parameter for poisson family taken to be 1)

    Null deviance: 10.5814  on 8  degrees of freedom
Residual deviance:  5.1291  on 6  degrees of freedom
AIC: 52.761

Number of Fisher Scoring iterations: 4

যখন আপনি যোগ কারণ outcomeglm.1 মধ্যে পরিবর্তনশীল, ডিফল্ট অনুসারে আর দুই ডামি ভেরিয়েবল যথা সৃষ্টি outcome2এবং outcome3এবং তাদের সংজ্ঞায়িত একভাবে dummy.1এবং dummy.2glm.2 অর্থাৎ ফলাফল প্রথম স্তরের যখন অন্য সকল ডামি ভেরিয়েবল (হয় outcome2এবং outcome3) করার জন্য সেট আছে শূন্য।


অনুমান সহগের সমান হওয়ার কোড প্রমাণের জন্য ধন্যবাদ আমার নিজের তৈরি সম্পর্কে সতর্কতাও দরকারী: আমি নিজের তৈরি করতে চেয়েছিলাম কারণ তখন একটি মডেল ভেরিয়েবল সরাসরি ডাটাবেস কলামের সাথে নাম অনুসারে বেঁধে দেয় (যা ডাউনস্ট্রিম উপযোগী হতে পারে), তবে দেখে মনে হচ্ছে কীভাবে সমস্যাগুলি আমার বুঝতে হবে আমি এই কাজ সম্পর্কে যেতে।
ব্রায়ান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.